Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

🐛 uniformIntDistribution not uniform for gaps outside of 32 bits integers #117

Merged
merged 47 commits into from
Nov 5, 2020

Conversation

dubzzz
Copy link
Owner

@dubzzz dubzzz commented Oct 26, 2020

Several different implementation of the feature have been tried:

Several benchmarks have been launched in an attempt to compute the cost of each of them compared to the current version of the code:

basic shared-arrays extract-large last-optims
<= 232 = -20%* = =
> 232 -65% -60% to -45% -60% to -45% -60% to -45%

* Here 20% means: #OperationsPerSecond(shared-arrays) / #OperationsPerSecond(master) = 0.8 in other words master does 1.25 times more operations per seconds than shared-arrays.

Test env details

node

v14

docker -v

Docker version 17.12.0-ce, build c97c6d6

uname -a

Linux ns326968.ip-37-187-109.eu 3.14.32-xxxx-grs-ipv6-64 #9 SMP Thu Oct 20 14:53:52 CEST 2016 x86_64 GNU/Linux

lscpu

Architecture: x86_64
CPU op-mode(s): 32-bit, 64-bit
Byte Order: Little Endian
CPU(s): 4
On-line CPU(s) list: 0-3
Vendor ID: GenuineIntel
CPU family: 6
Model: 54
Model name: Intel(R) Atom(TM) CPU N2800 @ 1.86GHz
Stepping: 1
CPU MHz: 798.000
BogoMIPS: 3733.23

Our best implementation offers the same speed as the historical one for ranges containing up to 232 values. But it suffer from huge performance issues on values outside of the safe range. Nonetheless it might be possible to make it better in the future if needed.

One of the most important thing to keep in mind is that the initial code was not handling ranges larger than 232 properly thus even with such performance cost it is still better to fix the bug than letting it opened.

Fixes #63

@coveralls
Copy link

coveralls commented Oct 26, 2020

Pull Request Test Coverage Report for Build 1120

  • 79 of 79 (100.0%) changed or added relevant lines in 3 files are covered.
  • No unchanged relevant lines lost coverage.
  • Overall coverage increased (+0.2%) to 99.461%

Totals Coverage Status
Change from base Build 1106: 0.2%
Covered Lines: 328
Relevant Lines: 329

💛 - Coveralls

@dubzzz
Copy link
Owner Author

dubzzz commented Oct 26, 2020

In order to check the impact of this change in terms of performances, we compared previous implementation with the current one. Our performance snippet is:

const {uniformIntDistribution,xoroshiro128plus} = require('pure-rand');
let g = xoroshiro128plus(42);
for (let idx = 0; idx !== NUM_TESTS; ++idx) {
  g = lib.uniformIntDistribution(settings.min, settings.max, g)[1];
}

Against:

2**16 - { min: 0, max: 0xffff })
2**32 - { min: 0, max: 0xffffffff }
2**32+1 - { min: 0, max: 0xffffffff + 1 }
max - { min: Number.MIN_SAFE_INTEGER, max: Number.MAX_SAFE_INTEGER }

Leading to:

2**16@Reference x 28,151 ops/sec ±0.88% (1088 runs sampled)
2**32@Reference x 18,623 ops/sec ±0.29% (1089 runs sampled)
2**32+1@Reference x 16,795 ops/sec ±0.35% (1080 runs sampled)
max@Reference x 20,602 ops/sec ±0.35% (1092 runs sampled)

2**16@Test x 13,977 ops/sec ±0.25% (1067 runs sampled)
2**32@Test x 12,147 ops/sec ±0.22% (1058 runs sampled)
2**32+1@Test x 3,501 ops/sec ±0.11% (1017 runs sampled)
max@Test x 4,208 ops/sec ±0.15% (1020 runs sampled)

2**16@Reference x 15,198 ops/sec ±0.28% (1073 runs sampled)
2**32@Reference x 12,621 ops/sec ±0.21% (1061 runs sampled)
2**32+1@Reference x 10,083 ops/sec ±0.22% (1049 runs sampled)
max@Reference x 11,418 ops/sec ±0.25% (1055 runs sampled)

2**16@Test x 14,124 ops/sec ±0.25% (1068 runs sampled)
2**32@Test x 11,984 ops/sec ±0.22% (1058 runs sampled)
2**32+1@Test x 3,592 ops/sec ±0.12% (1017 runs sampled)
max@Test x 4,351 ops/sec ±0.15% (1021 runs sampled)

Quick summary take on the two last runs:

  • 2**16 - Test / Ref = 0.93
  • 2**32 - Test / Ref = 0.95
  • 2**32+1 - Test / Ref = 0.36
  • max - Test / Ref = 0.38

@dubzzz
Copy link
Owner Author

dubzzz commented Oct 27, 2020

New measurements at 1b48921:

uniformIntDistribution[0;96]...............................@Reference x 39,660 ops/sec ±0.56% (1074 runs sampled)
uniformIntDistribution[0;0xffff]...........................@Reference x 37,922 ops/sec ±0.35% (1087 runs sampled)
uniformIntDistribution[0;0xffffffff].......................@Reference x 25,598 ops/sec ±0.28% (1088 runs sampled)
uniformIntDistribution[0;0xffffffff+1].....................@Reference x 19,794 ops/sec ±0.32% (1089 runs sampled)
uniformIntDistribution[MIN_SAFE_INTEGER;MAX_SAFE_INTEGER]..@Reference x 25,794 ops/sec ±0.32% (1088 runs sampled)

uniformIntDistribution[0;96]...............................@Test x 18,113 ops/sec ±0.31% (1087 runs sampled)
uniformIntDistribution[0;0xffff]...........................@Test x 18,210 ops/sec ±0.32% (1087 runs sampled)
uniformIntDistribution[0;0xffffffff].......................@Test x 14,940 ops/sec ±0.25% (1071 runs sampled)
uniformIntDistribution[0;0xffffffff+1].....................@Test x 4,376 ops/sec ±0.16% (1021 runs sampled)
uniformIntDistribution[MIN_SAFE_INTEGER;MAX_SAFE_INTEGER]..@Test x 6,951 ops/sec ±0.19% (1034 runs sampled)

uniformIntDistribution[0;96]...............................@Reference x 24,028 ops/sec ±0.33% (1090 runs sampled)
uniformIntDistribution[0;0xffff]...........................@Reference x 24,041 ops/sec ±0.33% (1090 runs sampled)
uniformIntDistribution[0;0xffffffff].......................@Reference x 18,332 ops/sec ±0.25% (1087 runs sampled)
uniformIntDistribution[0;0xffffffff+1].....................@Reference x 18,256 ops/sec ±0.29% (1087 runs sampled)
uniformIntDistribution[MIN_SAFE_INTEGER;MAX_SAFE_INTEGER]..@Reference x 21,814 ops/sec ±0.34% (1089 runs sampled)

uniformIntDistribution[0;96]...............................@Test x 18,392 ops/sec ±0.32% (1089 runs sampled)
uniformIntDistribution[0;0xffff]...........................@Test x 18,376 ops/sec ±0.31% (1087 runs sampled)
uniformIntDistribution[0;0xffffffff].......................@Test x 15,037 ops/sec ±0.26% (1073 runs sampled)
uniformIntDistribution[0;0xffffffff+1].....................@Test x 4,617 ops/sec ±0.14% (1022 runs sampled)
uniformIntDistribution[MIN_SAFE_INTEGER;MAX_SAFE_INTEGER]..@Test x 7,088 ops/sec ±0.20% (1034 runs sampled)

uniformIntDistribution[0;96]...............................@Reference x 24,052 ops/sec ±0.34% (1087 runs sampled)
uniformIntDistribution[0;0xffff]...........................@Reference x 24,133 ops/sec ±0.34% (1088 runs sampled)
uniformIntDistribution[0;0xffffffff].......................@Reference x 18,410 ops/sec ±0.28% (1087 runs sampled)
uniformIntDistribution[0;0xffffffff+1].....................@Reference x 18,290 ops/sec ±0.31% (1086 runs sampled)
uniformIntDistribution[MIN_SAFE_INTEGER;MAX_SAFE_INTEGER]..@Reference x 21,908 ops/sec ±0.36% (1085 runs sampled)

uniformIntDistribution[0;96]...............................@Test x 18,341 ops/sec ±0.33% (1086 runs sampled)
uniformIntDistribution[0;0xffff]...........................@Test x 18,245 ops/sec ±0.31% (1087 runs sampled)
uniformIntDistribution[0;0xffffffff].......................@Test x 15,004 ops/sec ±0.26% (1072 runs sampled)
uniformIntDistribution[0;0xffffffff+1].....................@Test x 4,603 ops/sec ±0.17% (1022 runs sampled)
uniformIntDistribution[MIN_SAFE_INTEGER;MAX_SAFE_INTEGER]..@Test x 7,108 ops/sec ±0.18% (1035 runs sampled)

uniformIntDistribution[0;96]...............................@Reference x 24,112 ops/sec ±0.31% (1088 runs sampled)
uniformIntDistribution[0;0xffff]...........................@Reference x 24,115 ops/sec ±0.34% (1088 runs sampled)
uniformIntDistribution[0;0xffffffff].......................@Reference x 18,361 ops/sec ±0.28% (1087 runs sampled)
uniformIntDistribution[0;0xffffffff+1].....................@Reference x 18,150 ops/sec ±0.29% (1085 runs sampled)
uniformIntDistribution[MIN_SAFE_INTEGER;MAX_SAFE_INTEGER]..@Reference x 21,466 ops/sec ±0.32% (1085 runs sampled)

uniformIntDistribution[0;96]...............................@Test x 18,300 ops/sec ±0.34% (1087 runs sampled)
uniformIntDistribution[0;0xffff]...........................@Test x 18,356 ops/sec ±0.33% (1087 runs sampled)
uniformIntDistribution[0;0xffffffff].......................@Test x 15,046 ops/sec ±0.24% (1072 runs sampled)
uniformIntDistribution[0;0xffffffff+1].....................@Test x 4,640 ops/sec ±0.16% (1022 runs sampled)
uniformIntDistribution[MIN_SAFE_INTEGER;MAX_SAFE_INTEGER]..@Test x 7,085 ops/sec ±0.21% (1034 runs sampled)

Quick summary take on the two last runs:

  • [0;96] - Test / Ref = 0.76
  • [0;0xffff] - Test / Ref = 0.76
  • [0;0xffffffff] - Test / Ref = 0.82
  • [0;0xffffffff+1] - Test / Ref = 0.26
  • [MIN_SAFE_INTEGER;MAX_SAFE_INTEGER] - Test / Ref = 0.33

@dubzzz
Copy link
Owner Author

dubzzz commented Oct 30, 2020

We considered multiple commits during the comparisons:

v3.1.0 (062041a)
-> diff (includes c55f987) -> master (538c008)
-> diff (includes e3e7b80) -> basic (c017f2b)
-> diff (includes 1892e29) -> shared-arrays (1892e29)
-> diff (includes 572ed25) -> extract-large (40b1997)
-> diff (includes many) -> last-optims (154f58b)


Command:

yarn bench \
  -c 062041a39eff50db57ad3dd3a3742a4f11e53cb9:v3.1.0 \
  -c 538c008283a10cfca78b20ae82765028a8a751f2:master \
  -c c017f2be702dda219dc98df2ca2cc85f4795e469:basic \
  -c 1892e2944e907868fa4b62f500acd32f2ad8f67e:shared-arrays \
  -c 40b1997674f517d11aa03a042c94dfec505d68eb:extract-large \
  -c 154f58b0aff8a53bef5d3716a140131b70c36d20:last-optims
Run in Travis against node 12.19.0
INFO  Benchmark phase...

