This is an automated email from the ASF dual-hosted git repository. aherbert pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/commons-rng.git
commit bd4c2258f3127817d3774a9a98690bcf97b12742 Author: aherbert <aherb...@apache.org> AuthorDate: Thu Sep 26 13:15:07 2019 +0100 Updated user guide performance table. Manually re-ran any score with a high error so that score/error < 0.03. Updated the table to use the mean of 10 runs not the median. Checked scores using a correlation of nextFloat vs nextInt and nextDouble vs nextLong should be close to 1. Manually re-ran outliers to verify the timing results. Fixed outlier MSWS. It should be the fastest int generator (results already stated it is the fastest float generator). The PCG RR variants are verified outliers (slower then expected) for nextFloat generation. Final table: double vs long R^2 = 0.9934 float vs int R^2 = 0.9831 --- src/site/apt/userguide/rng.apt | 72 +++++++++++++++++++++--------------------- 1 file changed, 36 insertions(+), 36 deletions(-) diff --git a/src/site/apt/userguide/rng.apt b/src/site/apt/userguide/rng.apt index 62c18ce..8a94456 100644 --- a/src/site/apt/userguide/rng.apt +++ b/src/site/apt/userguide/rng.apt @@ -561,77 +561,77 @@ ListSampler.shuffle(rng, list) *-----------------------*---------*---------*---------*---------*---------* || RNG identifier || <<<boolean>>> || <<<double>>> || <<<long>>> || <<<float>>> || <<<int>>> | *-----------------------+---------:---------:---------:---------:---------: -| JDK | 1 | 1 | 1 | 1 | 1 | +| JDK | 1.00000 | 1.00000 | 1.00000 | 1.00000 | 1.00000 | *-----------------------+---------:---------:---------:---------:---------: -| WELL_512_A | 1.22655 | 0.65071 | 0.62194 | 0.93623 | 0.78108 | +| WELL_512_A | 1.22756 | 0.64774 | 0.62119 | 0.93622 | 0.77620 | *-----------------------+---------:---------:---------:---------:---------: -| WELL_1024_A | 1.39152 | 0.65642 | 0.61325 | 0.94264 | 0.75083 | +| WELL_1024_A | 1.23448 | 0.64702 | 0.61258 | 0.91802 | 0.70279 | *-----------------------+---------:---------:---------:---------:---------: -| WELL_19937_A | 1.26758 | 0.95801 | 0.90653 | 1.16216 | 1.12007 | +| WELL_19937_A | 1.26780 | 0.95420 | 0.90732 | 1.16158 | 1.11143 | *-----------------------+---------:---------:---------:---------:---------: -| WELL_19937_C | 1.63209 | 1.06124 | 0.93953 | 1.20843 | 1.12656 | +| WELL_19937_C | 1.28621 | 1.05665 | 0.93851 | 1.20811 | 1.12241 | *-----------------------+---------:---------:---------:---------:---------: -| WELL_44497_A | 1.27947 | 1.05099 | 0.97995 | 1.17942 | 1.14505 | +| WELL_44497_A | 1.28290 | 1.04643 | 0.97920 | 1.18315 | 1.13812 | *-----------------------+---------:---------:---------:---------:---------: -| WELL_44497_B | 1.29627 | 1.09318 | 1.03165 | 1.27612 | 1.20631 | +| WELL_44497_B | 1.29803 | 1.08804 | 1.03050 | 1.27588 | 1.19919 | *-----------------------+---------:---------:---------:---------:---------: -| MT | 1.18432 | 0.50200 | 0.43068 | 0.68716 | 0.58454 | +| MT | 1.18727 | 0.49954 | 0.43062 | 0.69037 | 0.58075 | *-----------------------+---------:---------:---------:---------:---------: -| ISAAC | 0.98139 | 0.54663 | 0.49022 | 0.60317 | 0.51107 | +| ISAAC | 0.98206 | 0.54405 | 0.48967 | 0.60378 | 0.50929 | *-----------------------+---------:---------:---------:---------:---------: -| SPLIT_MIX_64 | 1.14366 | 0.13497 | 0.09827 | 0.28296 | 0.19552 | +| SPLIT_MIX_64 | 1.14541 | 0.13405 | 0.09897 | 0.28460 | 0.19431 | *-----------------------+---------:---------:---------:---------:---------: -| XOR_SHIFT_1024_S | 1.14959 | 0.18661 | 0.14464 | 0.34088 | 0.24819 | +| XOR_SHIFT_1024_S | 1.15061 | 0.18243 | 0.14459 | 0.34174 | 0.25242 | *-----------------------+---------:---------:---------:---------:---------: -| TWO_CMRES | 1.16246 | 0.18330 | 0.15270 | 0.34889 | 0.33741 | +| TWO_CMRES | 1.16284 | 0.18267 | 0.15281 | 0.34984 | 0.28657 | *-----------------------+---------:---------:---------:---------:---------: -| MT_64 | 1.17373 | 0.27447 | 0.23400 | 0.48126 | 0.36190 | +| MT_64 | 1.17461 | 0.27294 | 0.23374 | 0.48280 | 0.35967 | *-----------------------+---------:---------:---------:---------:---------: -| MWC_256 | 1.15806 | 0.25385 | 0.21488 | 0.36679 | 0.25665 | +| MWC_256 | 1.15759 | 0.25411 | 0.21631 | 0.36768 | 0.25554 | *-----------------------+---------:---------:---------:---------:---------: -| KISS | 1.17711 | 0.41357 | 0.41569 | 0.54175 | 0.42867 | +| KISS | 1.17760 | 0.41165 | 0.41526 | 0.54227 | 0.42641 | *-----------------------+---------:---------:---------:---------:---------: -| XOR_SHIFT_1024_S_PHI | 1.16777 | 0.18515 | 0.14398 | 0.34273 | 0.24949 | +| XOR_SHIFT_1024_S_PHI | 1.16893 | 0.18236 | 0.14382 | 0.34424 | 0.24821 | *-----------------------+---------:---------:---------:---------:---------: -| XO_RO_SHI_RO_64_S | 1.16587 | 0.18998 | 0.13528 | 0.24388 | 0.18467 | +| XO_RO_SHI_RO_64_S | 1.16685 | 0.18914 | 0.13536 | 0.24512 | 0.18364 | *-----------------------+---------:---------:---------:---------:---------: -| XO_RO_SHI_RO_64_SS | 1.17344 | 0.24622 | 0.17832 | 0.29342 | 0.20841 | +| XO_RO_SHI_RO_64_SS | 1.15470 | 0.24486 | 0.17811 | 0.29518 | 0.20803 | *-----------------------+---------:---------:---------:---------:---------: -| XO_SHI_RO_128_PLUS | 1.14797 | 0.26314 | 0.18365 | 0.32612 | 0.25379 | +| XO_SHI_RO_128_PLUS | 1.15176 | 0.26227 | 0.18374 | 0.32524 | 0.25558 | *-----------------------+---------:---------:---------:---------:---------: -| XO_SHI_RO_128_SS | 1.15925 | 0.32620 | 0.25970 | 0.58654 | 0.28701 | +| XO_SHI_RO_128_SS | 1.15975 | 0.32451 | 0.25989 | 0.40865 | 0.28614 | *-----------------------+---------:---------:---------:---------:---------: -| XO_RO_SHI_RO_128_PLUS | 1.15165 | 0.10623 | 0.08201 | 0.25829 | 0.17334 | +| XO_RO_SHI_RO_128_PLUS | 1.16683 | 0.10546 | 0.08192 | 0.25955 | 0.17326 | *-----------------------+---------:---------:---------:---------:---------: -| XO_RO_SHI_RO_128_SS | 1.15669 | 0.13465 | 0.10156 | 0.27627 | 0.20088 | +| XO_RO_SHI_RO_128_SS | 1.15738 | 0.13400 | 0.10186 | 0.27885 | 0.19879 | *-----------------------+---------:---------:---------:---------:---------: -| XO_SHI_RO_256_PLUS | 1.14012 | 0.13972 | 0.11090 | 0.29441 | 0.21667 | +| XO_SHI_RO_256_PLUS | 1.14354 | 0.14036 | 0.11078 | 0.29566 | 0.21558 | *-----------------------+---------:---------:---------:---------:---------: -| XO_SHI_RO_256_SS | 1.14601 | 0.17540 | 0.12801 | 0.32067 | 0.23569 | +| XO_SHI_RO_256_SS | 1.14810 | 0.17469 | 0.12788 | 0.32338 | 0.23577 | *-----------------------+---------:---------:---------:---------:---------: -| XO_SHI_RO_512_PLUS | 1.17019 | 0.25455 | 0.19365 | 0.40153 | 0.34492 | +| XO_SHI_RO_512_PLUS | 1.16148 | 0.25360 | 0.19347 | 0.40327 | 0.34086 | *-----------------------+---------:---------:---------:---------:---------: -| XO_SHI_RO_512_SS | 1.16127 | 0.27050 | 0.21896 | 0.41566 | 0.35364 | +| XO_SHI_RO_512_SS | 1.16359 | 0.27005 | 0.21910 | 0.41828 | 0.35155 | *-----------------------+---------:---------:---------:---------:---------: -| PCG_XSH_RR_32 | 0.94110 | 0.30309 | 0.26161 | 0.39280 | 0.19952 | +| PCG_XSH_RR_32 | 0.94365 | 0.30150 | 0.26162 | 0.39426 | 0.19832 | *-----------------------+---------:---------:---------:---------:---------: -| PCG_XSH_RS_32 | 0.94289 | 0.24067 | 0.18844 | 0.29202 | 0.20038 | +| PCG_XSH_RS_32 | 0.94766 | 0.23958 | 0.18884 | 0.29117 | 0.20081 | *-----------------------+---------:---------:---------:---------:---------: -| PCG_RXS_M_XS_64 | 1.14866 | 0.13325 | 0.11365 | 0.29439 | 0.20838 | +| PCG_RXS_M_XS_64 | 1.15168 | 0.13238 | 0.11352 | 0.29651 | 0.20707 | *-----------------------+---------:---------:---------:---------:---------: -| PCG_MCG_XSH_RR_32 | 0.94086 | 0.29029 | 0.28379 | 0.36289 | 0.17871 | +| PCG_MCG_XSH_RR_32 | 0.94123 | 0.28870 | 0.28352 | 0.36381 | 0.17816 | *-----------------------+---------:---------:---------:---------:---------: -| PCG_MCG_XSH_RS_32 | 0.93713 | 0.22664 | 0.17866 | 0.26299 | 0.16919 | +| PCG_MCG_XSH_RS_32 | 0.93742 | 0.22574 | 0.17845 | 0.26411 | 0.16822 | *-----------------------+---------:---------:---------:---------:---------: -| MSWS | 1.12773 | 0.17979 | 0.15224 | 0.23583 | 0.19053 | +| MSWS | 1.12821 | 0.17897 | 0.15428 | 0.23731 | 0.15224 | *-----------------------+---------:---------:---------:---------:---------: -| SFC_32 | 1.14919 | 0.28371 | 0.19399 | 0.32854 | 0.26122 | +| SFC_32 | 1.15334 | 0.28210 | 0.19387 | 0.32224 | 0.26020 | *-----------------------+---------:---------:---------:---------:---------: -| SFC_64 | 1.13896 | 0.14117 | 0.26818 | 0.31351 | 0.23760 | +| SFC_64 | 1.13927 | 0.14057 | 0.11686 | 0.31031 | 0.23761 | *-----------------------+---------:---------:---------:---------:---------: -| JSF_32 | 1.14369 | 0.24454 | 0.17016 | 0.29664 | 0.22666 | +| JSF_32 | 1.14659 | 0.24439 | 0.17106 | 0.29932 | 0.22710 | *-----------------------+---------:---------:---------:---------:---------: -| JSF_64 | 1.13731 | 0.13444 | 0.10965 | 0.27864 | 0.21230 | +| JSF_64 | 1.13970 | 0.13366 | 0.10999 | 0.28153 | 0.21406 | *-----------------------+---------:---------:---------:---------:---------: The <<<RandomSource.JDK>>> generator uses thread-safe (synchronized) <<<int>>> generation which has a performance overhead (see the <<<int>>> generation results). For the <<<boolean>>> generation the synchronization occurs 1 in 32 calls and the resulting performance is good. However the output will be low quality and this generator should not be used. See the {{{a5._Quality}Quality}} section for details.