1 | import { 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 | */
|
8 | export 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 | }
|