uniformIntDistribution[0;96]...............................@v3.1.0(062041a3) x 23,197 ops/sec ±0.19% (591 runs sampled)
uniformIntDistribution[0;96]...............................@master(538c0082) x 23,069 ops/sec ±0.16% (593 runs sampled)
uniformIntDistribution[0;96]...............................@basic(c017f2be) x 19,544 ops/sec ±0.21% (592 runs sampled)
uniformIntDistribution[0;96]...............................@shared-arrays(1892e294) x 19,496 ops/sec ±0.21% (592 runs sampled)
uniformIntDistribution[0;0xffff]...........................@v3.1.0(062041a3) x 23,497 ops/sec ±0.24% (592 runs sampled)
uniformIntDistribution[0;0xffff]...........................@master(538c0082) x 23,301 ops/sec ±0.17% (593 runs sampled)
uniformIntDistribution[0;0xffff]...........................@basic(c017f2be) x 19,684 ops/sec ±0.21% (591 runs sampled)
uniformIntDistribution[0;0xffff]...........................@shared-arrays(1892e294) x 19,476 ops/sec ±0.30% (592 runs sampled)
uniformIntDistribution[0;0xffffffff].......................@v3.1.0(062041a3) x 19,963 ops/sec ±0.14% (593 runs sampled)
uniformIntDistribution[0;0xffffffff].......................@master(538c0082) x 19,589 ops/sec ±0.17% (592 runs sampled)
uniformIntDistribution[0;0xffffffff].......................@basic(c017f2be) x 17,189 ops/sec ±0.37% (587 runs sampled)
uniformIntDistribution[0;0xffffffff].......................@shared-arrays(1892e294) x 17,260 ops/sec ±0.18% (593 runs sampled)
uniformIntDistribution[0;0xffffffff+1].....................@v3.1.0(062041a3) x 2,401 ops/sec ±0.26% (523 runs sampled)
uniformIntDistribution[0;0xffffffff+1].....................@master(538c0082) x 2,384 ops/sec ±0.22% (523 runs sampled)
uniformIntDistribution[0;0xffffffff+1].....................@basic(c017f2be) x 3,847 ops/sec ±0.26% (538 runs sampled)
uniformIntDistribution[0;0xffffffff+1].....................@shared-arrays(1892e294) x 4,082 ops/sec ±0.21% (539 runs sampled)
uniformIntDistribution[MIN_SAFE_INTEGER;MAX_SAFE_INTEGER]..@v3.1.0(062041a3) x 36,578 ops/sec ±0.25% (589 runs sampled)
uniformIntDistribution[MIN_SAFE_INTEGER;MAX_SAFE_INTEGER]..@master(538c0082) x 2,392 ops/sec ±0.32% (523 runs sampled)
uniformIntDistribution[MIN_SAFE_INTEGER;MAX_SAFE_INTEGER]..@basic(c017f2be) x 5,749 ops/sec ±0.30% (555 runs sampled)
uniformIntDistribution[MIN_SAFE_INTEGER;MAX_SAFE_INTEGER]..@shared-arrays(1892e294) x 7,154 ops/sec ±0.23% (569 runs sampled)

INFO  Reports

Stats for uniformIntDistribution[0;96]

┌─────────────────────────┬──────────────────┬──────────────────┬─────────────────┬─────────────────────────┐
│ Name                    │ v3.1.0(062041a3) │ master(538c0082) │ basic(c017f2be) │ shared-arrays(1892e294) │
├─────────────────────────┼──────────────────┼──────────────────┼─────────────────┼─────────────────────────┤
│ v3.1.0(062041a3)        │                - │          +0.56 % │        +18.69 % │                +18.99 % │
│ master(538c0082)        │          -0.55 % │                - │        +18.04 % │                +18.33 % │
│ basic(c017f2be)         │         -15.75 % │         -15.28 % │               - │                 +0.25 % │
│ shared-arrays(1892e294) │         -15.96 % │         -15.49 % │         -0.25 % │                       - │
└─────────────────────────┴──────────────────┴──────────────────┴─────────────────┴─────────────────────────┘

Stats for uniformIntDistribution[0;0xffff]

┌─────────────────────────┬──────────────────┬──────────────────┬─────────────────┬─────────────────────────┐
│ Name                    │ v3.1.0(062041a3) │ master(538c0082) │ basic(c017f2be) │ shared-arrays(1892e294) │
├─────────────────────────┼──────────────────┼──────────────────┼─────────────────┼─────────────────────────┤
│ v3.1.0(062041a3)        │                - │          +0.84 % │        +19.37 % │                +20.65 % │
│ master(538c0082)        │          -0.83 % │                - │        +18.38 % │                +19.64 % │
│ basic(c017f2be)         │         -16.23 % │         -15.52 % │               - │                 +1.07 % │
│ shared-arrays(1892e294) │         -17.11 % │         -16.42 % │         -1.06 % │                       - │
└─────────────────────────┴──────────────────┴──────────────────┴─────────────────┴─────────────────────────┘

Stats for uniformIntDistribution[0;0xffffffff]

┌─────────────────────────┬──────────────────┬──────────────────┬─────────────────┬─────────────────────────┐
│ Name                    │ v3.1.0(062041a3) │ master(538c0082) │ basic(c017f2be) │ shared-arrays(1892e294) │
├─────────────────────────┼──────────────────┼──────────────────┼─────────────────┼─────────────────────────┤
│ v3.1.0(062041a3)        │                - │          +1.91 % │        +16.14 % │                +15.66 % │
│ master(538c0082)        │          -1.87 % │                - │        +13.96 % │                +13.50 % │
│ basic(c017f2be)         │         -13.90 % │         -12.25 % │               - │                 -0.41 % │
│ shared-arrays(1892e294) │         -13.54 % │         -11.89 % │         +0.41 % │                       - │
└─────────────────────────┴──────────────────┴──────────────────┴─────────────────┴─────────────────────────┘

Stats for uniformIntDistribution[0;0xffffffff+1]

┌─────────────────────────┬──────────────────┬──────────────────┬─────────────────┬─────────────────────────┐
│ Name                    │ v3.1.0(062041a3) │ master(538c0082) │ basic(c017f2be) │ shared-arrays(1892e294) │
├─────────────────────────┼──────────────────┼──────────────────┼─────────────────┼─────────────────────────┤
│ v3.1.0(062041a3)        │                - │          +0.71 % │        -37.60 % │                -41.19 % │
│ master(538c0082)        │          -0.71 % │                - │        -38.04 % │                -41.60 % │
│ basic(c017f2be)         │         +60.26 % │         +61.40 % │               - │                 -5.75 % │
│ shared-arrays(1892e294) │         +70.03 % │         +71.24 % │         +6.10 % │                       - │
└─────────────────────────┴──────────────────┴──────────────────┴─────────────────┴─────────────────────────┘

Stats for uniformIntDistribution[MIN_SAFE_INTEGER;MAX_SAFE_INTEGER]

┌─────────────────────────┬──────────────────┬──────────────────┬─────────────────┬─────────────────────────┐
│ Name                    │ v3.1.0(062041a3) │ master(538c0082) │ basic(c017f2be) │ shared-arrays(1892e294) │
├─────────────────────────┼──────────────────┼──────────────────┼─────────────────┼─────────────────────────┤
│ v3.1.0(062041a3)        │                - │       +1429.35 % │       +536.20 % │               +411.27 % │
│ master(538c0082)        │         -93.46 % │                - │        -58.40 % │                -66.57 % │
│ basic(c017f2be)         │         -84.28 % │        +140.39 % │               - │                -19.64 % │
│ shared-arrays(1892e294) │         -80.44 % │        +199.12 % │        +24.43 % │                       - │
└─────────────────────────┴──────────────────┴──────────────────┴─────────────────┴─────────────────────────┘
Run in Travis against node 13.14.0
INFO  Benchmark phase...

uniformIntDistribution[0;96]...............................@v3.1.0(062041a3) x 24,174 ops/sec ±0.15% (592 runs sampled)
uniformIntDistribution[0;96]...............................@master(538c0082) x 23,821 ops/sec ±0.16% (590 runs sampled)
uniformIntDistribution[0;96]...............................@basic(c017f2be) x 19,403 ops/sec ±0.18% (590 runs sampled)
uniformIntDistribution[0;96]...............................@shared-arrays(1892e294) x 19,515 ops/sec ±0.18% (591 runs sampled)
uniformIntDistribution[0;0xffff]...........................@v3.1.0(062041a3) x 24,397 ops/sec ±0.15% (592 runs sampled)
uniformIntDistribution[0;0xffff]...........................@master(538c0082) x 23,742 ops/sec ±0.15% (592 runs sampled)
uniformIntDistribution[0;0xffff]...........................@basic(c017f2be) x 19,418 ops/sec ±0.17% (591 runs sampled)
uniformIntDistribution[0;0xffff]...........................@shared-arrays(1892e294) x 19,585 ops/sec ±0.16% (592 runs sampled)
uniformIntDistribution[0;0xffffffff].......................@v3.1.0(062041a3) x 20,397 ops/sec ±0.16% (591 runs sampled)
uniformIntDistribution[0;0xffffffff].......................@master(538c0082) x 19,913 ops/sec ±0.18% (592 runs sampled)
uniformIntDistribution[0;0xffffffff].......................@basic(c017f2be) x 17,250 ops/sec ±0.15% (590 runs sampled)
uniformIntDistribution[0;0xffffffff].......................@shared-arrays(1892e294) x 17,038 ops/sec ±0.19% (590 runs sampled)
uniformIntDistribution[0;0xffffffff+1].....................@v3.1.0(062041a3) x 2,362 ops/sec ±0.23% (523 runs sampled)
uniformIntDistribution[0;0xffffffff+1].....................@master(538c0082) x 2,356 ops/sec ±0.22% (523 runs sampled)
uniformIntDistribution[0;0xffffffff+1].....................@basic(c017f2be) x 3,758 ops/sec ±0.15% (537 runs sampled)
uniformIntDistribution[0;0xffffffff+1].....................@shared-arrays(1892e294) x 4,232 ops/sec ±0.10% (541 runs sampled)
uniformIntDistribution[MIN_SAFE_INTEGER;MAX_SAFE_INTEGER]..@v3.1.0(062041a3) x 2,391 ops/sec ±0.26% (523 runs sampled)
uniformIntDistribution[MIN_SAFE_INTEGER;MAX_SAFE_INTEGER]..@master(538c0082) x 2,375 ops/sec ±0.24% (523 runs sampled)
uniformIntDistribution[MIN_SAFE_INTEGER;MAX_SAFE_INTEGER]..@basic(c017f2be) x 5,510 ops/sec ±0.19% (554 runs sampled)
uniformIntDistribution[MIN_SAFE_INTEGER;MAX_SAFE_INTEGER]..@shared-arrays(1892e294) x 7,429 ops/sec ±0.15% (570 runs sampled)

INFO  Reports

Stats for uniformIntDistribution[0;96]

┌─────────────────────────┬──────────────────┬──────────────────┬─────────────────┬─────────────────────────┐
│ Name                    │ v3.1.0(062041a3) │ master(538c0082) │ basic(c017f2be) │ shared-arrays(1892e294) │
├─────────────────────────┼──────────────────┼──────────────────┼─────────────────┼─────────────────────────┤
│ v3.1.0(062041a3)        │                - │          +1.48 % │        +24.59 % │                +23.87 % │
│ master(538c0082)        │          -1.46 % │                - │        +22.77 % │                +22.06 % │
│ basic(c017f2be)         │         -19.74 % │         -18.55 % │               - │                 -0.57 % │
│ shared-arrays(1892e294) │         -19.27 % │         -18.07 % │         +0.58 % │                       - │
└─────────────────────────┴──────────────────┴──────────────────┴─────────────────┴─────────────────────────┘

Stats for uniformIntDistribution[0;0xffff]

┌─────────────────────────┬──────────────────┬──────────────────┬─────────────────┬─────────────────────────┐
│ Name                    │ v3.1.0(062041a3) │ master(538c0082) │ basic(c017f2be) │ shared-arrays(1892e294) │
├─────────────────────────┼──────────────────┼──────────────────┼─────────────────┼─────────────────────────┤
│ v3.1.0(062041a3)        │                - │          +2.76 % │        +25.64 % │                +24.57 % │
│ master(538c0082)        │          -2.69 % │                - │        +22.26 % │                +21.22 % │
│ basic(c017f2be)         │         -20.41 % │         -18.21 % │               - │                 -0.85 % │
│ shared-arrays(1892e294) │         -19.73 % │         -17.51 % │         +0.86 % │                       - │
└─────────────────────────┴──────────────────┴──────────────────┴─────────────────┴─────────────────────────┘

Stats for uniformIntDistribution[0;0xffffffff]

┌─────────────────────────┬──────────────────┬──────────────────┬─────────────────┬─────────────────────────┐
│ Name                    │ v3.1.0(062041a3) │ master(538c0082) │ basic(c017f2be) │ shared-arrays(1892e294) │
├─────────────────────────┼──────────────────┼──────────────────┼─────────────────┼─────────────────────────┤
│ v3.1.0(062041a3)        │                - │          +2.43 % │        +18.24 % │                +19.71 % │
│ master(538c0082)        │          -2.37 % │                - │        +15.44 % │                +16.88 % │
│ basic(c017f2be)         │         -15.43 % │         -13.37 % │               - │                 +1.25 % │
│ shared-arrays(1892e294) │         -16.47 % │         -14.44 % │         -1.23 % │                       - │
└─────────────────────────┴──────────────────┴──────────────────┴─────────────────┴─────────────────────────┘

