SharperHacks.CoreLibs.Random.Jsf
2.0.0
Prefix Reserved
dotnet add package SharperHacks.CoreLibs.Random.Jsf --version 2.0.0
NuGet\Install-Package SharperHacks.CoreLibs.Random.Jsf -Version 2.0.0
<PackageReference Include="SharperHacks.CoreLibs.Random.Jsf" Version="2.0.0" />
<PackageVersion Include="SharperHacks.CoreLibs.Random.Jsf" Version="2.0.0" />
<PackageReference Include="SharperHacks.CoreLibs.Random.Jsf" />
paket add SharperHacks.CoreLibs.Random.Jsf --version 2.0.0
#r "nuget: SharperHacks.CoreLibs.Random.Jsf, 2.0.0"
#:package SharperHacks.CoreLibs.Random.Jsf@2.0.0
#addin nuget:?package=SharperHacks.CoreLibs.Random.Jsf&version=2.0.0
#tool nuget:?package=SharperHacks.CoreLibs.Random.Jsf&version=2.0.0

PRNG Library for .NET
SharperHacks.CoreLibs.Random.Jsf
An implementation of Jenkin's Small Fast algorithm, that implements the SharperHacks.CoreLibs.Interfaces.IProg* interfaces.
Licensed under the Apache License, Version 2.0. See LICENSE.
Contact: coders@sharperhacks.org
Nuget: https://www.nuget.org/packages/SharperHacks.CoreLibs.Random.Jsf
Repo: https://codeberg.org/SharperHacks-org/Random.git
Targets
- net10.0
Implements SharperHacks.CoreLibs.Interfaces:
- IProgSeed
- IProgState
- IProgNextValue<T>
Classes
Jsf8
8 bit implementation of JSF algorythm and
SharperHacks.CoreLibs.Interfaces.IProgNextValue<byte>.
Jsf16
16 bit implementation of JSF algorythm and
SharperHacks.CoreLibs.Interfaces.IProgNextValue<UInt16>.
Jsf32
32 bit implementation of JSF algorythm and
SharperHacks.CoreLibs.Interfaces.IProgNextValue<UInt32>.
Jsf64
64 bit implementation of JSF algorythm and
SharperHacks.CoreLibs.Interfaces.IProgNextValue<UInt64>.
Jsf128
128 bit implementation of JSF algorythm and
SharperHacks.CoreLibs.Interfaces.IProgNextValue<UInt128>.
JsfBase<T>
Base class for the Jsf# classes, implements SharperHacks.CoreLibs.Interfaces.IProgSeed and SharperHacks.CoreLibs.Interfaces.IProgState.
JsfRng
Static class that implements the methods used by the Jsf# classes.
Usage
If you are not concerned with repeatable playback of number streams, just create any of the Jsf# instances and start consuming the bits:
var rgen = new Jsf32();
var randNumber = rgen.NextValue();
// ...
If you are concerned with repeatable playback, get root seed:
First pass:
var rootSeed = RootEntropy.Seed;
// Up to you to implement seed storage.
RecordSeed(rootSeed);
var rgen = new Jsf32();
var randNumber = rgen.NextValue();
// ...
Second pass:
// Up to you to implement retrieval.
RootEntropy.Initialize(RetrievePreviousSeed())
var rgen = new Jsf32();
var randNumber = rgen.NextValue()
// ...
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net10.0 is compatible. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
-
net10.0
- SharperHacks.CoreLibs.Constraints (>= 6.0.1)
- SharperHacks.CoreLibs.Interfaces (>= 4.0.0)
- SharperHacks.CoreLibs.Math.Interfaces (>= 4.1.2)
- SharperHacks.CoreLibs.NumericExtensions (>= 2.0.1)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.