BlockGenerator32<TEngine> Structure

A generator struct that adapts a 32-bit non-counter block engine into the IRandomGenerator interface.

Definition

Namespace: Numerics.NET.Random.Generators
Assembly: Numerics.NET (in Numerics.NET.dll) Version: 10.3.0
C#
public struct BlockGenerator32<TEngine> : IRandomGenerator, 
	IStateful
where TEngine : struct, new(), IBlockEngine<uint>, IStateful
Inheritance
Object  →  ValueType  →  BlockGenerator32<TEngine>
Implements
IRandomGenerator, IStateful

Type Parameters

TEngine
The engine type, which must be a struct implementing IBlockEngine<T> for UInt32 and IStateful.

Remarks

BlockGenerator32<TEngine> wraps a non-counter block engine (e.g., Mersenne Twister) and provides:

Refill Policy (Advance-on-Empty):

When the block is exhausted (_index == BlockLength), the generator calls engine.AdvanceBlock() to move to the next block and resets _index = 0.

State Persistence:

Layer 2 state includes engine state plus the cursor index (4 bytes LE).

Constructors

BlockGenerator32<TEngine> Initializes a new instance of the BlockGenerator32<TEngine> struct with the specified engine.

Properties

StateSize Gets the number of bytes required to save/load this engine's state.

Methods

EqualsIndicates whether this instance and a specified object are equal.
(Inherited from ValueType)
Fill(Span<Double>) Fills the specified span with random double-precision floating-point numbers.
Fill(Span<Single>) Fills the specified span with random single-precision floating-point numbers.
Fill(Span<UInt32>) Fills the specified span with random 32-bit unsigned integers.
Fill(Span<UInt64>) Fills the specified span with random 64-bit unsigned integers.
GetHashCodeReturns the hash code for this instance.
(Inherited from ValueType)
GetTypeGets the Type of the current instance.
(Inherited from Object)
LoadState Loads the engine's state from the source span in a stable little-endian format.
NextBytes Fills the specified span with random bytes in little-endian order.
NextDouble Generates the next double-precision floating-point number.
NextSingle Generates the next single-precision floating-point number.
NextUInt32 Generates the next 32-bit unsigned integer.
NextUInt64 Generates the next 64-bit unsigned integer.
SaveState Saves the engine's state to the destination span in a stable little-endian format.
ToStringReturns the fully qualified type name of this instance.
(Inherited from ValueType)

See Also