Stats for uniformIntDistribution[0;0xffffffff+1]

┌─────────────────────────┬──────────────────┬──────────────────┬─────────────────┬─────────────────────────┐
│ Name                    │ v3.1.0(062041a3) │ master(538c0082) │ basic(c017f2be) │ shared-arrays(1892e294) │
├─────────────────────────┼──────────────────┼──────────────────┼─────────────────┼─────────────────────────┤
│ v3.1.0(062041a3)        │                - │          +0.26 % │        -37.15 % │                -44.18 % │
│ master(538c0082)        │          -0.26 % │                - │        -37.31 % │                -44.33 % │
│ basic(c017f2be)         │         +59.10 % │         +59.52 % │               - │                -11.20 % │
│ shared-arrays(1892e294) │         +79.16 % │         +79.63 % │        +12.61 % │                       - │
└─────────────────────────┴──────────────────┴──────────────────┴─────────────────┴─────────────────────────┘

Stats for uniformIntDistribution[MIN_SAFE_INTEGER;MAX_SAFE_INTEGER]

┌─────────────────────────┬──────────────────┬──────────────────┬─────────────────┬─────────────────────────┐
│ Name                    │ v3.1.0(062041a3) │ master(538c0082) │ basic(c017f2be) │ shared-arrays(1892e294) │
├─────────────────────────┼──────────────────┼──────────────────┼─────────────────┼─────────────────────────┤
│ v3.1.0(062041a3)        │                - │          +0.66 % │        -56.61 % │                -67.82 % │
│ master(538c0082)        │          -0.66 % │                - │        -56.89 % │                -68.03 % │
│ basic(c017f2be)         │        +130.46 % │        +131.98 % │               - │                -25.84 % │
│ shared-arrays(1892e294) │        +210.75 % │        +212.80 % │        +34.84 % │                       - │
└─────────────────────────┴──────────────────┴──────────────────┴─────────────────┴─────────────────────────┘
Run in Travis against node 14.15.0
INFO  Benchmark phase...

uniformIntDistribution[0;96]...............................@v3.1.0(062041a3) x 26,227 ops/sec ±0.15% (593 runs sampled)
uniformIntDistribution[0;96]...............................@master(538c0082) x 25,260 ops/sec ±0.14% (592 runs sampled)
uniformIntDistribution[0;96]...............................@basic(c017f2be) x 20,968 ops/sec ±0.16% (592 runs sampled)
uniformIntDistribution[0;96]...............................@shared-arrays(1892e294) x 20,530 ops/sec ±0.19% (592 runs sampled)
uniformIntDistribution[0;0xffff]...........................@v3.1.0(062041a3) x 26,202 ops/sec ±0.16% (591 runs sampled)
uniformIntDistribution[0;0xffff]...........................@master(538c0082) x 25,379 ops/sec ±0.16% (592 runs sampled)
uniformIntDistribution[0;0xffff]...........................@basic(c017f2be) x 21,243 ops/sec ±0.16% (590 runs sampled)
uniformIntDistribution[0;0xffff]...........................@shared-arrays(1892e294) x 21,002 ops/sec ±0.18% (593 runs sampled)
uniformIntDistribution[0;0xffffffff].......................@v3.1.0(062041a3) x 22,280 ops/sec ±0.14% (592 runs sampled)
uniformIntDistribution[0;0xffffffff].......................@master(538c0082) x 21,408 ops/sec ±0.18% (592 runs sampled)
uniformIntDistribution[0;0xffffffff].......................@basic(c017f2be) x 18,363 ops/sec ±0.16% (593 runs sampled)
uniformIntDistribution[0;0xffffffff].......................@shared-arrays(1892e294) x 18,384 ops/sec ±0.16% (593 runs sampled)
uniformIntDistribution[0;0xffffffff+1].....................@v3.1.0(062041a3) x 17,596 ops/sec ±0.17% (592 runs sampled)
uniformIntDistribution[0;0xffffffff+1].....................@master(538c0082) x 21,331 ops/sec ±0.21% (592 runs sampled)
uniformIntDistribution[0;0xffffffff+1].....................@basic(c017f2be) x 4,091 ops/sec ±0.10% (539 runs sampled)
uniformIntDistribution[0;0xffffffff+1].....................@shared-arrays(1892e294) x 4,446 ops/sec ±0.12% (543 runs sampled)
uniformIntDistribution[MIN_SAFE_INTEGER;MAX_SAFE_INTEGER]..@v3.1.0(062041a3) x 20,253 ops/sec ±0.19% (591 runs sampled)
uniformIntDistribution[MIN_SAFE_INTEGER;MAX_SAFE_INTEGER]..@master(538c0082) x 24,390 ops/sec ±0.15% (592 runs sampled)
uniformIntDistribution[MIN_SAFE_INTEGER;MAX_SAFE_INTEGER]..@basic(c017f2be) x 6,170 ops/sec ±0.15% (560 runs sampled)
uniformIntDistribution[MIN_SAFE_INTEGER;MAX_SAFE_INTEGER]..@shared-arrays(1892e294) x 7,954 ops/sec ±0.14% (576 runs sampled)

INFO  Reports

Stats for uniformIntDistribution[0;96]

┌─────────────────────────┬──────────────────┬──────────────────┬─────────────────┬─────────────────────────┐
│ Name                    │ v3.1.0(062041a3) │ master(538c0082) │ basic(c017f2be) │ shared-arrays(1892e294) │
├─────────────────────────┼──────────────────┼──────────────────┼─────────────────┼─────────────────────────┤
│ v3.1.0(062041a3)        │                - │          +3.83 % │        +25.08 % │                +27.75 % │
│ master(538c0082)        │          -3.69 % │                - │        +20.47 % │                +23.04 % │
│ basic(c017f2be)         │         -20.05 % │         -16.99 % │               - │                 +2.13 % │
│ shared-arrays(1892e294) │         -21.72 % │         -18.73 % │         -2.09 % │                       - │
└─────────────────────────┴──────────────────┴──────────────────┴─────────────────┴─────────────────────────┘

Stats for uniformIntDistribution[0;0xffff]

┌─────────────────────────┬──────────────────┬──────────────────┬─────────────────┬─────────────────────────┐
│ Name                    │ v3.1.0(062041a3) │ master(538c0082) │ basic(c017f2be) │ shared-arrays(1892e294) │
├─────────────────────────┼──────────────────┼──────────────────┼─────────────────┼─────────────────────────┤
│ v3.1.0(062041a3)        │                - │          +3.24 % │        +23.34 % │                +24.76 % │
│ master(538c0082)        │          -3.14 % │                - │        +19.47 % │                +20.84 % │
│ basic(c017f2be)         │         -18.92 % │         -16.30 % │               - │                 +1.15 % │
│ shared-arrays(1892e294) │         -19.84 % │         -17.25 % │         -1.14 % │                       - │
└─────────────────────────┴──────────────────┴──────────────────┴─────────────────┴─────────────────────────┘

Stats for uniformIntDistribution[0;0xffffffff]

┌─────────────────────────┬──────────────────┬──────────────────┬─────────────────┬─────────────────────────┐
│ Name                    │ v3.1.0(062041a3) │ master(538c0082) │ basic(c017f2be) │ shared-arrays(1892e294) │
├─────────────────────────┼──────────────────┼──────────────────┼─────────────────┼─────────────────────────┤
│ v3.1.0(062041a3)        │                - │          +4.07 % │        +21.33 % │                +21.19 % │
│ master(538c0082)        │          -3.91 % │                - │        +16.58 % │                +16.45 % │
│ basic(c017f2be)         │         -17.58 % │         -14.22 % │               - │                 -0.11 % │
│ shared-arrays(1892e294) │         -17.49 % │         -14.13 % │         +0.11 % │                       - │
└─────────────────────────┴──────────────────┴──────────────────┴─────────────────┴─────────────────────────┘

Stats for uniformIntDistribution[0;0xffffffff+1]

┌─────────────────────────┬──────────────────┬──────────────────┬─────────────────┬─────────────────────────┐
│ Name                    │ v3.1.0(062041a3) │ master(538c0082) │ basic(c017f2be) │ shared-arrays(1892e294) │
├─────────────────────────┼──────────────────┼──────────────────┼─────────────────┼─────────────────────────┤
│ v3.1.0(062041a3)        │                - │         -17.51 % │       +330.12 % │               +295.78 % │
│ master(538c0082)        │         +21.23 % │                - │       +421.43 % │               +379.81 % │
│ basic(c017f2be)         │         -76.75 % │         -80.82 % │               - │                 -7.98 % │
│ shared-arrays(1892e294) │         -74.73 % │         -79.16 % │         +8.67 % │                       - │
└─────────────────────────┴──────────────────┴──────────────────┴─────────────────┴─────────────────────────┘

Stats for uniformIntDistribution[MIN_SAFE_INTEGER;MAX_SAFE_INTEGER]

┌─────────────────────────┬──────────────────┬──────────────────┬─────────────────┬─────────────────────────┐
│ Name                    │ v3.1.0(062041a3) │ master(538c0082) │ basic(c017f2be) │ shared-arrays(1892e294) │
├─────────────────────────┼──────────────────┼──────────────────┼─────────────────┼─────────────────────────┤
│ v3.1.0(062041a3)        │                - │         -16.96 % │       +228.27 % │               +154.62 % │
│ master(538c0082)        │         +20.42 % │                - │       +295.31 % │               +206.62 % │
│ basic(c017f2be)         │         -69.54 % │         -74.70 % │               - │                -22.43 % │
│ shared-arrays(1892e294) │         -60.73 % │         -67.39 % │        +28.92 % │                       - │
└─────────────────────────┴──────────────────┴──────────────────┴─────────────────┴─────────────────────────┘
Run in Travis against node 15.0.1
INFO  Benchmark phase...

uniformIntDistribution[0;96]...............................@v3.1.0(062041a3) x 26,377 ops/sec ±0.24% (592 runs sampled)
uniformIntDistribution[0;96]...............................@master(538c0082) x 24,806 ops/sec ±0.38% (592 runs sampled)
uniformIntDistribution[0;96]...............................@basic(c017f2be) x 20,522 ops/sec ±0.30% (590 runs sampled)
uniformIntDistribution[0;96]...............................@shared-arrays(1892e294) x 20,426 ops/sec ±0.28% (590 runs sampled)
uniformIntDistribution[0;0xffff]...........................@v3.1.0(062041a3) x 26,297 ops/sec ±0.38% (589 runs sampled)
uniformIntDistribution[0;0xffff]...........................@master(538c0082) x 25,293 ops/sec ±0.31% (591 runs sampled)
uniformIntDistribution[0;0xffff]...........................@basic(c017f2be) x 20,842 ops/sec ±0.25% (591 runs sampled)
uniformIntDistribution[0;0xffff]...........................@shared-arrays(1892e294) x 20,369 ops/sec ±0.31% (588 runs sampled)
uniformIntDistribution[0;0xffffffff].......................@v3.1.0(062041a3) x 21,947 ops/sec ±0.31% (590 runs sampled)
uniformIntDistribution[0;0xffffffff].......................@master(538c0082) x 20,658 ops/sec ±0.19% (592 runs sampled)
uniformIntDistribution[0;0xffffffff].......................@basic(c017f2be) x 17,791 ops/sec ±0.21% (588 runs sampled)
uniformIntDistribution[0;0xffffffff].......................@shared-arrays(1892e294) x 17,774 ops/sec ±0.16% (590 runs sampled)
uniformIntDistribution[0;0xffffffff+1].....................@v3.1.0(062041a3) x 21,238 ops/sec ±0.21% (590 runs sampled)
uniformIntDistribution[0;0xffffffff+1].....................@master(538c0082) x 20,446 ops/sec ±0.26% (589 runs sampled)
uniformIntDistribution[0;0xffffffff+1].....................@basic(c017f2be) x 4,051 ops/sec ±0.21% (539 runs sampled)
uniformIntDistribution[0;0xffffffff+1].....................@shared-arrays(1892e294) x 4,346 ops/sec ±0.18% (542 runs sampled)
uniformIntDistribution[MIN_SAFE_INTEGER;MAX_SAFE_INTEGER]..@v3.1.0(062041a3) x 24,566 ops/sec ±0.23% (587 runs sampled)
uniformIntDistribution[MIN_SAFE_INTEGER;MAX_SAFE_INTEGER]..@master(538c0082) x 23,311 ops/sec ±0.26% (590 runs sampled)
uniformIntDistribution[MIN_SAFE_INTEGER;MAX_SAFE_INTEGER]..@basic(c017f2be) x 5,957 ops/sec ±0.25% (557 runs sampled)
uniformIntDistribution[MIN_SAFE_INTEGER;MAX_SAFE_INTEGER]..@shared-arrays(1892e294) x 7,603 ops/sec ±0.27% (573 runs sampled)

