GfsrGenerator Class

Represents a generalized feedback shift register pseudo-random number generator.

Definition

Namespace: Extreme.Mathematics.Random
Assembly: Extreme.Numerics (in Extreme.Numerics.dll) Version: 8.1.23
C#
[SerializableAttribute]
public sealed class GfsrGenerator : RandomWordGenerator
Inheritance
Object  →  Random  →  ExtendedRandom  →  RandomWordGenerator  →  GfsrGenerator

Remarks

Use the GfsrGenerator class to represent a pseudo-this.random number generator that uses a fourth order generalized feedback shift register algorithm.

This generalized feedback shift register generator has a very long period of 29689-1. Thanks to its simplicity, it is very fast. On the down side, the start-up time is significant.

GfsrGenerator can be used in place of the Random class to obtain pseudo-random numbers of a higher quality.

Reference: Robert M. Ziff, "Four-tap shift-register-sequence this.random-number generators," Computers in Physics 12(4), Jul/Aug 1998, pp 385-392.

Constructors

GfsrGenerator() Initializes a new instance of the GfsrGenerator class using a time-dependent default seed value.
GfsrGenerator(Int32) Initializes a new instance of the GfsrGenerator class using the specified seed value.
GfsrGenerator(Int32[]) Initializes a new instance of the GfsrGenerator class using the specified seed array of seed values.

Methods

EqualsDetermines whether the specified object is equal to the current object.
(Inherited from Object)
GetHashCodeServes as the default hash function.
(Inherited from Object)
GetItems``1(UMP[], Int32)Creates an array populated with items chosen at random from the provided set of choices.
(Inherited from Random)
GetItems``1(ReadOnlySpan<UMP>, Int32)Creates an array populated with items chosen at random from the provided set of choices.
(Inherited from Random)
GetItems``1(ReadOnlySpan<UMP>, Span<UMP>)Fills the elements of a specified span with items chosen at random from the provided set of choices.
(Inherited from Random)
GetTypeGets the Type of the current instance.
(Inherited from Object)
Next() Returns a nonnegative random number.
(Inherited from RandomWordGenerator)
Next(Int32)Returns a non-negative random integer that is less than the specified maximum.
(Inherited from Random)
Next(Int32, Int32)Returns a random integer that is within a specified range.
(Inherited from Random)
NextBytes(Byte[]) Fills the elements of a specified array of bytes with random numbers.
(Inherited from RandomWordGenerator)
NextBytes(Span<Byte>)Fills the elements of a specified span of bytes with random numbers.
(Inherited from Random)
NextDouble Returns a random number between 0 and 1.
(Inherited from RandomWordGenerator)
NextDouble32 Returns a random number between 0 and 1.
(Inherited from RandomWordGenerator)
NextInt64()Returns a non-negative random integer.
(Inherited from Random)
NextInt64(Int64)Returns a non-negative random integer that is less than the specified maximum.
(Inherited from Random)
NextInt64(Int64, Int64)Returns a random integer that is within a specified range.
(Inherited from Random)
NextSingleReturns a random floating-point number that is greater than or equal to 0.0, and less than 1.0.
(Inherited from Random)
Restart() Restarts the random number generator using the original seed.
(Overrides ExtendedRandom.Restart())
Restart(Int32) Restarts the random number generator using the specified seed.
(Overrides ExtendedRandom.Restart(Int32))
Restart(Int32[]) Restarts the random number generator using the specified seed array.
Shuffle``1(UMP[])Performs an in-place shuffle of an array.
(Inherited from Random)
Shuffle``1(Span<UMP>)Performs an in-place shuffle of a span.
(Inherited from Random)
ToStringReturns a string that represents the current object.
(Inherited from Object)

Extension Methods

AsParallel Returns a thread-safe version of this random number generator.
(Defined by RandomExtensions)
CorrelatedSamples Generates a series of random variables with the specified correlation matrix.
(Defined by RandomExtensions)
Fill Fills a Double array with random numbers.
(Defined by RandomExtensions)
Fill Fills an Int32 array with random numbers.
(Defined by RandomExtensions)
Fill Fills a Double array with random samples from the specified distribution.
(Defined by RandomExtensions)
Fill Fills an Int32 array with random samples from the specified distribution.
(Defined by RandomExtensions)
Fill Fills a vector with random samples from the specified distribution.
(Defined by RandomExtensions)
Fill Fills a vector with random samples from the specified distribution.
(Defined by RandomExtensions)
Fill Fills a Double array with random samples from the specified distribution.
(Defined by RandomExtensions)
Fill Fills a Double array with random numbers.
(Defined by RandomExtensions)
Fill Fills an Int32 array with random numbers.
(Defined by RandomExtensions)
Fill Fills an Int32 array with random samples from the specified distribution.
(Defined by RandomExtensions)
Fill Fills a Double array with random samples from the specified distribution.
(Defined by RandomExtensions)
Fill Fills an Int32 array with random samples from the specified distribution.
(Defined by RandomExtensions)
FillNormal Fills a list with normal random numbers with zero mean and unit standard deviation.
(Defined by RandomExtensions)
FillNormal Fills a list with normal random numbers with zero mean and unit standard deviation.
(Defined by RandomExtensions)
Next Returns a sample from the specified distribution.
(Defined by RandomExtensions)
NextDouble Returns a sample from the specified distribution.
(Defined by RandomExtensions)

See Also