Skip to content

Commit b173cd7

Browse files
committed
#55-enhance README.md
Added WELL algorithms performances. Added separator in numbers containing more than 3 digits.
1 parent 223f596 commit b173cd7

1 file changed

Lines changed: 16 additions & 9 deletions

File tree

README.md

Lines changed: 16 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -75,8 +75,15 @@ We give you here below a copy of the resulting table for the PRGs that havebeen
7575
| LFibRand116 | LFib(2^64, 55, 24, +) | 110 x 4-bytes | 2^116 | n.a. | 1.0 | 0 | 0 | 0 |
7676
| LFibRand668 | LFib(2^64, 607, 273, +) | 1,214 x 4-bytes | 2^668 | n.a. | 0.9 | 0 | 0 | 0 |
7777
| LFibRand1340 | LFib(2^64, 1279, 861, +) | 2,558 x 4-bytes | 2^1340 | n.a. | 0.9 | 0 | 0 | 0 |
78+
| Well512a | not available | 16 x 4-bytes | 2^512 | n.a. | n.a. | n.a. | n.a. | n.a. |
79+
| Well1024a | WELL1024a | 32 x 4-bytes | 2^1024 | 4.0 | 1.1 | 0 | 4 | 4 |
80+
| Well19937b (1) | WELL19937a | 624 x 4-bytes | 2^19937 | 4.3 | 1.3 | 0 | 2 | 2 |
81+
| Well44497c | not available | 1,391 x 4-bytes | 2^44497 | n.a. | n.a. | n.a. | n.a. | n.a. |
7882
| Mersenne twister | MT19937 | 6 x 4-bytes | 2^19937 | 4.30 | 1.6 | 0 | 2 | 2 |
7983

84+
(1)The Well19937b generator provided with library PyRandLib implements the
85+
Well19937a algorithm augmented with an associated tempering algorithm.
86+
8087

8188

8289
## Implementation
@@ -239,7 +246,7 @@ recurrence:
239246

240247

241248

242-
### MRGRand1457 - 2^1457 periodicity
249+
### MRGRand1457 - 2^1,457 periodicity
243250

244251
**MRGRand1457** implements a fast 31-bits Multiple Recursive Generator with
245252
a longer period than MRGRan287 (2^1457 vs. 2^287, i.e. 4.0e+438 vs. 2.5e+86) and 80 % more computation time but with much less memory space consumption (47 vs. 256 integers).
@@ -250,9 +257,9 @@ The implementation of this MRG 31-bits model is based on DX-47-3 pseudo-random
250257

251258

252259

253-
### MRGRand49507 - 2^49507 periodicity
260+
### MRGRand49507 - 2^49,507 periodicity
254261

255-
**MRGRand49507** implements a fast 31-bits Multiple Recursive Generator with the longer period of all of the PRGs that are implemented in **PyRandLib** (2^49507, i.e. 1.2e+14903) with low computation time also (same as for MRGRand287) but use of much more memory space (1597 integers).
262+
**MRGRand49507** implements a fast 31-bits Multiple Recursive Generator with the longer period of all of the PRGs that are implemented in **PyRandLib** (2^49,507, i.e. 1.2e+14,903) with low computation time also (same as for MRGRand287) but use of much more memory space (1,597 integers).
256263

257264
The implementation of this MRG 31-bits model is based on the 'DX-1597-2-7' MRG proposed by Deng, see [3]. It uses the recurrence:
258265

@@ -314,7 +321,7 @@ Please notice that the TestUO1 article states that the operator should be
314321

315322

316323

317-
### LFibRand1340 - 2^1340 periodicity
324+
### LFibRand1340 - 2^1,340 periodicity
318325

319326
**LFibRand1340** implements an LFib 64-bits generator proposed by George Marsaglia in [4]. This PRNG uses the recurrence
320327

@@ -336,7 +343,7 @@ Meanwhile, it should not be able to pass some of the *crush* and *big-crush* tes
336343

337344

338345

339-
### Well1024a - 2^1024 periodicity
346+
### Well1024a - 2^1,024 periodicity
340347

341348
**Well1024a** implements the Well-Equilibrated Long-period Linear generators (WELL) proposed by François Panneton, Pierre L'ECcuyer and Makoto Matsumoto in [6]. This PRNG uses linear recurrence based on primitive characteristic polynomials associated with left- and right- shifts and xor operations to fastly evaluate pseudo-random numbers suites.
342349

@@ -346,21 +353,21 @@ Meanwhile, it does not pass 4 of the *crush* and 4 of the *big-crush* tests of T
346353

347354

348355

349-
### Well199937b - 2^19937 periodicity
356+
### Well199937b - 2^19,937 periodicity
350357

351358
**Well199937b** implements the Well-Equilibrated Long-period Linear generators (WELL) proposed by François Panneton, Pierre L'ECcuyer and Makoto Matsumoto in [6]. This PRNG uses linear recurrence based on primitive characteristic polynomials associated with left- and right- shifts and xor operations to fastly evaluate pseudo-random numbers suites.
352359

353-
It offers a long period of value 2^19937 - i.e. 4.32e+6001 - with short computation time and 624 integers memory consumption - just s the Mersenne-Twister algorithm).
360+
It offers a long period of value 2^19,937 - i.e. 4.32e+6,001 - with short computation time and 624 integers memory consumption - just s the Mersenne-Twister algorithm).
354361
It escapes the zeroland at a very fast pace.
355362
Meanwhile, it does not pass 2 of the *crush* and 2 of the *big-crush* tests of TestU01.
356363

357364

358365

359-
### Well44497c - 2^44497 periodicity
366+
### Well44497c - 2^44,497 periodicity
360367

361368
**WellWell44497c** implements the Well-Equilibrated Long-period Linear generators (WELL) proposed by François Panneton, Pierre L'ECcuyer and Makoto Matsumoto in [6]. This PRNG uses linear recurrence based on primitive characteristic polynomials associated with left- and right- shifts and xor operations to fastly evaluate pseudo-random numbers suites.
362369

363-
It offers a long period of value 2^44497 - i.e. 1.51e+13466 - with short computation time and 1.391 integers memory consumption.
370+
It offers a long period of value 2^44,497 - i.e. 1.51e+13,466 - with short computation time and 1.391 integers memory consumption.
364371
It escapes the zeroland at a fast pace.
365372
Meanwhile, it might not be able to pass a very few of the *crush* and *big-crush* tests of TestU01, while it can be expected to better behave than the Well19937b version - notice: this version of the WELL algorithm has not been tested in original TestU01 paper.
366373

0 commit comments

Comments
 (0)