INFO  Reports

Stats for uniformIntDistribution[0;96]

┌─────────────────────────┬──────────────────┬──────────────────┬─────────────────┬─────────────────────────┐
│ Name                    │ v3.1.0(062041a3) │ master(538c0082) │ basic(c017f2be) │ shared-arrays(1892e294) │
├─────────────────────────┼──────────────────┼──────────────────┼─────────────────┼─────────────────────────┤
│ v3.1.0(062041a3)        │                - │          +6.33 % │        +28.53 % │                +29.13 % │
│ master(538c0082)        │          -5.96 % │                - │        +20.87 % │                +21.44 % │
│ basic(c017f2be)         │         -22.20 % │         -17.27 % │               - │                 +0.47 % │
│ shared-arrays(1892e294) │         -22.56 % │         -17.65 % │         -0.46 % │                       - │
└─────────────────────────┴──────────────────┴──────────────────┴─────────────────┴─────────────────────────┘

Stats for uniformIntDistribution[0;0xffff]

┌─────────────────────────┬──────────────────┬──────────────────┬─────────────────┬─────────────────────────┐
│ Name                    │ v3.1.0(062041a3) │ master(538c0082) │ basic(c017f2be) │ shared-arrays(1892e294) │
├─────────────────────────┼──────────────────┼──────────────────┼─────────────────┼─────────────────────────┤
│ v3.1.0(062041a3)        │                - │          +3.97 % │        +26.17 % │                +29.10 % │
│ master(538c0082)        │          -3.82 % │                - │        +21.36 % │                +24.17 % │
│ basic(c017f2be)         │         -20.74 % │         -17.60 % │               - │                 +2.32 % │
│ shared-arrays(1892e294) │         -22.54 % │         -19.47 % │         -2.27 % │                       - │
└─────────────────────────┴──────────────────┴──────────────────┴─────────────────┴─────────────────────────┘

Stats for uniformIntDistribution[0;0xffffffff]

┌─────────────────────────┬──────────────────┬──────────────────┬─────────────────┬─────────────────────────┐
│ Name                    │ v3.1.0(062041a3) │ master(538c0082) │ basic(c017f2be) │ shared-arrays(1892e294) │
├─────────────────────────┼──────────────────┼──────────────────┼─────────────────┼─────────────────────────┤
│ v3.1.0(062041a3)        │                - │          +6.24 % │        +23.36 % │                +23.48 % │
│ master(538c0082)        │          -5.87 % │                - │        +16.11 % │                +16.23 % │
│ basic(c017f2be)         │         -18.94 % │         -13.88 % │               - │                 +0.10 % │
│ shared-arrays(1892e294) │         -19.02 % │         -13.96 % │         -0.10 % │                       - │
└─────────────────────────┴──────────────────┴──────────────────┴─────────────────┴─────────────────────────┘

Stats for uniformIntDistribution[0;0xffffffff+1]

┌─────────────────────────┬──────────────────┬──────────────────┬─────────────────┬─────────────────────────┐
│ Name                    │ v3.1.0(062041a3) │ master(538c0082) │ basic(c017f2be) │ shared-arrays(1892e294) │
├─────────────────────────┼──────────────────┼──────────────────┼─────────────────┼─────────────────────────┤
│ v3.1.0(062041a3)        │                - │          +3.88 % │       +424.23 % │               +388.71 % │
│ master(538c0082)        │          -3.73 % │                - │       +404.68 % │               +370.48 % │
│ basic(c017f2be)         │         -80.92 % │         -80.19 % │               - │                 -6.78 % │
│ shared-arrays(1892e294) │         -79.54 % │         -78.75 % │         +7.27 % │                       - │
└─────────────────────────┴──────────────────┴──────────────────┴─────────────────┴─────────────────────────┘

Stats for uniformIntDistribution[MIN_SAFE_INTEGER;MAX_SAFE_INTEGER]

┌─────────────────────────┬──────────────────┬──────────────────┬─────────────────┬─────────────────────────┐
│ Name                    │ v3.1.0(062041a3) │ master(538c0082) │ basic(c017f2be) │ shared-arrays(1892e294) │
├─────────────────────────┼──────────────────┼──────────────────┼─────────────────┼─────────────────────────┤
│ v3.1.0(062041a3)        │                - │          +5.38 % │       +312.39 % │               +223.12 % │
│ master(538c0082)        │          -5.11 % │                - │       +291.33 % │               +206.61 % │
│ basic(c017f2be)         │         -75.75 % │         -74.45 % │               - │                -21.65 % │
│ shared-arrays(1892e294) │         -69.05 % │         -67.39 % │        +27.63 % │                       - │
└─────────────────────────┴──────────────────┴──────────────────┴─────────────────┴─────────────────────────┘

As measurements obtained while comparing v3.1.0 with master does not seem to properly represent the reality (the code is more or less the same), another flag will be added to the benchmark runner in order to be able to ask to run benchmarks multiple times during the same benchmark session.

Run on personal server against node 14
INFO  Benchmark phase...

uniformIntDistribution[0;96]...............................@v3.1.0(062041a3) x 2,122 ops/sec ±0.15% (519 runs sampled)
uniformIntDistribution[0;96]...............................@master(538c0082) x 2,033 ops/sec ±0.18% (518 runs sampled)
uniformIntDistribution[0;96]...............................@basic(c017f2be) x 1,784 ops/sec ±0.11% (516 runs sampled)
uniformIntDistribution[0;96]...............................@shared-arrays(1892e294) x 2,047 ops/sec ±0.17% (518 runs sampled)
uniformIntDistribution[0;96]...............................@v3.1.0(062041a3)(2) x 2,114 ops/sec ±0.13% (519 runs sampled)
uniformIntDistribution[0;96]...............................@master(538c0082)(2) x 2,042 ops/sec ±0.14% (518 runs sampled)
uniformIntDistribution[0;96]...............................@basic(c017f2be)(2) x 1,781 ops/sec ±0.27% (516 runs sampled)
uniformIntDistribution[0;96]...............................@shared-arrays(1892e294)(2) x 2,062 ops/sec ±0.10% (518 runs sampled)
uniformIntDistribution[0;96]...............................@v3.1.0(062041a3)(3) x 2,118 ops/sec ±0.15% (519 runs sampled)
uniformIntDistribution[0;96]...............................@master(538c0082)(3) x 2,009 ops/sec ±0.28% (518 runs sampled)
uniformIntDistribution[0;96]...............................@basic(c017f2be)(3) x 1,783 ops/sec ±0.10% (516 runs sampled)
uniformIntDistribution[0;96]...............................@shared-arrays(1892e294)(3) x 2,051 ops/sec ±0.20% (518 runs sampled)
uniformIntDistribution[0;0xffff]...........................@v3.1.0(062041a3) x 2,123 ops/sec ±0.12% (519 runs sampled)
uniformIntDistribution[0;0xffff]...........................@master(538c0082) x 2,057 ops/sec ±0.13% (518 runs sampled)
uniformIntDistribution[0;0xffff]...........................@basic(c017f2be) x 1,772 ops/sec ±0.15% (516 runs sampled)
uniformIntDistribution[0;0xffff]...........................@shared-arrays(1892e294) x 2,063 ops/sec ±0.12% (518 runs sampled)
uniformIntDistribution[0;0xffff]...........................@v3.1.0(062041a3)(2) x 2,113 ops/sec ±0.13% (519 runs sampled)
uniformIntDistribution[0;0xffff]...........................@master(538c0082)(2) x 1,991 ops/sec ±0.17% (518 runs sampled)
uniformIntDistribution[0;0xffff]...........................@basic(c017f2be)(2) x 1,783 ops/sec ±0.13% (516 runs sampled)
uniformIntDistribution[0;0xffff]...........................@shared-arrays(1892e294)(2) x 2,063 ops/sec ±0.11% (518 runs sampled)
uniformIntDistribution[0;0xffff]...........................@v3.1.0(062041a3)(3) x 2,119 ops/sec ±0.17% (519 runs sampled)
uniformIntDistribution[0;0xffff]...........................@master(538c0082)(3) x 1,977 ops/sec ±0.14% (518 runs sampled)
uniformIntDistribution[0;0xffff]...........................@basic(c017f2be)(3) x 1,765 ops/sec ±0.18% (516 runs sampled)
uniformIntDistribution[0;0xffff]...........................@shared-arrays(1892e294)(3) x 2,063 ops/sec ±0.15% (518 runs sampled)
uniformIntDistribution[0;0xffffffff].......................@v3.1.0(062041a3) x 2,037 ops/sec ±0.19% (518 runs sampled)
uniformIntDistribution[0;0xffffffff].......................@master(538c0082) x 1,903 ops/sec ±0.11% (517 runs sampled)
uniformIntDistribution[0;0xffffffff].......................@basic(c017f2be) x 1,707 ops/sec ±0.13% (515 runs sampled)
uniformIntDistribution[0;0xffffffff].......................@shared-arrays(1892e294) x 1,935 ops/sec ±0.22% (518 runs sampled)
uniformIntDistribution[0;0xffffffff].......................@v3.1.0(062041a3)(2) x 2,025 ops/sec ±0.16% (518 runs sampled)
uniformIntDistribution[0;0xffffffff].......................@master(538c0082)(2) x 1,902 ops/sec ±0.13% (517 runs sampled)
uniformIntDistribution[0;0xffffffff].......................@basic(c017f2be)(2) x 1,708 ops/sec ±0.12% (515 runs sampled)
uniformIntDistribution[0;0xffffffff].......................@shared-arrays(1892e294)(2) x 1,972 ops/sec ±0.32% (518 runs sampled)
uniformIntDistribution[0;0xffffffff].......................@v3.1.0(062041a3)(3) x 2,029 ops/sec ±0.15% (518 runs sampled)
uniformIntDistribution[0;0xffffffff].......................@master(538c0082)(3) x 1,902 ops/sec ±0.12% (517 runs sampled)
uniformIntDistribution[0;0xffffffff].......................@basic(c017f2be)(3) x 1,706 ops/sec ±0.13% (515 runs sampled)
uniformIntDistribution[0;0xffffffff].......................@shared-arrays(1892e294)(3) x 1,974 ops/sec ±0.10% (518 runs sampled)
uniformIntDistribution[0;0xffffffff+1].....................@v3.1.0(062041a3) x 1,564 ops/sec ±0.13% (514 runs sampled)
uniformIntDistribution[0;0xffffffff+1].....................@master(538c0082) x 1,476 ops/sec ±0.11% (513 runs sampled)
uniformIntDistribution[0;0xffffffff+1].....................@basic(c017f2be) x 402 ops/sec ±0.07% (503 runs sampled)
uniformIntDistribution[0;0xffffffff+1].....................@shared-arrays(1892e294) x 472 ops/sec ±0.07% (504 runs sampled)
uniformIntDistribution[0;0xffffffff+1].....................@v3.1.0(062041a3)(2) x 1,569 ops/sec ±0.15% (514 runs sampled)
uniformIntDistribution[0;0xffffffff+1].....................@master(538c0082)(2) x 1,475 ops/sec ±0.12% (513 runs sampled)
uniformIntDistribution[0;0xffffffff+1].....................@basic(c017f2be)(2) x 402 ops/sec ±0.07% (503 runs sampled)
uniformIntDistribution[0;0xffffffff+1].....................@shared-arrays(1892e294)(2) x 471 ops/sec ±0.10% (504 runs sampled)
uniformIntDistribution[0;0xffffffff+1].....................@v3.1.0(062041a3)(3) x 1,565 ops/sec ±0.15% (514 runs sampled)
uniformIntDistribution[0;0xffffffff+1].....................@master(538c0082)(3) x 1,475 ops/sec ±0.11% (513 runs sampled)
uniformIntDistribution[0;0xffffffff+1].....................@basic(c017f2be)(3) x 401 ops/sec ±0.07% (503 runs sampled)
uniformIntDistribution[0;0xffffffff+1].....................@shared-arrays(1892e294)(3) x 477 ops/sec ±0.09% (504 runs sampled)
uniformIntDistribution[MIN_SAFE_INTEGER;MAX_SAFE_INTEGER]..@v3.1.0(062041a3) x 1,579 ops/sec ±0.17% (514 runs sampled)
uniformIntDistribution[MIN_SAFE_INTEGER;MAX_SAFE_INTEGER]..@master(538c0082) x 1,494 ops/sec ±0.14% (514 runs sampled)
uniformIntDistribution[MIN_SAFE_INTEGER;MAX_SAFE_INTEGER]..@basic(c017f2be) x 669 ops/sec ±0.10% (506 runs sampled)
uniformIntDistribution[MIN_SAFE_INTEGER;MAX_SAFE_INTEGER]..@shared-arrays(1892e294) x 845 ops/sec ±0.11% (507 runs sampled)
uniformIntDistribution[MIN_SAFE_INTEGER;MAX_SAFE_INTEGER]..@v3.1.0(062041a3)(2) x 1,570 ops/sec ±0.13% (514 runs sampled)
uniformIntDistribution[MIN_SAFE_INTEGER;MAX_SAFE_INTEGER]..@master(538c0082)(2) x 1,500 ops/sec ±0.11% (513 runs sampled)
uniformIntDistribution[MIN_SAFE_INTEGER;MAX_SAFE_INTEGER]..@basic(c017f2be)(2) x 669 ops/sec ±0.10% (506 runs sampled)
uniformIntDistribution[MIN_SAFE_INTEGER;MAX_SAFE_INTEGER]..@shared-arrays(1892e294)(2) x 848 ops/sec ±0.17% (508 runs sampled)
uniformIntDistribution[MIN_SAFE_INTEGER;MAX_SAFE_INTEGER]..@v3.1.0(062041a3)(3) x 1,575 ops/sec ±0.15% (514 runs sampled)
uniformIntDistribution[MIN_SAFE_INTEGER;MAX_SAFE_INTEGER]..@master(538c0082)(3) x 1,500 ops/sec ±0.12% (514 runs sampled)
uniformIntDistribution[MIN_SAFE_INTEGER;MAX_SAFE_INTEGER]..@basic(c017f2be)(3) x 669 ops/sec ±0.10% (506 runs sampled)
uniformIntDistribution[MIN_SAFE_INTEGER;MAX_SAFE_INTEGER]..@shared-arrays(1892e294)(3) x 847 ops/sec ±0.10% (508 runs sampled)

