1 /**
2  * Xorshift uniform random number generators were introduced by George
3  * Marsaglia in 2003, as a means of providing fast and lightweight
4  * pseudo-random number generation with high statistical quality.
5  *
6  * This package complements the existing xorshift generators in phobos'
7  * `std.random` with implementations of some of the  extended family of
8  * generators that other researchers have developed from Marsaglia's
9  * essential ideas.  Typically these address statistical flaws found
10  * with the original xorshift designs.
11  *
12  * Generators in the package are implemented as input ranges with the
13  * postblit and default constructors disabled.  This should help to
14  * avoid accidental statistical correlations caused by unintended
15  * copy-by-value of generator state, and ensure that generators cannot
16  * be initialized unseeded.
17  *
18  * Authors:
19  *     $(LINK2 http://braingam.es/, Joseph Rushton Wakeling)
20  *
21  * Copyright:
22  *     Written in 2016 by Joseph Rushton Wakeling.
23  *
24  * License:
25  *     $(LINK2 https://creativecommons.org/publicdomain/zero/1.0/legalcode, Creative Commons CC0)
26  *     (public domain)
27  */
28 module dxorshift;
29 
30 public import dxorshift.splitmix64;
31 public import dxorshift.xoroshiro128plus;
32 public import dxorshift.xorshift1024star;
33 
34 unittest
35 {
36     import std.random : isUniformRNG;
37     assert(isUniformRNG!SplitMix64);
38     assert(isUniformRNG!Xoroshiro128plus);
39     assert(isUniformRNG!Xorshift1024star);
40 }