package np

  1. Overview
  2. Docs
Legend:
Library
Module
Module type
Parameter
Class
Class type
type tag = [
  1. | `SFC64
]
type t = [ `Object | `SFC64 ] Obj.t
val of_pyobject : Py.Object.t -> t
val to_pyobject : [> tag ] Obj.t -> Py.Object.t
val create : ?seed:[ `I of int | `PyObject of Py.Object.t ] -> unit -> t

SFC64(seed=None)

BitGenerator for Chris Doty-Humphrey's Small Fast Chaotic PRNG.

Parameters ---------- seed : None, int, array_like[ints], SeedSequence, optional A seed to initialize the `BitGenerator`. If None, then fresh, unpredictable entropy will be pulled from the OS. If an ``int`` or ``array_likeints`` is passed, then it will be passed to `SeedSequence` to derive the initial `BitGenerator` state. One may also pass in a `SeedSequence` instance.

Notes ----- ``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 :math:`2^

` (2_). ``SFC64`` incorporates a 64-bit counter which means that the absolute minimum cycle length is :math:`2^

` and that distinct seeds will not run into each other for at least :math:`2^

` 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.

References ---------- .. 1 `'PractRand' <http://pracrand.sourceforge.net/RNG_engines.txt>`_ .. 2 `'Random Invertible Mapping Statistics' <http://www.pcg-random.org/posts/random-invertible-mapping-statistics.html>`_

val to_string : t -> string

Print the object to a human-readable representation.

val show : t -> string

Print the object to a human-readable representation.

val pp : Stdlib.Format.formatter -> t -> unit

Pretty-print the object to a formatter.