Skip to content

Commit 5bb9537

Browse files
committed
Update README.md
1 parent cde527a commit 5bb9537

File tree

1 file changed

+57
-55
lines changed

1 file changed

+57
-55
lines changed

README.md

Lines changed: 57 additions & 55 deletions
Original file line numberDiff line numberDiff line change
@@ -216,33 +216,33 @@ The Python versions used for these evaluations in their related virtual environm
216216
**PyRandLib** time-64 bits table, Intel® Core™ **i7-150U** CPU @ 1.80 GHz:
217217
| PyRabndLib class | Python 3.9 | Python 3.10 | Python 3.11 | Python 3.12 | Python 3.13 | Python 3.14 | SmallCrush fails | Crush fails | BigCrush fails |
218218
| ---------------- | ---------- | ----------- | ----------- | ----------- | ----------- | ----------- | ---------------- | ----------- | -------------- |
219-
| Cwg64 | 0.46 | 0.44 | 0.50 | 0.56 | 0.35 | 0.35 | *0* | *0* | *0* |
220-
| Cwg128_64 | 0.48 | 0.46 | 0.51 | 0.59 | 0.37 | 0.37 | *0* | *0* | *0* |
221-
| Cwg128 | 0.53 | 0.54 | 0.55 | 0.64 | 0.41 | 0.39 | *0* | *0* | *0* |
222-
| FastRand32 | 0.15 | 0.16 | 0.15 | 0.17 | 0.10 | 0.10 | *11* | *106* | *too many* |
223-
| FastRand63 | 0.16 | 0.17 | 0.16 | 0.18 | 0.10 | 0.10 | *0* | *5* | *7* |
224-
| LFib78 | 0.29 | 0.29 | 0.29 | 0.32 | 0.19 | 0.17 | *0* | *0* | *0* |
225-
| LFib116 | 0.29 | 0.30 | 0.29 | 0.32 | 0.19 | 0.18 | *0* | *0* | *0* |
226-
| LFib668 | 0.30 | 0.30 | 0.30 | 0.34 | 0.20 | 0.18 | *0* | *0* | *0* |
227-
| LFib1340 | 0.31 | 0.32 | 0.31 | 0.35 | 0.21 | 0.20 | *0* | *0* | *0* |
228-
| Melg607 | 0.73 | 0.75 | 0.75 | 0.79 | 0.56 | 0.56 | *0* | *0* | *0* |
229-
| Melg19937 | 0.76 | 0.74 | 0.78 | 0.82 | 0.61 | 0.61 | *0* | *0* | *0* |
230-
| Melg44497 | 0.75 | 0.76 | 0.78 | 0.83 | 0.60 | 0.60 | *0* | *0* | *0* |
231-
| Mrg287 | 0.47 | 0.48 | 0.46 | 0.51 | 0.32 | 0.31 | *0* | *0* | *0* |
232-
| Mrg1457 | 0.43 | 0.44 | 0.42 | 0.48 | 0.31 | 0.31 | *0* | *0* | *0* |
233-
| Mrg49507 | 0.44 | 0.45 | 0.43 | 0.48 | 0.33 | 0.33 | *0* | *0* | *0* |
234-
| Pcg64_32 | 0.30 | 0.31 | 0.28 | 0.32 | 0.21 | 0.21 | *0* | *0* | *0* |
235-
| Pcg128_64 | 0.45 | 0.46 | 0.44 | 0.49 | 0.34 | 0.34 | *0* | *0* | *0* |
236-
| Pcg1024_32 | 0.58 | 0.59 | 0.55 | 0.55 | 0.38 | 0.38 | *0* | *0* | *0* |
237-
| Squares32 | 0.83 | 0.83 | 0.82 | 0.92 | 0.63 | 0.63 | *0* | *0* | *0* |
238-
| Squares64 | 1.02 | 1.01 | 1.03 | 1.14 | 0.80 | 0.80 | *0* | *0* | *0* |
239-
| Well512a | 1.37 | 1.44 | 1.28 | 1.42 | 0.97 | 0.97 | *n.a.* | *n.a.* | n.a. |
240-
| Well1024a | 1.27 | 1.31 | 1.18 | 1.29 | 0.90 | 0.90 | *0* | *4* | *4* |
241-
| Well19937c (1) | 1.68 | 1.78 | 1.58 | 1.76 | 1.26 | 1.26 | *0* | *2* | *2* |
242-
| Well44497b (2) | 1.91 | 2.03 | 1.80 | 2.02 | 1.52 | 1.52 | *n.a.* | *n.a.* | n.a. |
243-
| Xoroshiro256 | 1.39 | 1.38 | 1.32 | 1.47 | 1.01 | 1.01 | *0* | *0* | *0* |
244-
| Xoroshiro512 | 1.70 | 1.67 | 1.60 | 1.79 | 1.24 | 1.24 | *0* | *0* | *0* |
245-
| Xoroshiro1024 | 1.63 | 1.63 | 1.52 | 1.72 | 1.19 | 1.19 | *0* | *0* | *0* |
219+
| Cwg64 | 0.45 | 0.44 | 0.49 | 0.56 | 0.37 | 0.24 | *0* | *0* | *0* |
220+
| Cwg128_64 | 0.47 | 0.46 | 0.50 | 0.59 | 0.38 | 0.26 | *0* | *0* | *0* |
221+
| Cwg128 | 0.52 | 0.54 | 0.54 | 0.64 | 0.41 | 0.26 | *0* | *0* | *0* |
222+
| FastRand32 | 0.15 | 0.16 | 0.14 | 0.17 | 0.11 | 0.07 | *11* | *106* | *too many* |
223+
| FastRand63 | 0.16 | 0.17 | 0.16 | 0.18 | 0.11 | 0.08 | *0* | *5* | *7* |
224+
| LFib78 | 0.28 | 0.29 | 0.27 | 0.32 | 0.20 | 0.11 | *0* | *0* | *0* |
225+
| LFib116 | 0.29 | 0.29 | 0.28 | 0.32 | 0.21 | 0.11 | *0* | *0* | *0* |
226+
| LFib668 | 0.30 | 0.30 | 0.29 | 0.34 | 0.22 | 0.12 | *0* | *0* | *0* |
227+
| LFib1340 | 0.31 | 0.31 | 0.30 | 0.35 | 0.22 | 0.13 | *0* | *0* | *0* |
228+
| Melg607 | 0.73 | 0.74 | 0.73 | 0.79 | 0.61 | 0.50 | *0* | *0* | *0* |
229+
| Melg19937 | 0.76 | 0.74 | 0.76 | 0.82 | 0.60 | 0.51 | *0* | *0* | *0* |
230+
| Melg44497 | 0.75 | 0.76 | 0.77 | 0.82 | 0.62 | 0.52 | *0* | *0* | *0* |
231+
| Mrg287 | 0.46 | 0.48 | 0.44 | 0.51 | 0.34 | 0.21 | *0* | *0* | *0* |
232+
| Mrg1457 | 0.43 | 0.44 | 0.41 | 0.48 | 0.32 | 0.21 | *0* | *0* | *0* |
233+
| Mrg49507 | 0.44 | 0.45 | 0.42 | 0.48 | 0.34 | 0.24 | *0* | *0* | *0* |
234+
| Pcg64_32 | 0.30 | 0.31 | 0.28 | 0.32 | 0.22 | 0.19 | *0* | *0* | *0* |
235+
| Pcg128_64 | 0.45 | 0.46 | 0.44 | 0.49 | 0.34 | 0.30 | *0* | *0* | *0* |
236+
| Pcg1024_32 | 0.58 | 0.59 | 0.54 | 0.55 | 0.39 | 0.33 | *0* | *0* | *0* |
237+
| Squares32 | 0.83 | 0.83 | 0.82 | 0.92 | 0.67 | 0.63 | *0* | *0* | *0* |
238+
| Squares64 | 1.02 | 1.01 | 1.01 | 1.14 | 0.86 | 0.80 | *0* | *0* | *0* |
239+
| Well512a | 1.37 | 1.44 | 1.27 | 1.42 | 1.10 | 0.88 | *n.a.* | *n.a.* | n.a. |
240+
| Well1024a | 1.27 | 1.31 | 1.17 | 1.29 | 1.00 | 0.83 | *0* | *4* | *4* |
241+
| Well19937c (1) | 1.68 | 1.75 | 1.58 | 1.76 | 1.38 | 1.26 | *0* | *2* | *2* |
242+
| Well44497b (2) | 1.91 | 1.99 | 1.80 | 2.02 | 1.63 | 1.43 | *n.a.* | *n.a.* | n.a. |
243+
| Xoroshiro256 | 1.39 | 1.38 | 1.31 | 1.47 | 1.06 | 0.98 | *0* | *0* | *0* |
244+
| Xoroshiro512 | 1.70 | 1.67 | 1.60 | 1.77 | 1.37 | 1.17 | *0* | *0* | *0* |
245+
| Xoroshiro1024 | 1.63 | 1.63 | 1.52 | 1.72 | 1.26 | 1.15 | *0* | *0* | *0* |
246246

