mirror of
https://github.com/josdejong/mathjs.git
synced 2026-01-18 14:59:29 +00:00
29 lines
906 B
JavaScript
29 lines
906 B
JavaScript
'use strict';
|
|
var seedrandom = require('seed-random');
|
|
|
|
function factory (type, config, load, typed, math) {
|
|
|
|
// initialize a seeded pseudo random number generator with config's random seed
|
|
var generator = config.randomSeed === null ? seedrandom() : seedrandom(config.randomSeed);
|
|
|
|
// wrapper function so the rng can be updated via generator
|
|
function rng() {
|
|
return generator();
|
|
}
|
|
|
|
// updates generator with a new instance of a seeded pseudo random number generator
|
|
math.on('config', function (curr, prev, options) {
|
|
// if the user specified a randomSeed
|
|
if(options.randomSeed !== undefined) {
|
|
// update generator with a new instance of a seeded pseudo random number generator
|
|
generator = curr.randomSeed === null ? seedrandom() : seedrandom(curr.randomSeed);
|
|
}
|
|
});
|
|
|
|
return rng;
|
|
}
|
|
|
|
exports.name = 'seededRNG';
|
|
exports.factory = factory;
|
|
exports.math = true;
|