time-to-botec/squiggle/node_modules/@stdlib/random/base/reviver/README.md
NunoSempere b6addc7f05 feat: add the node modules
Necessary in order to clearly see the squiggle hotwiring.
2022-12-03 12:44:49 +00:00

3.1 KiB

reviveBasePRNG

Revive a JSON-serialized pseudorandom number generator (PRNG).

Usage

var reviveBasePRNG = require( '@stdlib/random/base/reviver' );

reviveBasePRNG( key, value )

Revives a JSON-serialized pseudorandom number generator (PRNG).

var parseJSON = require( '@stdlib/utils/parse-json' );
var randu = require( '@stdlib/random/base/randu' );

var str = JSON.stringify( randu );

var rand = parseJSON( str, reviveBasePRNG );
// returns <Function>

For details on the JSON serialization format, see the .toJSON() method for, e.g., randu().

Examples

var randu = require( '@stdlib/random/base/randu' );
var parseJSON = require( '@stdlib/utils/parse-json' );
var reviveBasePRNG = require( '@stdlib/random/base/reviver' );

var rand;
var str;
var r1;
var r2;
var i;

// Progress the PRNG state...
for ( i = 0; i < 100; i++ ) {
    r1 = randu();
}

// Serialize the PRNG as a JSON string:
str = JSON.stringify( randu );

// Revive the JSON-serialized PRNG:
rand = parseJSON( str, reviveBasePRNG );
if ( rand instanceof Error ) {
    console.error( rand.message );
}

// Generate duplicate sequences...
for ( i = 0; i < 100; i++ ) {
    r1 = randu();
    r2 = rand();
    console.log( '%d == %d ? %s', r1, r2, ( r1 === r2 ).toString() );
}