Skip to content

Commit 740f468

Browse files
committed
#281-modify tables code in README.md
First attempt.
1 parent 0508ac4 commit 740f468

File tree

1 file changed

+33
-30
lines changed

1 file changed

+33
-30
lines changed

README.md

Lines changed: 33 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -155,36 +155,39 @@ In [1], every known PRNG at the time of the editing has been tested according to
155155
We give you here below a copy of the resulting table for the PRNGs that have been implemented in **PyRandLib**, as provided in [1], plus the Mersenne twister one which is not implemented in **PyRandLib**.
156156
We add in this table the evaluations provided by the authors of every new PRNGs that have been described after the publication of [1]. Fields may be missing then for them. A comparison of the computation times for all implemented PRNGs in **PyRandLib** is provided in an another belowing table.
157157

158-
| PyRandLib class | TU01 generator name (1) | Memory Usage | Period | SmallCrush fails | Crush fails | BigCrush fails | time-64 bits | time-32bits |
159-
| ---------------- | ---------------------------------- | --------------- | -------- | ---------------- | ----------- | -------------- | ------------ | ----------- |
160-
| Cwg64 | *CWG64* | 8 x 4-bytes | >= 2^70 | 0 | 0 | 0 | n.a. | n.a. |
161-
| Cwg128_64 | *CWG128-64* | 10 x 4-bytes | >= 2^71 | 0 | 0 | 0 | n.a. | n.a. |
162-
| Cwg128 | *CWG128* | 16 x 4-bytes | >= 2^135 | 0 | 0 | 0 | n.a. | n.a. |
163-
| FastRand32 | LCG(2^32, 69069, 1) | 1 x 4-bytes | 2^32 | 11 | 106 | *too many* | 0.67 | 3.20 |
164-
| FastRand63 | LCG(2^63, 9219741426499971445, 1) | 2 x 4-bytes | 2^63 | 0 | 5 | 7 | 0.75 | 4.20 |
165-
| LFib78 | LFib(2^64, 17, 5, +) | 34 x 4-bytes | 2^78 | 0 | 0 | 0 | 1.1 | n.a. |
166-
| LFib116 | LFib(2^64, 55, 24, +) | 110 x 4-bytes | 2^116 | 0 | 0 | 0 | 1.0 | n.a. |
167-
| LFib668 | LFib(2^64, 607, 273, +) | 1,214 x 4-bytes | 2^668 | 0 | 0 | 0 | 0.9 | n.a. |
168-
| LFib1340 | LFib(2^64, 1279, 861, +) | 2,558 x 4-bytes | 2^1,340 | 0 | 0 | 0 | 0.9 | n.a. |
169-
| Melg607 | *Melg607-64* | 21 x 4-bytes | 2^607 | 0 | 0 | 0 | n.a. | n.a |
170-
| Melg19937 | *Melg19937-64* | 625 x 4-bytes | 2^19,937 | 0 | 0 | 0 | n.a. | n.a |
171-
| Melg44497 | *Melg44497-64* | 1,392 x 4-bytes | 2^44,497 | 0 | 0 | 0 | n.a. | n.a |
172-
| Mrg287 | Marsa-LFIB4 | 256 x 4-bytes | 2^287 | 0 | 0 | 0 | 0.8 | 3.40 |
173-
| Mrg1457 | DX-47-3 | 47 x 4-bytes | 2^1,457 | 0 | 0 | 0 | 1.4 | n.a. |
174-
| Mrg49507 | DX-1597-2-7 | 1,597 x 4-bytes | 2^49,507 | 0 | 0 | 0 | 1.4 | n.a. |
175-
| Pcg64_32 | *PCG XSH RS 64/32 (LCG)* | 2 x 4 bytes | 2^64 | 0 | 0 | 0 | n.a. | n.a. |
176-
| Pcg128_64 | *PCG XSL RR 128/64 (LCG)* | 4 x 4 bytes | 2^128 | 0 | 0 | 0 | n.a. | n.a. |
177-
| Pcg1024_32 | *PCG XSH RS 64/32 (EXT 1024)* | 1,026 x 4 bytes | 2^32,830 | 0 | 0 | 0 | n.a. | n.a. |
178-
| Squares32 | *squares32* | 4 x 4-bytes | 2^64 | 0 | 0 | 0 | n.a. | n.a. |
179-
| Squares64 | *squares64* | 4 x 4-bytes | 2^64 | 0 | 0 | 0 | n.a. | n.a. |
180-
| Well512a | not available | 16 x 4-bytes | 2^512 | n.a. | n.a. | n.a. | n.a. | n.a. |
181-
| Well1024a | WELL1024a | 32 x 4-bytes | 2^1,024 | 0 | 4 | 4 | 1.1 | 4.0 |
182-
| Well19937c (2) | WELL19937a | 624 x 4-bytes | 2^19,937 | 0 | 2 | 2 | 1.3 | 4.3 |
183-
| Well44497b (3) | not available | 1,391 x 4-bytes | 2^44,497 | n.a. | n.a. | n.a. | n.a. | n.a. |
184-
| Mersenne Twister | MT19937 | 624 x 4-bytes | 2^19,937 | 0 | 2 | 2 | 1.6 | 4.30 |
185-
| Xoroshiro256 | *xiroshiro256*** | 16 x 4-bytes | 2^256 | 0 | 0 | 0 | 0.84 | n.a. |
186-
| Xoroshiro512 | *xiroshiro512*** | 32 x 4-bytes | 2^512 | 0 | 0 | 0 | 0.99 | n.a. |
187-
| Xoroshiro1024 | *xiroshiro1024*** | 64 x 4-bytes | 2^1,024 | 0 | 0 | 0 | 1.17 | n.a. |
158+
<table>
159+
<tr></tr>
160+
<tr><th>PyRandLib class</th><th>TU01 generator name (1)</th><th>Memory Usage</th><th>Period</th><th>SmallCrush fails</th><th>Crush fails</th><th>BigCrush fails</th><th>time-64 bits</th><th>time-32bits</th><th></th></tr>
161+
<tr><td>Cwg64</td><td>*CWG64*</td><td>8 x 4-bytes</td><td>>= 2^70</td><td>0</td><td>0</td><td>0</td><td>n.a.</td><td>n.a.</td><td></td></tr>
162+
<tr><td>Cwg128_64</td><td>*CWG128-64*</td><td>10 x 4-bytes</td><td>>= 2^71</td><td>0</td><td>0</td><td>0</td><td>n.a.</td><td>n.a.</td><td></td></tr>
163+
<tr><td>Cwg128</td><td>*CWG128*</td><td>16 x 4-bytes</td><td>>= 2^135</td><td>0</td><td>0</td><td>0</td><td>n.a.</td><td>n.a.</td><td></td></tr>
164+
<tr><td>FastRand32</td><td>LCG(2^32, 69069, 1)</td><td>1 x 4-bytes</td><td>2^32</td><td>11</td><td>106</td><td>*too many*</td><td>0.67</td><td>3.20</td><td></td></tr>
165+
<tr><td>FastRand63</td><td>LCG(2^63, 9219741426499971445, 1)</td><td>2 x 4-bytes</td><td>2^63</td><td>0</td><td>5</td><td>7</td><td>0.75</td><td>4.20</td><td></td></tr>
166+
<tr><td>LFib78</td><td>LFib(2^64, 17, 5, +)</td><td>34 x 4-bytes</td><td>2^78</td><td>0</td><td>0</td><td>0</td><td>1.1</td><td>n.a.</td><td></td></tr>
167+
<tr><td>LFib116</td><td>LFib(2^64, 55, 24, +)</td><td>110 x 4-bytes</td><td>2^116</td><td>0</td><td>0</td><td>0</td><td>1.0</td><td>n.a.</td><td></td></tr>
168+
<tr><td>LFib668</td><td>LFib(2^64, 607, 273, +)</td><td>1,214 x 4-bytes</td><td>2^668</td><td>0</td><td>0</td><td>0</td><td>0.9</td><td>n.a.</td><td></td></tr>
169+
<tr><td>LFib1340</td><td>LFib(2^64, 1279, 861, +)</td><td>2,558 x 4-bytes</td><td>2^1,340</td><td>0</td><td>0</td><td>0</td><td>0.9</td><td>n.a.</td><td></td></tr>
170+
<tr><td>Melg607</td><td>*Melg607-64*</td><td>21 x 4-bytes</td><td>2^607</td><td>0</td><td>0</td><td>0</td><td>n.a.</td><td>n.a</td><td></td></tr>
171+
<tr><td>Melg19937</td><td>*Melg19937-64*</td><td>625 x 4-bytes</td><td>2^19,937</td><td>0</td><td>0</td><td>0</td><td>n.a.</td><td>n.a</td><td></td></tr>
172+
<tr><td>Melg44497</td><td>*Melg44497-64*</td><td>1,392 x 4-bytes</td><td>2^44,497</td><td>0</td><td>0</td><td>0</td><td>n.a.</td><td>n.a</td><td></td></tr>
173+
<tr><td>Mrg287</td><td>Marsa-LFIB4</td><td>256 x 4-bytes</td><td>2^287</td><td>0</td><td>0</td><td>0</td><td>0.8</td><td>3.40</td><td></td></tr>
174+
<tr><td>Mrg1457</td><td>DX-47-3</td><td>47 x 4-bytes</td><td>2^1,457</td><td>0</td><td>0</td><td>0</td><td>1.4</td><td>n.a.</td><td></td></tr>
175+
<tr><td>Mrg49507</td><td>DX-1597-2-7</td><td>1,597 x 4-bytes</td><td>2^49,507</td><td>0</td><td>0</td><td>0</td><td>1.4</td><td>n.a.</td><td></td></tr>
176+
<tr><td>Pcg64_32</td><td>*PCG XSH RS 64/32 (LCG)*</td><td>2 x 4 bytes</td><td>2^64</td><td>0</td><td>0</td><td>0</td><td>n.a.</td><td>n.a.</td><td></td></tr>
177+
<tr><td>Pcg128_64</td><td>*PCG XSL RR 128/64 (LCG)*</td><td>4 x 4 bytes</td><td>2^128</td><td>0</td><td>0</td><td>0</td><td>n.a.</td><td>n.a.</td><td></td></tr>
178+
<tr><td>Pcg1024_32</td><td>*PCG XSH RS 64/32 (EXT 1024)*</td><td>1,026 x 4 bytes</td><td>2^32,830</td><td>0</td><td>0</td><td>0</td><td>n.a.</td><td>n.a.</td><td></td></tr>
179+
<tr><td>Squares32</td><td>*squares32*</td><td>4 x 4-bytes</td><td>2^64</td><td>0</td><td>0</td><td>0</td><td>n.a.</td><td>n.a.</td><td></td></tr>
180+
<tr><td>Squares64</td><td>*squares64*</td><td>4 x 4-bytes</td><td>2^64</td><td>0</td><td>0</td><td>0</td><td>n.a.</td><td>n.a.</td><td></td></tr>
181+
<tr><td>Well512a</td><td>not available</td><td>16 x 4-bytes</td><td>2^512</td><td>n.a.</td><td>n.a.</td><td>n.a.</td><td>n.a.</td><td>n.a.</td><td></td></tr>
182+
<tr><td>Well1024a</td><td>WELL1024a</td><td>32 x 4-bytes</td><td>2^1,024</td><td>0</td><td>4</td><td>4</td><td>1.1</td><td>4.0</td><td></td></tr>
183+
<tr><td>Well19937c (2)</td><td>WELL19937a</td><td>624 x 4-bytes</td><td>2^19,937</td><td>0</td><td>2</td><td>2</td><td>1.3</td><td>4.3</td><td></td></tr>
184+
<tr><td>Well44497b (3)</td><td>not available</td><td>1,391 x 4-bytes</td><td>2^44,497</td><td>n.a.</td><td>n.a.</td><td>n.a.</td><td>n.a.</td><td>n.a.</td><td></td></tr>
185+
<tr><td>Mersenne Twister</td><td>MT19937</td><td>624 x 4-bytes</td><td>2^19,937</td><td>0</td><td>2</td><td>2</td><td>1.6</td><td>4.30</td><td></td></tr>
186+
<tr><td>Xoroshiro256</td><td>*xiroshiro256***</td><td>16 x 4-bytes</td><td>2^256</td><td>0</td><td>0</td><td>0</td><td>0.84</td><td>n.a.</td><td></td></tr>
187+
<tr><td>Xoroshiro512</td><td>*xiroshiro512***</td><td>32 x 4-bytes</td><td>2^512</td><td>0</td><td>0</td><td>0</td><td>0.99</td><td>n.a.</td><td></td></tr>
188+
<tr><td>Xoroshiro1024</td><td>*xiroshiro1024***</td><td>64 x 4-bytes</td><td>2^1,024</td><td>0</td><td>0</td><td>0</td><td>1.17</td><td>n.a.</td><td></td></tr>
189+
<tr></tr>
190+
</table>
188191

189192
(1) *or the generator original name in the related more recent paper*
190193
(2) The Well19937c generator provided with library PyRandLib implements the Well19937a algorithm augmented with an associated *tempering* algorithm - see [6] p.9.

0 commit comments

Comments
 (0)