SeedProfile Enumeration

Specifies how seed material and stream indices are interpreted and expanded into RNG state.

Definition

Namespace: Numerics.NET.Random
Assembly: Numerics.NET (in Numerics.NET.dll) Version: 10.3.0
C#
public enum SeedProfile

Remarks

SeedProfile defines the seeding and stream contract for random number generators, expressing whose behavior we are matching, if any. It does not affect the RNG algorithm itself.

Profile semantics:

  • Default: Try standard/reference initialization when available; otherwise fall back to seed-sequence-based initialization
  • Standard: Strict canonical/reference initialization or throws
  • SplitMix64: Explicit Numerics.NET SplitMix64-based expansion (via SeedSequence)
  • Numpy: NumPy SeedSequence-based initialization (via SeedSequence)
  • CPlusPlus: C++11 seed_seq-compatible expansion (via SeedSequence), may be standard-compatible for specific RNGs (MT19937-64)
  • Direct: Direct state injection (input words + zero-fill), with invariant validation

Seeding profiles apply only during initialization. RNG state does not include seeding information.

Members

Default0 Default: tries standard/reference initialization when available; otherwise uses seed-sequence-based fallback.
Standard1 Standard: strict canonical/reference initialization or throws.
Independent2 A seeding profile that provides process-wide independent stream initialization.
SplitMix643 SplitMix64: explicit SplitMix64-based seed expansion (via SeedSequence).
Numpy4 NumPy: NumPy SeedSequence-based initialization (via SeedSequence).
CPlusPlus5 CPlusPlus: C++11 seed_seq-compatible expansion (via SeedSequence).
Direct6 Direct: direct state injection (input words + zero-fill).

See Also