INFO  Reports

Stats for uniformIntDistribution[0;96]
┌────────────────────────────┬──────────────────┬──────────────────┬─────────────────┬─────────────────────────┬─────────────────────┬─────────────────────┬────────────────────┬────────────────────────────┬─────────────────────┬─────────────────────┬────────────────────┬────────────────────────────┐
│ Name                       │ v3.1.0(062041a3) │ master(538c0082) │ basic(c017f2be) │ shared-arrays(1892e294) │ v3.1.0(062041a3)(2) │ master(538c0082)(2) │ basic(c017f2be)(2) │ shared-arrays(1892e294)(2) │ v3.1.0(062041a3)(3) │ master(538c0082)(3) │ basic(c017f2be)(3) │ shared-arrays(1892e294)(3) │
├────────────────────────────┼──────────────────┼──────────────────┼─────────────────┼─────────────────────────┼─────────────────────┼─────────────────────┼────────────────────┼────────────────────────────┼─────────────────────┼─────────────────────┼────────────────────┼────────────────────────────┤
│ v3.1.0(062041a3)           │                - │          +4.38 % │        +18.95 % │                 +3.67 % │             +0.38 % │             +3.88 % │           +19.09 % │                    +2.92 % │             +0.19 % │             +5.61 % │           +19.03 % │                    +3.47 % │
│ master(538c0082)           │          -4.20 % │                - │        +13.95 % │                 -0.69 % │             -3.84 % │             -0.48 % │           +14.10 % │                    -1.40 % │             -4.02 % │             +1.17 % │           +14.03 % │                    -0.88 % │
│ basic(c017f2be)            │         -15.93 % │         -12.24 % │               - │                -12.85 % │            -15.61 % │            -12.67 % │            +0.13 % │                   -13.48 % │            -15.77 % │            -11.22 % │            +0.07 % │                   -13.01 % │
│ shared-arrays(1892e294)    │          -3.54 % │          +0.69 % │        +14.74 % │                       - │             -3.17 % │             +0.20 % │           +14.88 % │                    -0.72 % │             -3.35 % │             +1.87 % │           +14.82 % │                    -0.19 % │
│ v3.1.0(062041a3)(2)        │          -0.37 % │          +3.99 % │        +18.50 % │                 +3.28 % │                   - │             +3.49 % │           +18.65 % │                    +2.53 % │             -0.19 % │             +5.21 % │           +18.58 % │                    +3.08 % │
│ master(538c0082)(2)        │          -3.73 % │          +0.49 % │        +14.51 % │                 -0.20 % │             -3.37 % │                   - │           +14.65 % │                    -0.92 % │             -3.55 % │             +1.66 % │           +14.58 % │                    -0.39 % │
│ basic(c017f2be)(2)         │         -16.03 % │         -12.35 % │         -0.13 % │                -12.96 % │            -15.72 % │            -12.78 % │                  - │                   -13.58 % │            -15.88 % │            -11.33 % │            -0.06 % │                   -13.12 % │
│ shared-arrays(1892e294)(2) │          -2.83 % │          +1.42 % │        +15.57 % │                 +0.73 % │             -2.47 % │             +0.93 % │           +15.72 % │                          - │             -2.65 % │             +2.61 % │           +15.65 % │                    +0.53 % │
│ v3.1.0(062041a3)(3)        │          -0.19 % │          +4.19 % │        +18.72 % │                 +3.47 % │             +0.19 % │             +3.68 % │           +18.87 % │                    +2.72 % │                   - │             +5.41 % │           +18.80 % │                    +3.27 % │
│ master(538c0082)(3)        │          -5.31 % │          -1.16 % │        +12.63 % │                 -1.84 % │             -4.95 % │             -1.64 % │           +12.77 % │                    -2.55 % │             -5.13 % │                   - │           +12.71 % │                    -2.03 % │
│ basic(c017f2be)(3)         │         -15.99 % │         -12.30 % │         -0.07 % │                -12.91 % │            -15.67 % │            -12.73 % │            +0.06 % │                   -13.53 % │            -15.83 % │            -11.28 % │                  - │                   -13.07 % │
│ shared-arrays(1892e294)(3) │          -3.35 % │          +0.88 % │        +14.96 % │                 +0.19 % │             -2.99 % │             +0.40 % │           +15.10 % │                    -0.53 % │             -3.17 % │             +2.07 % │           +15.04 % │                          - │
└────────────────────────────┴──────────────────┴──────────────────┴─────────────────┴─────────────────────────┴─────────────────────┴─────────────────────┴────────────────────┴────────────────────────────┴─────────────────────┴─────────────────────┴────────────────────┴────────────────────────────┘

Stats for uniformIntDistribution[0;0xffff]
┌────────────────────────────┬──────────────────┬──────────────────┬─────────────────┬─────────────────────────┬─────────────────────┬─────────────────────┬────────────────────┬────────────────────────────┬─────────────────────┬─────────────────────┬────────────────────┬────────────────────────────┐
│ Name                       │ v3.1.0(062041a3) │ master(538c0082) │ basic(c017f2be) │ shared-arrays(1892e294) │ v3.1.0(062041a3)(2) │ master(538c0082)(2) │ basic(c017f2be)(2) │ shared-arrays(1892e294)(2) │ v3.1.0(062041a3)(3) │ master(538c0082)(3) │ basic(c017f2be)(3) │ shared-arrays(1892e294)(3) │
├────────────────────────────┼──────────────────┼──────────────────┼─────────────────┼─────────────────────────┼─────────────────────┼─────────────────────┼────────────────────┼────────────────────────────┼─────────────────────┼─────────────────────┼────────────────────┼────────────────────────────┤
│ v3.1.0(062041a3)           │                - │          +3.23 % │        +19.81 % │                 +2.94 % │             +0.46 % │             +6.66 % │           +19.11 % │                    +2.92 % │             +0.18 % │             +7.39 % │           +20.31 % │                    +2.93 % │
│ master(538c0082)           │          -3.13 % │                - │        +16.06 % │                 -0.29 % │             -2.69 % │             +3.31 % │           +15.37 % │                    -0.30 % │             -2.96 % │             +4.03 % │           +16.54 % │                    -0.30 % │
│ basic(c017f2be)            │         -16.54 % │         -13.84 % │               - │                -14.09 % │            -16.16 % │            -10.98 % │            -0.59 % │                   -14.10 % │            -16.39 % │            -10.37 % │            +0.42 % │                   -14.09 % │
│ shared-arrays(1892e294)    │          -2.85 % │          +0.29 % │        +16.40 % │                       - │             -2.41 % │             +3.61 % │           +15.71 % │                    -0.01 % │             -2.68 % │             +4.33 % │           +16.88 % │                    -0.01 % │
│ v3.1.0(062041a3)(2)        │          -0.45 % │          +2.76 % │        +19.27 % │                 +2.47 % │                   - │             +6.17 % │           +18.56 % │                    +2.46 % │             -0.27 % │             +6.90 % │           +19.77 % │                    +2.46 % │
│ master(538c0082)(2)        │          -6.24 % │          -3.21 % │        +12.34 % │                 -3.49 % │             -5.81 % │                   - │           +11.67 % │                    -3.50 % │             -6.07 % │             +0.69 % │           +12.80 % │                    -3.50 % │
│ basic(c017f2be)(2)         │         -16.04 % │         -13.33 % │         +0.59 % │                -13.57 % │            -15.66 % │            -10.45 % │                  - │                   -13.59 % │            -15.89 % │             -9.84 % │            +1.01 % │                   -13.58 % │
│ shared-arrays(1892e294)(2) │          -2.84 % │          +0.30 % │        +16.41 % │                 +0.01 % │             -2.40 % │             +3.63 % │           +15.72 % │                          - │             -2.66 % │             +4.34 % │           +16.90 % │                    +0.00 % │
│ v3.1.0(062041a3)(3)        │          -0.18 % │          +3.05 % │        +19.60 % │                 +2.75 % │             +0.28 % │             +6.46 % │           +18.89 % │                    +2.74 % │                   - │             +7.20 % │           +20.10 % │                    +2.74 % │
│ master(538c0082)(3)        │          -6.88 % │          -3.87 % │        +11.57 % │                 -4.15 % │             -6.46 % │             -0.68 % │           +10.91 % │                    -4.16 % │             -6.71 % │                   - │           +12.03 % │                    -4.15 % │
│ basic(c017f2be)(3)         │         -16.88 % │         -14.20 % │         -0.41 % │                -14.44 % │            -16.50 % │            -11.35 % │            -1.00 % │                   -14.45 % │            -16.73 % │            -10.74 % │                  - │                   -14.45 % │
│ shared-arrays(1892e294)(3) │          -2.85 % │          +0.30 % │        +16.41 % │                 +0.01 % │             -2.40 % │             +3.62 % │           +15.72 % │                    -0.00 % │             -2.67 % │             +4.33 % │           +16.89 % │                          - │
└────────────────────────────┴──────────────────┴──────────────────┴─────────────────┴─────────────────────────┴─────────────────────┴─────────────────────┴────────────────────┴────────────────────────────┴─────────────────────┴─────────────────────┴────────────────────┴────────────────────────────┘