247247
(1) The Well19937c generator provided with library PyRandLib implements the Well19937a algorithm augmented with an associated *tempering* algorithm - see [6] p.9.
248248
(2) The Well44497b generator provided with library PyRandLib implements the Well44497a algorithm augmented with an associated *tempering* algorithm - see [6] p.9.
@@ -251,41 +251,40 @@ The Python versions used for these evaluations in their related virtual environm
251251
**PyRandLib** time-64 bits table, Intel® Core™ **i5-1035G1** CPU @ 1.00 GHz:
252252
| PyRabndLib class | Python 3.9 | Python 3.10 | Python 3.11 | Python 3.12 | Python 3.13 | Python 3.14 | SmallCrush fails | Crush fails | BigCrush fails |
253253
| ---------------- | ---------- | ----------- | ----------- | ----------- | ----------- | ----------- | ---------------- | ----------- | -------------- |
254-
| Cwg64 | 0.83 | 0.77 | 0.87 | 0.74 | 0.76 | 0.76 | *0* | *0* | *0* |
255-
| Cwg128_64 | 0.85 | 0.80 | 0.91 | 0.79 | 0.79 | 0.79 | *0* | *0* | *0* |
256-
| Cwg128 | 0.94 | 0.94 | 0.99 | 0.83 | 0.83 | 0.83 | *0* | *0* | *0* |
257-
| FastRand32 | 0.27 | 0.27 | 0.26 | 0.22 | 0.22 | 0.22 | *11* | *106* | *too many* |
258-
| FastRand63 | 0.30 | 0.29 | 0.29 | 0.24 | 0.22 | 0.22 | *0* | *5* | *7* |
259-
| LFib78 | 0.52 | 0.50 | 0.51 | 0.36 | 0.35 | 0.35 | *0* | *0* | *0* |
260-
| LFib116 | 0.53 | 0.52 | 0.51 | 0.38 | 0.36 | 0.36 | *0* | *0* | *0* |
261-
| LFib668 | 0.56 | 0.54 | 0.53 | 0.40 | 0.39 | 0.39 | *0* | *0* | *0* |
262-
| LFib1340 | 0.59 | 0.56 | 0.55 | 0.41 | 0.41 | 0.41 | *0* | *0* | *0* |
263-
| Melg607 | 1.39 | 1.35 | 1.34 | 1.08 | 1.15 | 1.15 | *0* | *0* | *0* |
264-
| Melg19937 | 1.41 | 1.37 | 1.36 | 1.20 | 1.23 | 1.23 | *0* | *0* | *0* |
265-
| Melg44497 | 1.42 | 1.35 | 1.37 | 1.23 | 1.19 | 1.19 | *0* | *0* | *0* |
266-
| Mrg287 | 0.89 | 0.88 | 0.85 | 0.61 | 0.61 | 0.61 | *0* | *0* | *0* |
267-
| Mrg1457 | 0.85 | 0.82 | 0.81 | 0.63 | 0.61 | 0.61 | *0* | *0* | *0* |
268-
| Mrg49507 | 0.75 | 0.69 | 0.68 | 0.57 | 0.56 | 0.56 | *0* | *0* | *0* |
269-
| Pcg64_32 | 0.56 | 0.52 | 0.49 | 0.43 | 0.44 | 0.44 | *0* | *0* | *0* |
270-
| Pcg128_64 | 0.80 | 0.74 | 0.73 | 0.67 | 0.63 | 0.63 | *0* | *0* | *0* |
271-
| Pcg1024_32 | 1.12 | 1.06 | 0.95 | 0.75 | 0.75 | 0.75 | *0* | *0* | *0* |
272-
| Squares32 | 1.58 | 1.47 | 1.49 | 1.39 | 1.37 | 1.37 | *0* | *0* | *0* |
273-
| Squares64 | 1.97 | 1.81 | 1.84 | 1.76 | 1.67 | 1.67 | *0* | *0* | *0* |
274-
| Well512a | 2.80 | 2.74 | 2.43 | 2.11 | 2.08 | 2.08 | *n.a.* | *n.a.* | n.a. |
275-
| Well1024a | 2.52 | 2.44 | 2.19 | 1.94 | 1.87 | 1.87 | *0* | *4* | *4* |
276-
| Well19937c (1) | 3.48 | 3.44 | 3.06 | 2.67 | 2.61 | 2.61 | *0* | *2* | *2* |
277-
| Well44497b (2) | 3.96 | 3.91 | 3.40 | 3.09 | 2.92 | 2.92 | *n.a.* | *n.a.* | n.a. |
278-
| Xoroshiro256 | 2.37 | 2.24 | 2.25 | 1.95 | 1.93 | 1.93 | *0* | *0* | *0* |
279-
| Xoroshiro512 | 2.94 | 2.81 | 2.72 | 2.40 | 2.30 | 2.30 | *0* | *0* | *0* |
280-
| Xoroshiro1024 | 2.78 | 2.59 | 2.41 | 2.12 | 2.06 | 2.06 | *0* | *0* | *0* |
254+
| Cwg64 | 0.79 | 0.77 | 0.84 | 0.97 | 0.76 | 0.48 | *0* | *0* | *0* |
255+
| Cwg128_64 | 0.82 | 0.80 | 0.88 | 0.99 | 0.78 | 0.49 | *0* | *0* | *0* |
256+
| Cwg128 | 0.89 | 0.94 | 0.96 | 1.13 | 0.83 | 0.52 | *0* | *0* | *0* |
257+
| FastRand32 | 0.27 | 0.27 | 0.26 | 0.31 | 0.21 | 0.14 | *11* | *106* | *too many* |
258+
| FastRand63 | 0.30 | 0.29 | 0.29 | 0.35 | 0.22 | 0.15 | *0* | *5* | *7* |
259+
| LFib78 | 0.52 | 0.49 | 0.50 | 0.56 | 0.35 | 0.21 | *0* | *0* | *0* |
260+
| LFib116 | 0.53 | 0.51 | 0.51 | 0.57 | 0.36 | 0.22 | *0* | *0* | *0* |
261+
| LFib668 | 0.55 | 0.52 | 0.53 | 0.60 | 0.39 | 0.24 | *0* | *0* | *0* |
262+
| LFib1340 | 0.55 | 0.53 | 0.55 | 0.62 | 0.41 | 0.25 | *0* | *0* | *0* |
263+
| Melg607 | 1.30 | 1.31 | 1.26 | 1.40 | 1.15 | 0.98 | *0* | *0* | *0* |
264+
| Melg19937 | 1.37 | 1.32 | 1.31 | 1.43 | 1.14 | 0.99 | *0* | *0* | *0* |
265+
| Melg44497 | 1.33 | 1.35 | 1.32 | 1.42 | 1.16 | 0.99 | *0* | *0* | *0* |
266+
| Mrg287 | 0.86 | 0.84 | 0.82 | 0.91 | 0.61 | 0.37 | *0* | *0* | *0* |
267+
| Mrg1457 | 0.81 | 0.78 | 0.76 | 0.86 | 0.61 | 0.40 | *0* | *0* | *0* |
268+
| Mrg49507 | 0.75 | 0.69 | 0.68 | 0.86 | 0.56 | 0.49 | *0* | *0* | *0* |
269+
| Pcg64_32 | 0.56 | 0.52 | 0.48 | 0.56 | 0.44 | 0.40 | *0* | *0* | *0* |
270+
| Pcg128_64 | 0.80 | 0.74 | 0.73 | 0.86 | 0.63 | 0.62 | *0* | *0* | *0* |
271+
| Pcg1024_32 | 1.08 | 1.06 | 0.95 | 0.96 | 0.75 | 0.69 | *0* | *0* | *0* |
272+
| Squares32 | 1.48 | 1.45 | 1.40 | 1.67 | 1.31 | 1.26 | *0* | *0* | *0* |
273+
| Squares64 | 1.83 | 1.79 | 1.71 | 2.01 | 1.62 | 1.62 | *0* | *0* | *0* |
274+
| Well512a | 2.62 | 2.64 | 2.26 | 2.60 | 2.08 | 1.77 | *n.a.* | *n.a.* | n.a. |
275+
| Well1024a | 2.28 | 2.36 | 1.98 | 2.24 | 1.87 | 1.60 | *0* | *4* | *4* |
276+
| Well19937c (1) | 3.23 | 3.44 | 2.84 | 3.12 | 2.61 | 2.44 | *0* | *2* | *2* |
277+
| Well44497b (2) | 3.66 | 3.91 | 3.18 | 3.55 | 2.92 | 2.82 | *n.a.* | *n.a.* | n.a. |
278+
| Xoroshiro256 | 2.37 | 2.24 | 2.25 | 2.55 | 1.93 | 1.87 | *0* | *0* | *0* |
279+
| Xoroshiro512 | 2.94 | 2.81 | 2.72 | 3.04 | 2.30 | 2.27 | *0* | *0* | *0* |
280+
| Xoroshiro1024 | 2.78 | 2.59 | 2.41 | 3.01 | 2.06 | 2.23 | *0* | *0* | *0* |
281281

