| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115 |
- // https://d3js.org/d3-random/ v1.1.2 Copyright 2018 Mike Bostock
- (function (global, factory) {
- typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) :
- typeof define === 'function' && define.amd ? define(['exports'], factory) :
- (factory((global.d3 = global.d3 || {})));
- }(this, (function (exports) { 'use strict';
- function defaultSource() {
- return Math.random();
- }
- var uniform = (function sourceRandomUniform(source) {
- function randomUniform(min, max) {
- min = min == null ? 0 : +min;
- max = max == null ? 1 : +max;
- if (arguments.length === 1) max = min, min = 0;
- else max -= min;
- return function() {
- return source() * max + min;
- };
- }
- randomUniform.source = sourceRandomUniform;
- return randomUniform;
- })(defaultSource);
- var normal = (function sourceRandomNormal(source) {
- function randomNormal(mu, sigma) {
- var x, r;
- mu = mu == null ? 0 : +mu;
- sigma = sigma == null ? 1 : +sigma;
- return function() {
- var y;
- // If available, use the second previously-generated uniform random.
- if (x != null) y = x, x = null;
- // Otherwise, generate a new x and y.
- else do {
- x = source() * 2 - 1;
- y = source() * 2 - 1;
- r = x * x + y * y;
- } while (!r || r > 1);
- return mu + sigma * y * Math.sqrt(-2 * Math.log(r) / r);
- };
- }
- randomNormal.source = sourceRandomNormal;
- return randomNormal;
- })(defaultSource);
- var logNormal = (function sourceRandomLogNormal(source) {
- function randomLogNormal() {
- var randomNormal = normal.source(source).apply(this, arguments);
- return function() {
- return Math.exp(randomNormal());
- };
- }
- randomLogNormal.source = sourceRandomLogNormal;
- return randomLogNormal;
- })(defaultSource);
- var irwinHall = (function sourceRandomIrwinHall(source) {
- function randomIrwinHall(n) {
- return function() {
- for (var sum = 0, i = 0; i < n; ++i) sum += source();
- return sum;
- };
- }
- randomIrwinHall.source = sourceRandomIrwinHall;
- return randomIrwinHall;
- })(defaultSource);
- var bates = (function sourceRandomBates(source) {
- function randomBates(n) {
- var randomIrwinHall = irwinHall.source(source)(n);
- return function() {
- return randomIrwinHall() / n;
- };
- }
- randomBates.source = sourceRandomBates;
- return randomBates;
- })(defaultSource);
- var exponential = (function sourceRandomExponential(source) {
- function randomExponential(lambda) {
- return function() {
- return -Math.log(1 - source()) / lambda;
- };
- }
- randomExponential.source = sourceRandomExponential;
- return randomExponential;
- })(defaultSource);
- exports.randomUniform = uniform;
- exports.randomNormal = normal;
- exports.randomLogNormal = logNormal;
- exports.randomBates = bates;
- exports.randomIrwinHall = irwinHall;
- exports.randomExponential = exponential;
- Object.defineProperty(exports, '__esModule', { value: true });
- })));
|