Stats for uniformIntDistribution[0;0xffffffff]
┌────────────────────────────┬──────────────────┬──────────────────┬─────────────────┬─────────────────────────┬─────────────────────┬─────────────────────┬────────────────────┬────────────────────────────┬─────────────────────┬─────────────────────┬────────────────────┬────────────────────────────┐
│ Name                       │ v3.1.0(062041a3) │ master(538c0082) │ basic(c017f2be) │ shared-arrays(1892e294) │ v3.1.0(062041a3)(2) │ master(538c0082)(2) │ basic(c017f2be)(2) │ shared-arrays(1892e294)(2) │ v3.1.0(062041a3)(3) │ master(538c0082)(3) │ basic(c017f2be)(3) │ shared-arrays(1892e294)(3) │
├────────────────────────────┼──────────────────┼──────────────────┼─────────────────┼─────────────────────────┼─────────────────────┼─────────────────────┼────────────────────┼────────────────────────────┼─────────────────────┼─────────────────────┼────────────────────┼────────────────────────────┤
│ v3.1.0(062041a3)           │                - │          +7.03 % │        +19.30 % │                 +5.25 % │             +0.56 % │             +7.08 % │           +19.28 % │                    +3.26 % │             +0.38 % │             +7.09 % │           +19.37 % │                    +3.20 % │
│ master(538c0082)           │          -6.57 % │                - │        +11.46 % │                 -1.67 % │             -6.05 % │             +0.05 % │           +11.44 % │                    -3.53 % │             -6.22 % │             +0.06 % │           +11.52 % │                    -3.58 % │
│ basic(c017f2be)            │         -16.18 % │         -10.28 % │               - │                -11.78 % │            -15.71 % │            -10.24 % │            -0.02 % │                   -13.45 % │            -15.86 % │            -10.23 % │            +0.06 % │                   -13.49 % │
│ shared-arrays(1892e294)    │          -4.99 % │          +1.70 % │        +13.35 % │                       - │             -4.46 % │             +1.74 % │           +13.33 % │                    -1.89 % │             -4.63 % │             +1.75 % │           +13.41 % │                    -1.94 % │
│ v3.1.0(062041a3)(2)        │          -0.56 % │          +6.44 % │        +18.64 % │                 +4.66 % │                   - │             +6.49 % │           +18.62 % │                    +2.68 % │             -0.18 % │             +6.50 % │           +18.70 % │                    +2.63 % │
│ master(538c0082)(2)        │          -6.61 % │          -0.05 % │        +11.41 % │                 -1.71 % │             -6.09 % │                   - │           +11.39 % │                    -3.57 % │             -6.26 % │             +0.01 % │           +11.47 % │                    -3.62 % │
│ basic(c017f2be)(2)         │         -16.16 % │         -10.27 % │         +0.02 % │                -11.76 % │            -15.70 % │            -10.23 % │                  - │                   -13.43 % │            -15.85 % │            -10.22 % │            +0.07 % │                   -13.48 % │
│ shared-arrays(1892e294)(2) │          -3.15 % │          +3.66 % │        +15.53 % │                 +1.93 % │             -2.61 % │             +3.70 % │           +15.52 % │                          - │             -2.79 % │             +3.72 % │           +15.60 % │                    -0.05 % │
│ v3.1.0(062041a3)(3)        │          -0.37 % │          +6.63 % │        +18.85 % │                 +4.85 % │             +0.18 % │             +6.68 % │           +18.83 % │                    +2.87 % │                   - │             +6.69 % │           +18.92 % │                    +2.82 % │
│ master(538c0082)(3)        │          -6.62 % │          -0.06 % │        +11.40 % │                 -1.72 % │             -6.10 % │             -0.01 % │           +11.38 % │                    -3.58 % │             -6.27 % │                   - │           +11.46 % │                    -3.63 % │
│ basic(c017f2be)(3)         │         -16.22 % │         -10.33 % │         -0.06 % │                -11.83 % │            -15.76 % │            -10.29 % │            -0.07 % │                   -13.49 % │            -15.91 % │            -10.28 % │                  - │                   -13.54 % │
│ shared-arrays(1892e294)(3) │          -3.10 % │          +3.71 % │        +15.60 % │                 +1.98 % │             -2.56 % │             +3.76 % │           +15.58 % │                    +0.05 % │             -2.74 % │             +3.77 % │           +15.66 % │                          - │
└────────────────────────────┴──────────────────┴──────────────────┴─────────────────┴─────────────────────────┴─────────────────────┴─────────────────────┴────────────────────┴────────────────────────────┴─────────────────────┴─────────────────────┴────────────────────┴────────────────────────────┘

Stats for uniformIntDistribution[0;0xffffffff+1]
┌────────────────────────────┬──────────────────┬──────────────────┬─────────────────┬─────────────────────────┬─────────────────────┬─────────────────────┬────────────────────┬────────────────────────────┬─────────────────────┬─────────────────────┬────────────────────┬────────────────────────────┐
│ Name                       │ v3.1.0(062041a3) │ master(538c0082) │ basic(c017f2be) │ shared-arrays(1892e294) │ v3.1.0(062041a3)(2) │ master(538c0082)(2) │ basic(c017f2be)(2) │ shared-arrays(1892e294)(2) │ v3.1.0(062041a3)(3) │ master(538c0082)(3) │ basic(c017f2be)(3) │ shared-arrays(1892e294)(3) │
├────────────────────────────┼──────────────────┼──────────────────┼─────────────────┼─────────────────────────┼─────────────────────┼─────────────────────┼────────────────────┼────────────────────────────┼─────────────────────┼─────────────────────┼────────────────────┼────────────────────────────┤
│ v3.1.0(062041a3)           │                - │          +5.95 % │       +288.97 % │               +231.54 % │             -0.31 % │             +6.08 % │          +289.15 % │                  +232.19 % │             -0.03 % │             +6.07 % │          +289.63 % │                  +227.76 % │
│ master(538c0082)           │          -5.61 % │                - │       +267.14 % │               +212.94 % │             -5.91 % │             +0.12 % │          +267.31 % │                  +213.55 % │             -5.64 % │             +0.12 % │          +267.76 % │                  +209.36 % │
│ basic(c017f2be)            │         -74.29 % │         -72.76 % │               - │                -14.76 % │            -74.37 % │            -72.73 % │            +0.05 % │                   -14.60 % │            -74.30 % │            -72.73 % │            +0.17 % │                   -15.74 % │
│ shared-arrays(1892e294)    │         -69.84 % │         -68.04 % │        +17.32 % │                       - │            -69.93 % │            -68.01 % │           +17.37 % │                    +0.20 % │            -69.85 % │            -68.01 % │           +17.52 % │                    -1.14 % │
│ v3.1.0(062041a3)(2)        │          +0.31 % │          +6.28 % │       +290.18 % │               +232.58 % │                   - │             +6.41 % │          +290.36 % │                  +233.23 % │             +0.29 % │             +6.40 % │          +290.84 % │                  +228.78 % │
│ master(538c0082)(2)        │          -5.73 % │          -0.12 % │       +266.69 % │               +212.55 % │             -6.02 % │                   - │          +266.86 % │                  +213.17 % │             -5.75 % │             -0.01 % │          +267.31 % │                  +208.99 % │
│ basic(c017f2be)(2)         │         -74.30 % │         -72.77 % │         -0.05 % │                -14.80 % │            -74.38 % │            -72.74 % │                  - │                   -14.64 % │            -74.31 % │            -72.74 % │            +0.12 % │                   -15.78 % │
│ shared-arrays(1892e294)(2) │         -69.90 % │         -68.11 % │        +17.09 % │                 -0.20 % │            -69.99 % │            -68.07 % │           +17.14 % │                          - │            -69.90 % │            -68.07 % │           +17.29 % │                    -1.34 % │
│ v3.1.0(062041a3)(3)        │          +0.03 % │          +5.97 % │       +289.07 % │               +231.63 % │             -0.29 % │             +6.10 % │          +289.25 % │                  +232.28 % │                   - │             +6.10 % │          +289.73 % │                  +227.84 % │
│ master(538c0082)(3)        │          -5.72 % │          -0.12 % │       +266.71 % │               +212.57 % │             -6.02 % │             +0.01 % │          +266.88 % │                  +213.19 % │             -5.75 % │                   - │          +267.33 % │                  +209.00 % │
│ basic(c017f2be)(3)         │         -74.33 % │         -72.81 % │         -0.17 % │                -14.91 % │            -74.41 % │            -72.78 % │            -0.12 % │                   -14.74 % │            -74.34 % │            -72.78 % │                  - │                   -15.88 % │
│ shared-arrays(1892e294)(3) │         -69.49 % │         -67.68 % │        +18.68 % │                 +1.15 % │            -69.58 % │            -67.64 % │           +18.73 % │                    +1.35 % │            -69.50 % │            -67.64 % │           +18.88 % │                          - │
└────────────────────────────┴──────────────────┴──────────────────┴─────────────────┴─────────────────────────┴─────────────────────┴─────────────────────┴────────────────────┴────────────────────────────┴─────────────────────┴─────────────────────┴────────────────────┴────────────────────────────┘

Stats for uniformIntDistribution[MIN_SAFE_INTEGER;MAX_SAFE_INTEGER]
┌────────────────────────────┬──────────────────┬──────────────────┬─────────────────┬─────────────────────────┬─────────────────────┬─────────────────────┬────────────────────┬────────────────────────────┬─────────────────────┬─────────────────────┬────────────────────┬────────────────────────────┐
│ Name                       │ v3.1.0(062041a3) │ master(538c0082) │ basic(c017f2be) │ shared-arrays(1892e294) │ v3.1.0(062041a3)(2) │ master(538c0082)(2) │ basic(c017f2be)(2) │ shared-arrays(1892e294)(2) │ v3.1.0(062041a3)(3) │ master(538c0082)(3) │ basic(c017f2be)(3) │ shared-arrays(1892e294)(3) │
├────────────────────────────┼──────────────────┼──────────────────┼─────────────────┼─────────────────────────┼─────────────────────┼─────────────────────┼────────────────────┼────────────────────────────┼─────────────────────┼─────────────────────┼────────────────────┼────────────────────────────┤
│ v3.1.0(062041a3)           │                - │          +5.69 % │       +136.04 % │                +86.92 % │             +0.60 % │             +5.26 % │          +135.93 % │                   +86.30 % │             +0.26 % │             +5.26 % │          +136.14 % │                   +86.37 % │
│ master(538c0082)           │          -5.38 % │                - │       +123.34 % │                +76.86 % │             -4.81 % │             -0.40 % │          +123.24 % │                   +76.27 % │             -5.13 % │             -0.40 % │          +123.44 % │                   +76.35 % │
│ basic(c017f2be)            │         -57.63 % │         -55.22 % │               - │                -20.81 % │            -57.38 % │            -55.40 % │            -0.04 % │                   -21.07 % │            -57.52 % │            -55.40 % │            +0.04 % │                   -21.04 % │
│ shared-arrays(1892e294)    │         -46.50 % │         -43.46 % │        +26.28 % │                       - │            -46.18 % │            -43.68 % │           +26.22 % │                    -0.33 % │            -46.36 % │            -43.68 % │           +26.34 % │                    -0.29 % │
│ v3.1.0(062041a3)(2)        │          -0.60 % │          +5.06 % │       +134.63 % │                +85.80 % │                   - │             +4.63 % │          +134.53 % │                   +85.19 % │             -0.33 % │             +4.64 % │          +134.74 % │                   +85.26 % │
│ master(538c0082)(2)        │          -5.00 % │          +0.40 % │       +124.24 % │                +77.57 % │             -4.43 % │                   - │          +124.14 % │                   +76.99 % │             -4.75 % │             +0.00 % │          +124.34 % │                   +77.06 % │
│ basic(c017f2be)(2)         │         -57.62 % │         -55.20 % │         +0.04 % │                -20.78 % │            -57.36 % │            -55.38 % │                  - │                   -21.04 % │            -57.50 % │            -55.38 % │            +0.09 % │                   -21.01 % │
│ shared-arrays(1892e294)(2) │         -46.32 % │         -43.27 % │        +26.70 % │                 +0.33 % │            -46.00 % │            -43.50 % │           +26.64 % │                          - │            -46.18 % │            -43.50 % │           +26.76 % │                    +0.04 % │
│ v3.1.0(062041a3)(3)        │          -0.26 % │          +5.41 % │       +135.42 % │                +86.42 % │             +0.34 % │             +4.99 % │          +135.31 % │                   +85.81 % │                   - │             +4.99 % │          +135.52 % │                   +85.88 % │
│ master(538c0082)(3)        │          -5.00 % │          +0.40 % │       +124.24 % │                +77.57 % │             -4.43 % │             -0.00 % │          +124.14 % │                   +76.98 % │             -4.75 % │                   - │          +124.34 % │                   +77.06 % │
│ basic(c017f2be)(3)         │         -57.65 % │         -55.24 % │         -0.04 % │                -20.85 % │            -57.40 % │            -55.42 % │            -0.09 % │                   -21.11 % │            -57.54 % │            -55.42 % │                  - │                   -21.08 % │
│ shared-arrays(1892e294)(3) │         -46.34 % │         -43.29 % │        +26.65 % │                 +0.29 % │            -46.02 % │            -43.52 % │           +26.59 % │                    -0.04 % │            -46.20 % │            -43.52 % │           +26.70 % │                          - │
└────────────────────────────┴──────────────────┴──────────────────┴─────────────────┴─────────────────────────┴─────────────────────┴─────────────────────┴────────────────────┴────────────────────────────┴─────────────────────┴─────────────────────┴────────────────────┴────────────────────────────┘
Run on personal server against node 14
INFO  Benchmark phase...

