UNPKG

1.72 kBTypeScriptView Raw
1import { Engine } from "../types";
2/**
3 * An Engine that is a pseudorandom number generator using the Mersenne
4 * Twister algorithm based on the prime 2**19937 − 1
5 *
6 * See http://en.wikipedia.org/wiki/Mersenne_twister
7 */
8export declare class MersenneTwister19937 implements Engine {
9 /**
10 * Returns a MersenneTwister19937 seeded with an initial int32 value
11 * @param initial the initial seed value
12 */
13 static seed(initial: number): MersenneTwister19937;
14 /**
15 * Returns a MersenneTwister19937 seeded with zero or more int32 values
16 * @param source A series of int32 values
17 */
18 static seedWithArray(source: ArrayLike<number>): MersenneTwister19937;
19 /**
20 * Returns a MersenneTwister19937 seeded with the current time and
21 * a series of natively-generated random values
22 */
23 static autoSeed(): MersenneTwister19937;
24 private readonly data;
25 private index;
26 private uses;
27 /**
28 * MersenneTwister19937 should not be instantiated directly.
29 * Instead, use the static methods `seed`, `seedWithArray`, or `autoSeed`.
30 */
31 private constructor();
32 /**
33 * Returns the next int32 value of the sequence
34 */
35 next(): number;
36 /**
37 * Returns the number of times that the Engine has been used.
38 *
39 * This can be provided to an unused MersenneTwister19937 with the same
40 * seed, bringing it to the exact point that was left off.
41 */
42 getUseCount(): number;
43 /**
44 * Discards one or more items from the engine
45 * @param count The count of items to discard
46 */
47 discard(count: number): this;
48 private seed;
49 private seedWithArray;
50}