Click or drag to resize

Xoshiro256StarStar Class

Xoshiro256** pseudo random number generator. A random number generator based on the Random class in the .NET library.
Inheritance Hierarchy
SystemObject
  SystemRandom
    Altaxo.Calc.RandomRandomSource
      Altaxo.Calc.RandomXoshiro256StarStar

Namespace: Altaxo.Calc.Random
Assembly: AltaxoCore (in AltaxoCore.dll) Version: 4.8.3179.0 (4.8.3179.0)
Syntax
C#
[SerializableAttribute]
public class Xoshiro256StarStar : RandomSource

The Xoshiro256StarStar type exposes the following members.

Constructors
 NameDescription
Public methodXoshiro256StarStar Construct a new random number generator with a random seed.
Public methodXoshiro256StarStar(Boolean) Construct a new random number generator with random seed.
Public methodXoshiro256StarStar(Int32) Construct a new random number generator with random seed.
Public methodXoshiro256StarStar(Int32, Boolean) Construct a new random number generator with random seed.
Top
Methods
 NameDescription
Protected methodDoSample Returns a random double-precision floating point number greater than or equal to 0.0, and less than 1.0.
(Overrides RandomSourceDoSample)
Protected methodDoSampleBytes Fills the elements of a specified array of bytes with random numbers in full range, including zero and 255 (MaxValue).
(Overrides RandomSourceDoSampleBytes(Byte))
Protected methodDoSampleInt32WithNBits Returns a random N-bit signed integer greater than or equal to zero and less than 2^N. N (bit count) is expected to be greater than zero and less than 32 (not verified).
(Overrides RandomSourceDoSampleInt32WithNBits(Int32))
Protected methodDoSampleInt64WithNBits Returns a random N-bit signed long integer greater than or equal to zero and less than 2^N. N (bit count) is expected to be greater than zero and less than 64 (not verified).
(Overrides RandomSourceDoSampleInt64WithNBits(Int32))
Protected methodDoSampleInteger Returns a random 32-bit signed integer greater than or equal to zero and less than MaxValue
(Overrides RandomSourceDoSampleInteger)
Protected methodDoSampleInteger(Int32) Returns a random 32-bit signed integer within the specified range.
(Inherited from RandomSource)
Protected methodDoSampleInteger(Int32, Int32) Returns a random 32-bit signed integer within the specified range.
(Inherited from RandomSource)
Public methodStatic memberDoubles(Double, Int32) Fills an array with random numbers greater than or equal to 0.0 and less than 1.0.
Public methodStatic memberDoubles(Int32, Int32) Returns an array of random numbers greater than or equal to 0.0 and less than 1.0.
Public methodStatic memberDoubleSequence Returns an infinite sequence of random numbers greater than or equal to 0.0 and less than 1.0.
Public methodEqualsDetermines whether the specified object is equal to the current object.
(Inherited from Object)
Protected methodFinalizeAllows an object to try to free resources and perform other cleanup operations before it is reclaimed by garbage collection.
(Inherited from Object)
Public methodGetHashCodeServes as the default hash function.
(Inherited from Object)
Public methodGetTypeGets the Type of the current instance.
(Inherited from Object)
Protected methodMemberwiseCloneCreates a shallow copy of the current Object.
(Inherited from Object)
Public methodNext Returns a random 32-bit signed integer greater than or equal to zero and less than MaxValue.
(Inherited from RandomSource)
Public methodNext(Int32) Returns a random number less then a specified maximum.
(Inherited from RandomSource)
Public methodNext(Int32, Int32) Returns a random number within a specified range.
(Inherited from RandomSource)
Public methodNextBytes Fills the elements of a specified array of bytes with random numbers.
(Inherited from RandomSource)
Public methodNextDoubleReturns a random floating-point number that is greater than or equal to 0.0, and less than 1.0.
(Inherited from Random)
Public methodNextDoubles(Double) Fills an array with uniform random numbers greater than or equal to 0.0 and less than 1.0.
(Inherited from RandomSource)
Public methodNextDoubles(Int32) Returns an array of uniform random numbers greater than or equal to 0.0 and less than 1.0.
(Inherited from RandomSource)
Public methodNextDoubleSequence Returns an infinite sequence of uniform random numbers greater than or equal to 0.0 and less than 1.0.
(Inherited from RandomSource)
Public methodNextInt32s(Int32) Returns an array with random 32-bit signed integers greater than or equal to zero and less than MaxValue.
(Inherited from RandomSource)
Public methodNextInt32s(Int32) Fills an array with random 32-bit signed integers greater than or equal to zero and less than MaxValue.
(Inherited from RandomSource)
Public methodNextInt32s(Int32, Int32) Returns an array with random 32-bit signed integers within the specified range.
(Inherited from RandomSource)
Public methodNextInt32s(Int32, Int32) Fills an array with random numbers within a specified range.
(Inherited from RandomSource)
Public methodNextInt32s(Int32, Int32, Int32) Returns an array with random 32-bit signed integers within the specified range.
(Inherited from RandomSource)
Public methodNextInt32s(Int32, Int32, Int32) Fills an array with random numbers within a specified range.
(Inherited from RandomSource)
Public methodNextInt32Sequence Returns an infinite sequence of random 32-bit signed integers greater than or equal to zero and less than MaxValue.
(Inherited from RandomSource)
Public methodNextInt32Sequence(Int32, Int32) Returns an infinite sequence of random numbers within a specified range.
(Inherited from RandomSource)
Protected methodSample Returns a random number between 0.0 and 1.0.
(Inherited from RandomSource)
Public methodToStringReturns a string that represents the current object.
(Inherited from Object)
Top
Extension Methods
 NameDescription