uniformIntDistribution[0;96]...............................@v3.1.0(062041a3) x 26,342 ops/sec ±0.64% (5067 runs sampled)
uniformIntDistribution[0;96]...............................@master(538c0082) x 50,358 ops/sec ±0.24% (5067 runs sampled)
uniformIntDistribution[0;96]...............................@basic(c017f2be) x 48,998 ops/sec ±0.24% (5066 runs sampled)
uniformIntDistribution[0;96]...............................@shared-arrays(1892e294) x 39,078 ops/sec ±0.26% (5067 runs sampled)
uniformIntDistribution[0;96]...............................@extract-large(40b19976) x 49,396 ops/sec ±0.26% (5066 runs sampled)
uniformIntDistribution[0;0xffff]...........................@v3.1.0(062041a3) x 55,518 ops/sec ±0.26% (5066 runs sampled)
uniformIntDistribution[0;0xffff]...........................@master(538c0082) x 50,736 ops/sec ±0.27% (5067 runs sampled)
uniformIntDistribution[0;0xffff]...........................@basic(c017f2be) x 49,175 ops/sec ±0.28% (5066 runs sampled)
uniformIntDistribution[0;0xffff]...........................@shared-arrays(1892e294) x 39,147 ops/sec ±0.26% (5067 runs sampled)
uniformIntDistribution[0;0xffff]...........................@extract-large(40b19976) x 49,133 ops/sec ±0.25% (5066 runs sampled)
uniformIntDistribution[0;0xffffffff].......................@v3.1.0(062041a3) x 47,778 ops/sec ±0.27% (5067 runs sampled)
uniformIntDistribution[0;0xffffffff].......................@master(538c0082) x 42,909 ops/sec ±0.26% (5065 runs sampled)
uniformIntDistribution[0;0xffffffff].......................@basic(c017f2be) x 37,640 ops/sec ±0.25% (5067 runs sampled)
uniformIntDistribution[0;0xffffffff].......................@shared-arrays(1892e294) x 37,504 ops/sec ±0.26% (5065 runs sampled)
uniformIntDistribution[0;0xffffffff].......................@extract-large(40b19976) x 46,392 ops/sec ±0.26% (5067 runs sampled)
uniformIntDistribution[0;0xffffffff+1].....................@v3.1.0(062041a3) x 38,530 ops/sec ±0.24% (5066 runs sampled)
uniformIntDistribution[0;0xffffffff+1].....................@master(538c0082) x 34,227 ops/sec ±0.25% (5065 runs sampled)
uniformIntDistribution[0;0xffffffff+1].....................@basic(c017f2be) x 11,972 ops/sec ±0.54% (5065 runs sampled)
uniformIntDistribution[0;0xffffffff+1].....................@shared-arrays(1892e294) x 14,367 ops/sec ±0.57% (5066 runs sampled)
uniformIntDistribution[0;0xffffffff+1].....................@extract-large(40b19976) x 13,580 ops/sec ±0.51% (5066 runs sampled)
uniformIntDistribution[MIN_SAFE_INTEGER;MAX_SAFE_INTEGER]..@v3.1.0(062041a3) x 38,522 ops/sec ±0.26% (5065 runs sampled)
uniformIntDistribution[MIN_SAFE_INTEGER;MAX_SAFE_INTEGER]..@master(538c0082) x 33,963 ops/sec ±0.28% (5067 runs sampled)
uniformIntDistribution[MIN_SAFE_INTEGER;MAX_SAFE_INTEGER]..@basic(c017f2be) x 11,891 ops/sec ±0.64% (5065 runs sampled)
uniformIntDistribution[MIN_SAFE_INTEGER;MAX_SAFE_INTEGER]..@shared-arrays(1892e294) x 18,274 ops/sec ±0.46% (5067 runs sampled)
uniformIntDistribution[MIN_SAFE_INTEGER;MAX_SAFE_INTEGER]..@extract-large(40b19976) x 18,448 ops/sec ±0.26% (5065 runs sampled)

INFO  Reports

Stats for uniformIntDistribution[0;96]
┌─────────────────────────┬──────────────────┬──────────────────┬─────────────────┬─────────────────────────┬─────────────────────────┐
│ Name                    │ v3.1.0(062041a3) │ master(538c0082) │ basic(c017f2be) │ shared-arrays(1892e294) │ extract-large(40b19976) │
├─────────────────────────┼──────────────────┼──────────────────┼─────────────────┼─────────────────────────┼─────────────────────────┤
│ v3.1.0(062041a3)        │                — │         -47.69 % │        -46.24 % │                -32.59 % │                -46.67 % │
│ master(538c0082)        │         +91.17 % │                — │         +2.77 % │                +28.87 % │                 +1.95 % │
│ basic(c017f2be)         │         +86.01 % │          -2.70 % │               — │                +25.39 % │                 -0.81 % │
│ shared-arrays(1892e294) │         +48.35 % │         -22.40 % │        -20.25 % │                       — │                -20.89 % │
│ extract-large(40b19976) │         +87.52 % │          -1.91 % │         +0.81 % │                +26.41 % │                       — │
└─────────────────────────┴──────────────────┴──────────────────┴─────────────────┴─────────────────────────┴─────────────────────────┘

Stats for uniformIntDistribution[0;0xffff]
┌─────────────────────────┬──────────────────┬──────────────────┬─────────────────┬─────────────────────────┬─────────────────────────┐
│ Name                    │ v3.1.0(062041a3) │ master(538c0082) │ basic(c017f2be) │ shared-arrays(1892e294) │ extract-large(40b19976) │
├─────────────────────────┼──────────────────┼──────────────────┼─────────────────┼─────────────────────────┼─────────────────────────┤
│ v3.1.0(062041a3)        │                — │          +9.42 % │        +12.90 % │                +41.82 % │                +13.00 % │
│ master(538c0082)        │          -8.61 % │                — │         +3.18 % │                +29.60 % │                 +3.26 % │
│ basic(c017f2be)         │         -11.42 % │          -3.08 % │               — │                +25.61 % │                 +0.09 % │
│ shared-arrays(1892e294) │         -29.49 % │         -22.84 % │        -20.39 % │                       — │                -20.32 % │
│ extract-large(40b19976) │         -11.50 % │          -3.16 % │         -0.09 % │                +25.51 % │                       — │
└─────────────────────────┴──────────────────┴──────────────────┴─────────────────┴─────────────────────────┴─────────────────────────┘

Stats for uniformIntDistribution[0;0xffffffff]
┌─────────────────────────┬──────────────────┬──────────────────┬─────────────────┬─────────────────────────┬─────────────────────────┐
│ Name                    │ v3.1.0(062041a3) │ master(538c0082) │ basic(c017f2be) │ shared-arrays(1892e294) │ extract-large(40b19976) │
├─────────────────────────┼──────────────────┼──────────────────┼─────────────────┼─────────────────────────┼─────────────────────────┤
│ v3.1.0(062041a3)        │                — │         +11.35 % │        +26.94 % │                +27.40 % │                 +2.99 % │
│ master(538c0082)        │         -10.19 % │                — │        +14.00 % │                +14.41 % │                 -7.51 % │
│ basic(c017f2be)         │         -21.22 % │         -12.28 % │               — │                 +0.36 % │                -18.87 % │
│ shared-arrays(1892e294) │         -21.50 % │         -12.60 % │         -0.36 % │                       — │                -19.16 % │
│ extract-large(40b19976) │          -2.90 % │          +8.12 % │        +23.25 % │                +23.70 % │                       — │
└─────────────────────────┴──────────────────┴──────────────────┴─────────────────┴─────────────────────────┴─────────────────────────┘

Stats for uniformIntDistribution[0;0xffffffff+1]
┌─────────────────────────┬──────────────────┬──────────────────┬─────────────────┬─────────────────────────┬─────────────────────────┐
│ Name                    │ v3.1.0(062041a3) │ master(538c0082) │ basic(c017f2be) │ shared-arrays(1892e294) │ extract-large(40b19976) │
├─────────────────────────┼──────────────────┼──────────────────┼─────────────────┼─────────────────────────┼─────────────────────────┤
│ v3.1.0(062041a3)        │                — │         +12.57 % │       +221.83 % │               +168.19 % │               +183.72 % │
│ master(538c0082)        │         -11.17 % │                — │       +185.89 % │               +138.24 % │               +152.04 % │
│ basic(c017f2be)         │         -68.93 % │         -65.02 % │               — │                -16.67 % │                -11.84 % │
│ shared-arrays(1892e294) │         -62.71 % │         -58.03 % │        +20.00 % │                       — │                 +5.79 % │
│ extract-large(40b19976) │         -64.75 % │         -60.32 % │        +13.43 % │                 -5.47 % │                       — │
└─────────────────────────┴──────────────────┴──────────────────┴─────────────────┴─────────────────────────┴─────────────────────────┘

Stats for uniformIntDistribution[MIN_SAFE_INTEGER;MAX_SAFE_INTEGER]
┌─────────────────────────┬──────────────────┬──────────────────┬─────────────────┬─────────────────────────┬─────────────────────────┐
│ Name                    │ v3.1.0(062041a3) │ master(538c0082) │ basic(c017f2be) │ shared-arrays(1892e294) │ extract-large(40b19976) │
├─────────────────────────┼──────────────────┼──────────────────┼─────────────────┼─────────────────────────┼─────────────────────────┤
│ v3.1.0(062041a3)        │                — │         +13.43 % │       +223.95 % │               +110.81 % │               +108.82 % │
│ master(538c0082)        │         -11.84 % │                — │       +185.61 % │                +85.86 % │                +84.10 % │
│ basic(c017f2be)         │         -69.13 % │         -64.99 % │               — │                -34.93 % │                -35.54 % │
│ shared-arrays(1892e294) │         -52.56 % │         -46.20 % │        +53.67 % │                       — │                 -0.94 % │
│ extract-large(40b19976) │         -52.11 % │         -45.68 % │        +55.13 % │                 +0.95 % │                       — │
└─────────────────────────┴──────────────────┴──────────────────┴─────────────────┴─────────────────────────┴─────────────────────────┘
Run on personal server against node 14
INFO  Benchmark phase...

uniformIntDistribution[0;96]...............................@v3.1.0(062041a3) x 23,786 ops/sec ±0.26% (5064 runs sampled)
uniformIntDistribution[0;96]...............................@master(538c0082) x 50,668 ops/sec ±0.27% (5066 runs sampled)
uniformIntDistribution[0;96]...............................@basic(c017f2be) x 48,501 ops/sec ±0.26% (5067 runs sampled)
uniformIntDistribution[0;96]...............................@shared-arrays(1892e294) x 37,968 ops/sec ±0.27% (5065 runs sampled)
uniformIntDistribution[0;96]...............................@extract-large(40b19976) x 48,421 ops/sec ±0.25% (5065 runs sampled)
uniformIntDistribution[0;96]...............................@last-optims(154f58b0) x 48,689 ops/sec ±0.26% (5067 runs sampled)
uniformIntDistribution[0;0xffff]...........................@v3.1.0(062041a3) x 23,991 ops/sec ±0.24% (5066 runs sampled)
uniformIntDistribution[0;0xffff]...........................@master(538c0082) x 49,839 ops/sec ±0.27% (5066 runs sampled)
uniformIntDistribution[0;0xffff]...........................@basic(c017f2be) x 48,145 ops/sec ±0.25% (5066 runs sampled)
uniformIntDistribution[0;0xffff]...........................@shared-arrays(1892e294) x 37,948 ops/sec ±0.26% (5067 runs sampled)
uniformIntDistribution[0;0xffff]...........................@extract-large(40b19976) x 49,082 ops/sec ±0.28% (5066 runs sampled)
uniformIntDistribution[0;0xffff]...........................@last-optims(154f58b0) x 49,665 ops/sec ±0.26% (5067 runs sampled)
uniformIntDistribution[0;0xffffffff].......................@v3.1.0(062041a3) x 22,492 ops/sec ±0.26% (5064 runs sampled)
uniformIntDistribution[0;0xffffffff].......................@master(538c0082) x 42,372 ops/sec ±0.28% (5067 runs sampled)
uniformIntDistribution[0;0xffffffff].......................@basic(c017f2be) x 36,530 ops/sec ±0.28% (5067 runs sampled)
uniformIntDistribution[0;0xffffffff].......................@shared-arrays(1892e294) x 37,296 ops/sec ±0.26% (5067 runs sampled)
uniformIntDistribution[0;0xffffffff].......................@extract-large(40b19976) x 45,062 ops/sec ±0.26% (5066 runs sampled)
uniformIntDistribution[0;0xffffffff].......................@last-optims(154f58b0) x 45,317 ops/sec ±0.29% (5067 runs sampled)
uniformIntDistribution[0;0xffffffff+1].....................@v3.1.0(062041a3) x 19,719 ops/sec ±0.26% (5066 runs sampled)
uniformIntDistribution[0;0xffffffff+1].....................@master(538c0082) x 34,178 ops/sec ±0.27% (5065 runs sampled)
uniformIntDistribution[0;0xffffffff+1].....................@basic(c017f2be) x 12,054 ops/sec ±0.44% (5067 runs sampled)
uniformIntDistribution[0;0xffffffff+1].....................@shared-arrays(1892e294) x 14,301 ops/sec ±0.50% (5066 runs sampled)
uniformIntDistribution[0;0xffffffff+1].....................@extract-large(40b19976) x 13,617 ops/sec ±0.50% (5065 runs sampled)
uniformIntDistribution[0;0xffffffff+1].....................@last-optims(154f58b0) x 14,300 ops/sec ±0.50% (5066 runs sampled)
uniformIntDistribution[MIN_SAFE_INTEGER;MAX_SAFE_INTEGER]..@v3.1.0(062041a3) x 19,963 ops/sec ±0.25% (5065 runs sampled)
uniformIntDistribution[MIN_SAFE_INTEGER;MAX_SAFE_INTEGER]..@master(538c0082) x 33,721 ops/sec ±0.26% (5067 runs sampled)
uniformIntDistribution[MIN_SAFE_INTEGER;MAX_SAFE_INTEGER]..@basic(c017f2be) x 11,770 ops/sec ±0.58% (5067 runs sampled)
uniformIntDistribution[MIN_SAFE_INTEGER;MAX_SAFE_INTEGER]..@shared-arrays(1892e294) x 17,663 ops/sec ±0.24% (5067 runs sampled)
uniformIntDistribution[MIN_SAFE_INTEGER;MAX_SAFE_INTEGER]..@extract-large(40b19976) x 18,703 ops/sec ±0.25% (5065 runs sampled)
uniformIntDistribution[MIN_SAFE_INTEGER;MAX_SAFE_INTEGER]..@last-optims(154f58b0) x 18,097 ops/sec ±0.26% (5066 runs sampled)

