Skip to content

Instantly share code, notes, and snippets.

imneme

Block or report user

Report or block imneme

Hide content and notifications from this user.

Learn more about blocking users

Contact Support about this user’s behavior.

Learn more about reporting abuse

Report abuse
View GitHub Profile
@imneme
imneme / seeding_bias.cpp
Last active Jun 24, 2019
Seeding Bias Test
View seeding_bias.cpp
/*
* Seeding Bias Test
*
* - Runs through all possible seeds and examines the output for
* bias. Doing so is only practical for 32-bit (or less) seeds
* and 32-bit (or less) output.
*
* Compilation note:
*
* - You need to define the following preprocessor symbols to compile this
@imneme
imneme / chacha.hpp
Last active Jul 15, 2018 — forked from orlp/chacha.h
C++11 ChaCha implementation.
View chacha.hpp
#ifndef CHACHA_HPP_INCLUDED
#define CHACHA_HPP_INCLUDED 1
/*
* A C++ version of ChaCha PRNG (*modified* from Orson Peters original code)
*
* Changes Copyright (c) 2017-18 Melissa E. O'Neill, licence as below.
*
* Changes compared to original 2015 version:
* - Some formatting fixes
@imneme
imneme / arc4.hpp
Created Jul 5, 2018
A C++ port of the OpenBSD Arc4 random number generator
View arc4.hpp
#ifndef ARC4_HPP_INCLUDED
#define ARC4_HPP_INCLUDED 1
/*
* A C++ port of the OpenBSD Arc4 random number generator
*
* The MIT License (MIT)
*
* Copyright (C) 1996 David Mazieres <dm@lcs.mit.edu> for the OpenBSD project
* C++ Port Copyright (c) 2014-18 Melissa E. O'Neill
@imneme
imneme / splitmix.hpp
Created Jul 4, 2018
A C++ implementation of SplitMix
View splitmix.hpp
#ifndef SPLITMIX_HPP_INCLUDED
#define SPLITMIX_HPP_INCLUDED 1
/*
* A C++ implementation of SplitMix
* Original design by Guy L. Steele, Jr., Doug Lea and Christine H. Flood
* Described in _Fast splittable pseudorandom number generators_
* http://dx.doi.org/10.1145/2714064.2660195 and implemented in
* Java 8 as SplittableRandom
* Based on code from the original paper, with revisions based on changes
@imneme
imneme / xoshiro.hpp
Created Jul 4, 2018
A C++ implementation of a family of Xoshiro generators
View xoshiro.hpp
#ifndef XOSHIRO_HPP_INCLUDED
#define XOSHIRO_HPP_INCLUDED 1
/*
* A C++ implementation of a family of Xoshiro generators.
*
* See:
* https://arxiv.org/abs/1805.01407
* http://xoshiro.di.unimi.it/xoshiro256plus.c
* http://xoshiro.di.unimi.it/xoshiro256starstar.c
@imneme
imneme / xoshiro-bad-repeats.c
Created Jun 11, 2018
Xoshiro256** Bad Repeats Demonstration
View xoshiro-bad-repeats.c
/*
* Xoshiro256** Bad Repeats Demonstration
*
* gcc -std=c99 -Wall -o xoshiro-bad-repeats xoshiro-bad-repeats.c
* ./xoshiro-bad-repeats | less
*
* In a PRNG the size of Xoshiro256**, we should expect about 10 "5-in-7"
* repeats. Xoshiro256** has more than 18 billion billion of them, which
* is rather too many. In fact, the number of bad repeats is larger than
* the 2**64 range of the generator!
@imneme
imneme / rng_adapters.hpp
Created Jun 9, 2018
A C++ implementation of a set of PRNG adapters
View rng_adapters.hpp
#ifndef RND_ADAPTERS_HPP_INCLUDED
#define RND_ADAPTERS_HPP_INCLUDED 1
/*
* A C++ implementation of a set of PRNG adapters.
*
* The MIT License (MIT)
*
* Copyright (c) 2018 Melissa E. O'Neill
*
@imneme
imneme / lehmer.hpp
Created Jun 9, 2018
A C++ implementation of 128-bit Lehmer-style PRNGs
View lehmer.hpp
#ifndef LEHMER_HPP_INCLUDED
#define LEHMER_HPP_INCLUDED 1
/*
* A C++ implementation of fast, 128-bit, Lehmer-style PRNGs
*
* The MIT License (MIT)
*
* Copyright (c) 2018 Melissa E. O'Neill
*
@imneme
imneme / sfc.hpp
Last active Jul 18, 2019
A C++ implementation of Chris Doty-Humphrey's SFC PRNG(s)
View sfc.hpp
#ifndef SFC_HPP_INCLUDED
#define SFC_HPP_INCLUDED 1
/*
* A C++ implementation of Chris Doty-Humphrey's SFC PRNG(s)
*
* The MIT License (MIT)
*
* Copyright (c) 2018 Melissa E. O'Neill
*
@imneme
imneme / gjrand.hpp
Created May 28, 2018
A C++ implementation of David Blackman's GJrand PRNG(s)
View gjrand.hpp
#ifndef GJRAND_HPP_INCLUDED
#define GJRAND_HPP_INCLUDED 1
/*
* A C++ implementation of David Blackman's GJrand PRNG(s)
*
* The MIT License (MIT)
*
* Copyright (c) 2018 Melissa E. O'Neill
*
You can’t perform that action at this time.