class numpy.random.sfc64.SFC64(seed=None)
BitGenerator for Chris Doty-Humphrey’s Small Fast Chaotic PRNG.
Parameters: |
|
---|
SFC64
is a 256-bit implementation of Chris Doty-Humphrey’s Small Fast Chaotic PRNG ([1]). SFC64
has a few different cycles that one might be on, depending on the seed; the expected period will be about ([2]).
SFC64
incorporates a 64-bit counter which means that the absolute minimum cycle length is and that distinct seeds will not run into each other for at least
iterations.
SFC64
provides a capsule containing function pointers that produce doubles, and unsigned 32 and 64- bit integers. These are not directly consumable in Python and must be consumed by a Generator
or similar object that supports low-level access.
State and Seeding
The SFC64
state vector consists of 4 unsigned 64-bit values. The last is a 64-bit counter that increments by 1 each iteration.
The input seed is processed by SeedSequence
to generate the first 3 values, then the SFC64
algorithm is iterated a small number of times to mix.
Compatibility Guarantee
SFC64
makes a guarantee that a fixed seed will always produce the same random integer stream.
[1] | “PractRand” |
[2] | “Random Invertible Mapping Statistics” |
state | Get or set the PRNG state |
cffi | CFFI interface |
ctypes | ctypes interface |
© 2005–2019 NumPy Developers
Licensed under the 3-clause BSD License.
https://docs.scipy.org/doc/numpy-1.17.0/reference/random/bit_generators/sfc64.html