INFO  Reports

Stats for uniformIntDistribution[0;96]
┌─────────────────────────┬──────────────────┬──────────────────┬─────────────────┬─────────────────────────┬─────────────────────────┬───────────────────────┐
│ Name                    │ v3.1.0(062041a3) │ master(538c0082) │ basic(c017f2be) │ shared-arrays(1892e294) │ extract-large(40b19976) │ last-optims(154f58b0) │
├─────────────────────────┼──────────────────┼──────────────────┼─────────────────┼─────────────────────────┼─────────────────────────┼───────────────────────┤
│ v3.1.0(062041a3)        │                — │         -53.06 % │        -50.96 % │                -37.35 % │                -50.88 % │              -51.15 % │
│ master(538c0082)        │        +113.02 % │                — │         +4.47 % │                +33.45 % │                 +4.64 % │               +4.06 % │
│ basic(c017f2be)         │        +103.91 % │          -4.28 % │               — │                +27.74 % │                 +0.17 % │               -0.39 % │
│ shared-arrays(1892e294) │         +59.63 % │         -25.07 % │        -21.72 % │                       — │                -21.59 % │              -22.02 % │
│ extract-large(40b19976) │        +103.57 % │          -4.44 % │         -0.17 % │                +27.53 % │                       — │               -0.55 % │
│ last-optims(154f58b0)   │        +104.70 % │          -3.91 % │         +0.39 % │                +28.24 % │                 +0.55 % │                     — │
└─────────────────────────┴──────────────────┴──────────────────┴─────────────────┴─────────────────────────┴─────────────────────────┴───────────────────────┘

Stats for uniformIntDistribution[0;0xffff]
┌─────────────────────────┬──────────────────┬──────────────────┬─────────────────┬─────────────────────────┬─────────────────────────┬───────────────────────┐
│ Name                    │ v3.1.0(062041a3) │ master(538c0082) │ basic(c017f2be) │ shared-arrays(1892e294) │ extract-large(40b19976) │ last-optims(154f58b0) │
├─────────────────────────┼──────────────────┼──────────────────┼─────────────────┼─────────────────────────┼─────────────────────────┼───────────────────────┤
│ v3.1.0(062041a3)        │                — │         -51.86 % │        -50.17 % │                -36.78 % │                -51.12 % │              -51.69 % │
│ master(538c0082)        │        +107.74 % │                — │         +3.52 % │                +31.33 % │                 +1.54 % │               +0.35 % │
│ basic(c017f2be)         │        +100.68 % │          -3.40 % │               — │                +26.87 % │                 -1.91 % │               -3.06 % │
│ shared-arrays(1892e294) │         +58.18 % │         -23.86 % │        -21.18 % │                       — │                -22.68 % │              -23.59 % │
│ extract-large(40b19976) │        +104.59 % │          -1.52 % │         +1.95 % │                +29.34 % │                       — │               -1.17 % │
│ last-optims(154f58b0)   │        +107.02 % │          -0.35 % │         +3.16 % │                +30.87 % │                 +1.19 % │                     — │
└─────────────────────────┴──────────────────┴──────────────────┴─────────────────┴─────────────────────────┴─────────────────────────┴───────────────────────┘

Stats for uniformIntDistribution[0;0xffffffff]
┌─────────────────────────┬──────────────────┬──────────────────┬─────────────────┬─────────────────────────┬─────────────────────────┬───────────────────────┐
│ Name                    │ v3.1.0(062041a3) │ master(538c0082) │ basic(c017f2be) │ shared-arrays(1892e294) │ extract-large(40b19976) │ last-optims(154f58b0) │
├─────────────────────────┼──────────────────┼──────────────────┼─────────────────┼─────────────────────────┼─────────────────────────┼───────────────────────┤
│ v3.1.0(062041a3)        │                — │         -46.92 % │        -38.43 % │                -39.70 % │                -50.09 % │              -50.37 % │
│ master(538c0082)        │         +88.39 % │                — │        +15.99 % │                +13.61 % │                 -5.97 % │               -6.50 % │
│ basic(c017f2be)         │         +62.42 % │         -13.79 % │               — │                 -2.06 % │                -18.93 % │              -19.39 % │
│ shared-arrays(1892e294) │         +65.82 % │         -11.98 % │         +2.10 % │                       — │                -17.23 % │              -17.70 % │
│ extract-large(40b19976) │        +100.35 % │          +6.35 % │        +23.36 % │                +20.82 % │                       — │               -0.56 % │
│ last-optims(154f58b0)   │        +101.49 % │          +6.95 % │        +24.06 % │                +21.51 % │                 +0.57 % │                     — │
└─────────────────────────┴──────────────────┴──────────────────┴─────────────────┴─────────────────────────┴─────────────────────────┴───────────────────────┘

Stats for uniformIntDistribution[0;0xffffffff+1]
┌─────────────────────────┬──────────────────┬──────────────────┬─────────────────┬─────────────────────────┬─────────────────────────┬───────────────────────┐
│ Name                    │ v3.1.0(062041a3) │ master(538c0082) │ basic(c017f2be) │ shared-arrays(1892e294) │ extract-large(40b19976) │ last-optims(154f58b0) │
├─────────────────────────┼──────────────────┼──────────────────┼─────────────────┼─────────────────────────┼─────────────────────────┼───────────────────────┤
│ v3.1.0(062041a3)        │                — │         -42.31 % │        +63.59 % │                +37.89 % │                +44.81 % │              +37.90 % │
│ master(538c0082)        │         +73.33 % │                — │       +183.55 % │               +139.00 % │               +151.00 % │             +139.01 % │
│ basic(c017f2be)         │         -38.87 % │         -64.73 % │               — │                -15.71 % │                -11.48 % │              -15.71 % │
│ shared-arrays(1892e294) │         -27.48 % │         -58.16 % │        +18.64 % │                       — │                 +5.02 % │               +0.01 % │
│ extract-large(40b19976) │         -30.95 % │         -60.16 % │        +12.97 % │                 -4.78 % │                       — │               -4.78 % │
│ last-optims(154f58b0)   │         -27.48 % │         -58.16 % │        +18.64 % │                 -0.01 % │                 +5.02 % │                     — │
└─────────────────────────┴──────────────────┴──────────────────┴─────────────────┴─────────────────────────┴─────────────────────────┴───────────────────────┘

Stats for uniformIntDistribution[MIN_SAFE_INTEGER;MAX_SAFE_INTEGER]
┌─────────────────────────┬──────────────────┬──────────────────┬─────────────────┬─────────────────────────┬─────────────────────────┬───────────────────────┐
│ Name                    │ v3.1.0(062041a3) │ master(538c0082) │ basic(c017f2be) │ shared-arrays(1892e294) │ extract-large(40b19976) │ last-optims(154f58b0) │
├─────────────────────────┼──────────────────┼──────────────────┼─────────────────┼─────────────────────────┼─────────────────────────┼───────────────────────┤
│ v3.1.0(062041a3)        │                — │         -40.80 % │        +69.62 % │                +13.02 % │                 +6.74 % │              +10.31 % │
│ master(538c0082)        │         +68.92 % │                — │       +186.51 % │                +90.91 % │                +80.30 % │              +86.33 % │
│ basic(c017f2be)         │         -41.04 % │         -65.10 % │               — │                -33.37 % │                -37.07 % │              -34.96 % │
│ shared-arrays(1892e294) │         -11.52 % │         -47.62 % │        +50.07 % │                       — │                 -5.56 % │               -2.40 % │
│ extract-large(40b19976) │          -6.31 % │         -44.54 % │        +58.91 % │                 +5.89 % │                       — │               +3.35 % │
│ last-optims(154f58b0)   │          -9.35 % │         -46.33 % │        +53.76 % │                 +2.46 % │                 -3.24 % │                     — │
└─────────────────────────┴──────────────────┴──────────────────┴─────────────────┴─────────────────────────┴─────────────────────────┴───────────────────────┘

perf/benchmark.cjs Outdated Show resolved Hide resolved
perf/benchmark.cjs Outdated Show resolved Hide resolved
.travis.yml Outdated Show resolved Hide resolved
.travis.yml Outdated Show resolved Hide resolved
.travis.yml Outdated Show resolved Hide resolved
.travis.yml Outdated Show resolved Hide resolved
perf/benchmark.cjs Outdated Show resolved Hide resolved
@dubzzz dubzzz merged commit df3d188 into master Nov 5, 2020
@dubzzz dubzzz deleted the fix-uniformint branch November 5, 2020 20:59
@dubzzz
Copy link
Owner Author

dubzzz commented Nov 9, 2020

Let's analyze where we spend most of the time into the merged code:

Case A

        function() {
            let g = prand.xoroshiro128plus(42);
            for (let idx = 0; idx !== 1000000; ++idx) {
                g = prand.uniformIntDistribution(0, 0xffffffff+1, g)[1];
            }
        }

image

Case B

        function() {
            let g = prand.xoroshiro128plus(42);
            for (let idx = 0; idx !== 1000000; ++idx) {
                g = prand.uniformIntDistribution(Number.MIN_SAFE_INTEGER, Number.MAX_SAFE_INTEGER, g)[1];
            }
        }

image

Measured on Chrome 86.0.4240.183 (Build officiel) (64 bits)

HTML document to play with pure-rand in Chrome
<html>
  <head>
    <script type="module">
    import prand from "./lib/esm/pure-rand.js";
    const createAction = (actionName, action) => {
        const btn = document.createElement('button');
        btn.innerText = actionName;
        btn.addEventListener('click', () => {
            btn.style.color = 'green';
            setTimeout(() => {
                action();
                btn.style.color = 'unset';
            }, 0);
        });
        document.body.appendChild(btn);
    }
    createAction(
        'Range [ 0 ; 0xffffffff+1 ]',
        function() {
            let g = prand.xoroshiro128plus(42);
            for (let idx = 0; idx !== 1000000; ++idx) {
                g = prand.uniformIntDistribution(0, 0xffffffff+1, g)[1];
            }
        }
    );
    createAction(
        'Range [ MIN_SAFE_INTEGER ; MAX_SAFE_INTEGER ]',
        function() {
            let g = prand.xoroshiro128plus(42);
            for (let idx = 0; idx !== 1000000; ++idx) {
                g = prand.uniformIntDistribution(Number.MIN_SAFE_INTEGER, Number.MAX_SAFE_INTEGER, g)[1];
            }
        }
    );
    </script>
  </head>
  <body>
  </body>
</html>

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Uniform distribution is not uniform for gaps outside of 32 bits integers
2 participants