282282
(1) The Well19937c generator provided with library PyRandLib implements the Well19937a algorithm augmented with an associated *tempering* algorithm - see [6] p.9.
283283
(2) The Well44497b generator provided with library PyRandLib implements the Well44497a algorithm augmented with an associated *tempering* algorithm - see [6] p.9.
284284

285285

286286
## Implementation
287287
Current implementation of **PyRandLib** uses Python 3.x with no Cython version.
288-
It has been initally tested with Python 3.8 but should run with all subversions of Python 3 since 3.6.
289288

290289
Note 1: **PyRandLib** version 1.1 and below should work with all versions of Python 3. In version 1.2, we have added underscores in numerical constants for the better readability of the code. This feature has been introduced in Python 3.6. If you want to use PyRandLib version 1.2 or above with Python 3.5 or below, removing these underscores should be sufficient to have the library running correctly. *N.B. You should no more use Python 3.10 or any of its previous versions since these are no more maintained (July 2025).*
291290

@@ -298,6 +297,9 @@ Note 4: since release **2.1** of **PyRandLib** unit tests are provided in subdir
298297
Note 5: a Cython version of **PyRandLib** will be delivered in a next major release (i.e. 3.0). Up today, no date is planned for this.
299298

300299

300+
## New in Release 2.2
301+
Version 2.2 of **PyRandLib** delivers a Python 3.14 version of the library. Note: no new feature introduced by Python 3.14 impacts code of PyRandLib. Code for version 3.14 of Python is then the same as for Python 3.13 with very minor optimizations on code for a very few generators. Meanwhile, the implementation of Python 3.14 shows computation speed-ups from 6 % up to 48 % (see above tables).
302+
301303
## New in Release 2.1
302304
Version 2.1 of **PyRandLib** is now fully unit-tested. The code coverage is 100%. Test code is available in subdirectory `unit-tests` of every Python version directory.
303305

0 commit comments

Comments
 (0)