simple-squiggle

A restricted subset of Squiggle
Log | Files | Refs | README

seededRNG.js (782B)


      1 "use strict";
      2 
      3 var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
      4 
      5 Object.defineProperty(exports, "__esModule", {
      6   value: true
      7 });
      8 exports.createRng = createRng;
      9 
     10 var _seedrandom = _interopRequireDefault(require("seedrandom"));
     11 
     12 var singletonRandom = /* #__PURE__ */(0, _seedrandom.default)(Date.now());
     13 
     14 function createRng(randomSeed) {
     15   var random; // create a new random generator with given seed
     16 
     17   function setSeed(seed) {
     18     random = seed === null ? singletonRandom : (0, _seedrandom.default)(String(seed));
     19   } // initialize a seeded pseudo random number generator with config's random seed
     20 
     21 
     22   setSeed(randomSeed); // wrapper function so the rng can be updated via generator
     23 
     24   function rng() {
     25     return random();
     26   }
     27 
     28   return rng;
     29 }