Click or drag to resize

Orthogonal.Common.Basic.PRNG Namespace

Pseudo-random number generators.
Classes
 ClassDescription
Public classRandBurtle Bob Burtle's small and fast noncryptographic PRNG (circa 2009). See burtleburtle.net.
Public classRandCustomBase An abstract base class for all custom random number generating classes in this library that are compatible with the standard Random class. Derived classes only need to override the SampleCore method and all other methods will have correct and expected behaviour. Other standard methods can be overridden by derived classes if they can implement their functionality in a superior or more efficient manner.
Public classRandEcuyer88 Pierre L'Ecuyer's 1988 random number generator that combines two 32-bit MLCGs for a period of approximately 1018. This is the plain original 1988 algorithm without any safeguards or adjustments like those found in the RandEcuyer88S class. The class remains in this library as a historical reference.
Obsolete
Public classRandEcuyer88S An enhanced version of the RandEcuyer88 class with the safeguard of a Bays-Durham shuffle (see P.282 of NRC - PDF). The class remains in this library as a historical reference.
Obsolete
Public classRandEcuyerLFSR113 Piere L'Ecuyer's 1999 LFSR113 generator that combines 4 component 32-bit LFSRs. The class remains in this library as a historical reference.
Obsolete
Public classRandEcuyerLFSR258 Piere L'Ecuyer's 1999 LFSR258 generator that combines 5 component 64-bit LFSRs. The class remains in this library as a historical reference.
Obsolete
Public classRandEcuyerMRG63k3a Pierre L'Ecuyer's 1999 MRG63k3a random number generator. The class remains in this library as a historical reference.
Obsolete
Public classRandIsaac The ISAAC random number generator algorithm by Bob Jenkins
Public classRandMT 32-bit implementation of the Mersenne Twister random number generator algorithm by Makoto Matsumoto and Takuji Nishimura.
Public classRandMT64 64-bit implementation of the Mersenne Twister random number generator algorithm by Makoto Matsumoto and Takuji Nishimura.
Public classRandXoshiro256PlusPlus An implementation of the xoshiro256++ PRNG which stores state in 4 x 64-bit numbers. The authors call it: one of our all-purpose, rock-solid generators. It has excellent(sub-ns) speed, a state(256 bits) that is large enough for any parallel application, and it passes all tests we are aware of.
Public classRandXoshiro512PlusPlus An implementation of the xoshiro512++ PRNG which stores state in 8 x 64-bit numbers. The authors call it: one of our all-purpose, rock-solid generators. It has excellent(sub-ns) speed, a state(512 bits) that is large enough for any parallel application, and it passes all tests we are aware of.
Public classSplitMix SplitMix uses a simple internal state transition (a Weyl sequence based on adding a constant related to the golden ratio) combined with a fast, invertible mixing function to produce high-quality output bits.
Interfaces
 InterfaceDescription
Public interfaceIRandom An interface that defines the minimum functionality implemented by all library classes that are derived from the standard Random class. The .NET class does not implement an interface, but one was added for all derived classes in this library so they can be used interchangably and to simplify testing code.