Public Extension MethodNextBigIntegerSequence Returns an infinite sequence of uniform random BigInteger within the specified range.
(Defined by RandomExtensions)
Public Extension MethodNextBoolean Returns a random boolean.
(Defined by RandomExtensions)
Public Extension MethodNextBytes Returns an array of uniform random bytes.
(Defined by RandomExtensions)
Public Extension MethodNextDecimal Returns a nonnegative decimal floating point random number less than 1.0.
(Defined by RandomExtensions)
Public Extension MethodNextDoubles Fills an array with uniform random numbers greater than or equal to 0.0 and less than 1.0.
(Defined by RandomExtensions)
Public Extension MethodNextDoubles Returns an array of uniform random numbers greater than or equal to 0.0 and less than 1.0.
(Defined by RandomExtensions)
Public Extension MethodNextDoubleSequence Returns an infinite sequence of uniform random numbers greater than or equal to 0.0 and less than 1.0.
(Defined by RandomExtensions)
Public Extension MethodNextFullRangeInt32 Returns a random number of the full Int32 range.
(Defined by RandomExtensions)
Public Extension MethodNextFullRangeInt64 Returns a random number of the full Int64 range.
(Defined by RandomExtensions)
Public Extension MethodNextInt32s Fills an array with uniform random 32-bit signed integers greater than or equal to zero and less than MaxValue.
(Defined by RandomExtensions)
Public Extension MethodNextInt32s Fills an array with uniform random 32-bit signed integers within the specified range.
(Defined by RandomExtensions)
Public Extension MethodNextInt32Sequence Returns an infinite sequence of uniform random 32-bit signed integers within the specified range.
(Defined by RandomExtensions)
Public Extension MethodNextInt64 Returns a nonnegative random number less than MaxValue.
(Defined by RandomExtensions)
Top
Remarks
This is xoshiro256** 1.0, our all-purpose, rock-solid generator. It has excellent(sub-ns) speed, a state space(256 bits) that is large enough for any parallel application, and it passes all tests we are aware of. For generating just floating-point numbers, xoshiro256+ is even faster. The state must be seeded so that it is not everywhere zero.If you have a 64-bit seed, we suggest to seed a splitmix64 generator and use its output to fill s. For further details see: David Blackman & Sebastiano Vigna (2018), "Scrambled Linear Pseudorandom Number Generators". https://arxiv.org/abs/1805.01407
See Also