rng

    0.2.2 • Public • Published

    Random build status NPM version Bitdeli Badge

    Install via npm

    $ npm install rng

    Install via component

    $ component install jhermsmeier/rng.js

    Install via bower

    $ bower install rng

    Usage

    Node.js

    // Require the module
    var Random = require( 'rng' )
    // Instantiate a new Mersenne Twister with a seed
    var mt = new Random.MT( seed )
    // ...

    Browser

    <!-- Required -->
    <script src="path/to/rng/rng.js"></script>
    <!-- Optionals, only load what you need -->
    <script src="path/to/rng/lib/mersenne-twister.js"></script>
    <script src="path/to/rng/lib/park-miller.js"></script>
    <script src="path/to/rng/lib/....js"></script>
    // RNG.js exports the global `Random`, so you're good to go.
    // Instantiate a new Mersenne Twister with a seed
    var mt = new Random.MT( seed )

    API

    Class: RNG()

    Base class using Math.random() as PRNG. All other classes inherit from RNG().

    Methods

    Number next() Get a random byte [0,255]

    Number random() Same as uniform(), just to be compatible with the Math.random() style API

    Number uniform() Get a uniform random number between 0 and 1

    Number normal() Get normally distributed number, with a mean 0, variance 1

    Number range( min, max ) Get random integer in range [min,max]

    Number exp() Get exponentionally distributed number with lambda 1

    Number poisson( mean ) Get poisson distributed number, the mean defaulting to 1

    Number gaussian( a ) Get gamma distributed number, using uniform, normal and exp with the Marsaglia-Tsang method

    Algorithms

    Class: RNG.MT( seed ) - Mersenne Twister

    Class: RNG.PM( seed ) - Park-Miller

    Class: RNG.XOR( x, y, z, w ) - XOR Shift

    Not (yet?) implemented:

    • ISAAC - ISAAC (indirection, shift, accumulate, add, count)
    • MWC - Multiply-With-Carry
    • CMWC - Complementary-Multiply-With-Carry
    • LCG - Linear Congruential Generator
    • ICG - Inversive Congruential Generator
    • LFG - Lagged Fibonacci Generator
    • LFSR - Linear Feedback Shift Register
    • NRPF - Naor-Reingold Pseudorandom Function
    • BBS - Blum Blum Shub

    Keywords

    none

    Install

    npm i rng

    DownloadsWeekly Downloads

    553

    Version

    0.2.2

    License

    MIT

    Last publish

    Collaborators

    • jhermsmeier