pcg
TypeScript icon, indicating that this package has built-in type declarations

1.1.0 • Public • Published

pcg

Version Tests Coverage Downloads License

A functional implementation of the PCG family random number generators, written in JavaScript.

Getting started

To achieve frictionless reproducibility of random output results, immutable objects are used throughout the project.

First, seed a PCG state. A stream ID specifies which unique periodic series of entropy to use. The state specifies where in that series we start.

import { createPcg32 } from 'pcg'

const advancedOptions = {}
const initState = 42
const initStreamId = 54
const state0 = createPcg32(advancedOptions, initState, initStreamId)

After that, random outputs can be generated by calling appropriate functions as shown below:

import { nextState, prevState, randomInt, randomList } from 'fn-pcg'

const randomUint32 = randomInt(0, 2 ** 32 - 1)
const [value, nextState] = randomUint32(state0)

const listLength = 3
const listItemRng = randomUint32
const [[v1, state1], [v2, state2], [v3, state3]] = randomList(listLength, listItemRng, state0)

In this above example, value === v1, and nextState === state1

Thanks

/pcg/

    Package Sidebar

    Install

    npm i pcg

    Weekly Downloads

    27,836

    Version

    1.1.0

    License

    MIT

    Unpacked Size

    15.9 kB

    Total Files

    13

    Last publish

    Collaborators

    • philihp
    • kripod