UNPKG

1.78 kBJavaScriptView Raw
1'use strict'
2
3function factory (type, config, load, typed) {
4 const distribution = load(require('./distribution'))
5
6 /**
7 * Return a random number larger or equal to `min` and smaller than `max`
8 * using a uniform distribution.
9 *
10 * Syntax:
11 *
12 * math.random() // generate a random number between 0 and 1
13 * math.random(max) // generate a random number between 0 and max
14 * math.random(min, max) // generate a random number between min and max
15 * math.random(size) // generate a matrix with random numbers between 0 and 1
16 * math.random(size, max) // generate a matrix with random numbers between 0 and max
17 * math.random(size, min, max) // generate a matrix with random numbers between min and max
18 *
19 * Examples:
20 *
21 * math.random() // returns a random number between 0 and 1
22 * math.random(100) // returns a random number between 0 and 100
23 * math.random(30, 40) // returns a random number between 30 and 40
24 * math.random([2, 3]) // returns a 2x3 matrix with random numbers between 0 and 1
25 *
26 * See also:
27 *
28 * randomInt, pickRandom
29 *
30 * @param {Array | Matrix} [size] If provided, an array or matrix with given
31 * size and filled with random values is returned
32 * @param {number} [min] Minimum boundary for the random value, included
33 * @param {number} [max] Maximum boundary for the random value, excluded
34 * @return {number | Array | Matrix} A random number
35 */
36 // TODO: rework random to a typed-function
37 const random = distribution('uniform').random
38
39 random.toTex = undefined // use default template
40
41 return random
42}
43
44exports.name = 'random'
45exports.factory = factory