Skip to content

Instantly share code, notes, and snippets.

@vlad9486
vlad9486 / philox.rs
Created October 24, 2018 18:17
Philox counter-based random number generator
use std::{ops::{BitXor, Add}, num::Wrapping};
pub trait PhiloxWord
where
Self: Sized + BitXor<Self, Output=Self> + Add<Self, Output=Self>,
{
const W_0: Self;
const W_1: Self;
const M2: Self;
const M4_0: Self;
#[derive(Copy, Clone, Debug, Eq, PartialEq)]
pub struct Danger<T> {
value: T,
}
impl<T> Danger<T> {
pub fn block<A>(a: A, f: unsafe fn(A) -> T) -> Self {
Danger {
value: unsafe { f(a) },
}
@vlad9486
vlad9486 / crc32.swift
Last active December 12, 2017 09:34
crc32 in Swift
/*
Copyright (c) 2017 vlad9486
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions: