{"id":21206218,"url":"https://github.com/rtmigo/rng_benchmark_kt","last_synced_at":"2026-04-27T18:34:41.092Z","repository":{"id":138533268,"uuid":"480145269","full_name":"rtmigo/rng_benchmark_kt","owner":"rtmigo","description":"Benchmarking thread-safe ways to generate a single random normalized gaussian value in Kotlin/JVM","archived":false,"fork":false,"pushed_at":"2022-04-13T00:19:57.000Z","size":116,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"dev","last_synced_at":"2025-06-08T23:35:16.858Z","etag":null,"topics":["benchmark","gaussian","gaussian-distribution","java","kotlin","prng","random","rng"],"latest_commit_sha":null,"homepage":"","language":"Kotlin","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/rtmigo.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-04-10T21:33:02.000Z","updated_at":"2022-04-11T04:29:17.000Z","dependencies_parsed_at":"2023-07-12T03:46:30.626Z","dependency_job_id":null,"html_url":"https://github.com/rtmigo/rng_benchmark_kt","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/rtmigo/rng_benchmark_kt","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rtmigo%2Frng_benchmark_kt","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rtmigo%2Frng_benchmark_kt/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rtmigo%2Frng_benchmark_kt/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rtmigo%2Frng_benchmark_kt/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/rtmigo","download_url":"https://codeload.github.com/rtmigo/rng_benchmark_kt/tar.gz/refs/heads/dev","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rtmigo%2Frng_benchmark_kt/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32349822,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-27T17:12:42.749Z","status":"ssl_error","status_checked_at":"2026-04-27T17:12:41.658Z","response_time":128,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["benchmark","gaussian","gaussian-distribution","java","kotlin","prng","random","rng"],"created_at":"2024-11-20T20:54:51.730Z","updated_at":"2026-04-27T18:34:41.074Z","avatar_url":"https://github.com/rtmigo.png","language":"Kotlin","funding_links":[],"categories":[],"sub_categories":[],"readme":"Benchmarking thread-safe ways to generate a single random normalized gaussian value in Kotlin/JVM.\n\nComparing:\n- `java.util.Random().nextGaussian()`\n  - **[A1]** creating new `Random` object instance for each sample\n  - **[A2]** reusing `Random` in `synchronous` block\n- **[B]** `java.util.concurrent.ThreadLocalRandom.current().nextGaussian()` \n- **[C]** `kotlin.math.Random.nextDouble(...)` with [Box–Muller transform](http://www.java2s.com/example/java-utility-method/gaussian/gaussian-973fd.html) extension \n- `org.apache.commons.rng.simple.ThreadLocalRandomSource.current(...)`\n  - **[D1]** with new `ZigguratSampler` instance for each sample\n  - **[D2]** with Box–Muller transform extension \n- **[E]** reusing `org.apache.commons.math3.random.SynchronizedRandomGenerator`\n\nSee [source](https://github.com/rtmigo/rng_benchmark_kt/blob/dev/src/main/kotlin/Main.kt) for details.\n\n- SINGLE_THREAD: Accessing thread-safe generator from single thread\n\n- LARGE_COROUTINES: Starting six coroutines in parallel and generating many\n  samples in each of them\n \n- SMALL_COROUTINES: Starting and stopping parallel coroutines multiple times to\n  generate single samples in each of them\n\n# Results\n\non Intel© Core™ i7-8700K CPU @ 3.70GHz × 6, Linux 5.13.0-27-generic\n\nPercentage is time, lower values are better (faster).\n\n```text\n================================================================================\nRESULTS SINGLE_THREAD @ 2022-04-12T22:08:51.133317Z\n================================================================================\nJVM 11.0.14 Kotlin 1.6.20\n\n100.00% [D1] ZigguratSampler ThreadLocalRandomSource MSWS\n100.83% [D1] ZigguratSampler ThreadLocalRandomSource SPLIT_MIX_64\n110.25% [D1] ZigguratSampler ThreadLocalRandomSource XO_RO_SHI_RO_128_PLUS\n110.97% [D1] ZigguratSampler ThreadLocalRandomSource XO_RO_SHI_RO_128_SS\n111.39% [D1] ZigguratSampler ThreadLocalRandomSource XO_SHI_RO_256_PLUS\n112.01% [D1] ZigguratSampler ThreadLocalRandomSource XO_RO_SHI_RO_128_PP\n112.73% [D1] ZigguratSampler ThreadLocalRandomSource SFC_64\n112.84% [D1] ZigguratSampler ThreadLocalRandomSource PCG_RXS_M_XS_64\n112.84% [D1] ZigguratSampler ThreadLocalRandomSource XO_SHI_RO_256_PP\n113.77% [D1] ZigguratSampler ThreadLocalRandomSource XO_SHI_RO_256_SS\n113.87% [D1] ZigguratSampler ThreadLocalRandomSource XO_RO_SHI_RO_1024_S\n115.84% [D1] ZigguratSampler ThreadLocalRandomSource JSF_64\n116.36% [D1] ZigguratSampler ThreadLocalRandomSource XO_RO_SHI_RO_1024_PP\n116.36% [D1] ZigguratSampler ThreadLocalRandomSource XO_RO_SHI_RO_1024_SS\n117.29% [D1] ZigguratSampler ThreadLocalRandomSource TWO_CMRES\n118.12% [D1] ZigguratSampler ThreadLocalRandomSource XOR_SHIFT_1024_S_PHI\n118.43% [D1] ZigguratSampler ThreadLocalRandomSource XO_SHI_RO_512_SS\n119.05% [D1] ZigguratSampler ThreadLocalRandomSource XO_SHI_RO_512_PLUS\n119.25% [D1] ZigguratSampler ThreadLocalRandomSource XOR_SHIFT_1024_S\n121.22% [D1] ZigguratSampler ThreadLocalRandomSource XO_SHI_RO_512_PP\n124.43% [D1] ZigguratSampler ThreadLocalRandomSource PCG_RXS_M_XS_64_OS\n124.74% [D1] ZigguratSampler ThreadLocalRandomSource XO_RO_SHI_RO_64_S\n124.84% [D1] ZigguratSampler ThreadLocalRandomSource PCG_XSH_RR_32_OS\n126.40% [D1] ZigguratSampler ThreadLocalRandomSource XO_RO_SHI_RO_64_SS\n126.92% [D1] ZigguratSampler ThreadLocalRandomSource PCG_XSH_RS_32\n127.02% [D1] ZigguratSampler ThreadLocalRandomSource PCG_XSH_RS_32_OS\n127.12% [D1] ZigguratSampler ThreadLocalRandomSource PCG_XSH_RR_32\n127.23% [D1] ZigguratSampler ThreadLocalRandomSource SFC_32\n127.95% [D1] ZigguratSampler ThreadLocalRandomSource PCG_MCG_XSH_RS_32\n128.47% [D1] ZigguratSampler ThreadLocalRandomSource JSF_32\n130.02% [D1] ZigguratSampler ThreadLocalRandomSource XO_SHI_RO_128_PP\n130.95% [D1] ZigguratSampler ThreadLocalRandomSource XO_SHI_RO_128_SS\n131.47% [D1] ZigguratSampler ThreadLocalRandomSource XO_SHI_RO_128_PLUS\n133.13% [D1] ZigguratSampler ThreadLocalRandomSource MT_64\n139.44% [D1] ZigguratSampler ThreadLocalRandomSource PCG_MCG_XSH_RR_32\n144.10% [D1] ZigguratSampler ThreadLocalRandomSource MWC_256\n145.96% [D1] ZigguratSampler ThreadLocalRandomSource MT\n149.69% [D1] ZigguratSampler ThreadLocalRandomSource KISS\n152.69% [D1] ZigguratSampler ThreadLocalRandomSource WELL_512_A\n159.01% [D1] ZigguratSampler ThreadLocalRandomSource ISAAC\n185.82% [D1] ZigguratSampler ThreadLocalRandomSource WELL_1024_A\n188.41% [D1] ZigguratSampler ThreadLocalRandomSource JDK\n198.03% [C] kotlin.random.Random.boxMullerGaussian()\n207.45% [D1] ZigguratSampler ThreadLocalRandomSource WELL_19937_A\n207.87% [D1] ZigguratSampler ThreadLocalRandomSource WELL_19937_C\n212.53% [D1] ZigguratSampler ThreadLocalRandomSource WELL_44497_A\n216.25% [D1] ZigguratSampler ThreadLocalRandomSource WELL_44497_B\n223.60% [B] ThreadLocalRandom.current().nextGaussian()\n242.13% [D2] boxMullerGaussian() ThreadLocalRandomSource XO_RO_SHI_RO_128_PLUS\n247.93% [D2] boxMullerGaussian() ThreadLocalRandomSource XO_SHI_RO_256_PLUS\n249.17% [D2] boxMullerGaussian() ThreadLocalRandomSource SFC_64\n249.69% [D2] boxMullerGaussian() ThreadLocalRandomSource JSF_64\n254.24% [D2] boxMullerGaussian() ThreadLocalRandomSource XO_RO_SHI_RO_128_SS\n254.45% [D2] boxMullerGaussian() ThreadLocalRandomSource XO_SHI_RO_256_PP\n257.04% [D2] boxMullerGaussian() ThreadLocalRandomSource XO_SHI_RO_512_PLUS\n260.46% [D2] boxMullerGaussian() ThreadLocalRandomSource XO_SHI_RO_256_SS\n261.80% [D2] boxMullerGaussian() ThreadLocalRandomSource SPLIT_MIX_64\n263.46% [D2] boxMullerGaussian() ThreadLocalRandomSource PCG_RXS_M_XS_64\n264.91% [D2] boxMullerGaussian() ThreadLocalRandomSource XO_RO_SHI_RO_128_PP\n270.19% [D2] boxMullerGaussian() ThreadLocalRandomSource XO_SHI_RO_512_SS\n271.74% [D2] boxMullerGaussian() ThreadLocalRandomSource XO_RO_SHI_RO_1024_S\n272.98% [D2] boxMullerGaussian() ThreadLocalRandomSource XO_RO_SHI_RO_1024_PP\n275.47% [D2] boxMullerGaussian() ThreadLocalRandomSource TWO_CMRES\n277.43% [D2] boxMullerGaussian() ThreadLocalRandomSource XO_SHI_RO_512_PP\n277.54% [D2] boxMullerGaussian() ThreadLocalRandomSource XOR_SHIFT_1024_S_PHI\n278.67% [D2] boxMullerGaussian() ThreadLocalRandomSource XOR_SHIFT_1024_S\n279.92% [D2] boxMullerGaussian() ThreadLocalRandomSource PCG_RXS_M_XS_64_OS\n284.89% [D2] boxMullerGaussian() ThreadLocalRandomSource XO_RO_SHI_RO_1024_SS\n295.76% [D2] boxMullerGaussian() ThreadLocalRandomSource MSWS\n295.96% [D2] boxMullerGaussian() ThreadLocalRandomSource XO_RO_SHI_RO_64_S\n301.04% [D2] boxMullerGaussian() ThreadLocalRandomSource XO_RO_SHI_RO_64_SS\n301.76% [D2] boxMullerGaussian() ThreadLocalRandomSource PCG_MCG_XSH_RS_32\n302.90% [D2] boxMullerGaussian() ThreadLocalRandomSource SFC_32\n303.21% [D2] boxMullerGaussian() ThreadLocalRandomSource MT_64\n304.24% [D2] boxMullerGaussian() ThreadLocalRandomSource PCG_XSH_RS_32\n304.55% [D2] boxMullerGaussian() ThreadLocalRandomSource PCG_XSH_RR_32\n304.55% [D2] boxMullerGaussian() ThreadLocalRandomSource PCG_XSH_RR_32_OS\n304.97% [D2] boxMullerGaussian() ThreadLocalRandomSource PCG_XSH_RS_32_OS\n305.69% [D2] boxMullerGaussian() ThreadLocalRandomSource JSF_32\n310.97% [E] SynchronizedRandomGenerator MersenneTwister\n311.18% [D2] boxMullerGaussian() ThreadLocalRandomSource XO_SHI_RO_128_PP\n315.94% [D2] boxMullerGaussian() ThreadLocalRandomSource XO_SHI_RO_128_PLUS\n317.18% [D2] boxMullerGaussian() ThreadLocalRandomSource PCG_MCG_XSH_RR_32\n318.32% [D2] boxMullerGaussian() ThreadLocalRandomSource XO_SHI_RO_128_SS\n319.77% [A2] java.util.Random: synchronized reuse\n325.67% [D2] boxMullerGaussian() ThreadLocalRandomSource MWC_256\n349.90% [D2] boxMullerGaussian() ThreadLocalRandomSource KISS\n350.93% [E] SynchronizedRandomGenerator Well19937c\n364.60% [D2] boxMullerGaussian() ThreadLocalRandomSource MT\n386.34% [D2] boxMullerGaussian() ThreadLocalRandomSource ISAAC\n421.95% [D2] boxMullerGaussian() ThreadLocalRandomSource WELL_512_A\n426.29% [D2] boxMullerGaussian() ThreadLocalRandomSource WELL_1024_A\n485.82% [D2] boxMullerGaussian() ThreadLocalRandomSource JDK\n487.47% [D2] boxMullerGaussian() ThreadLocalRandomSource WELL_19937_A\n490.99% [D2] boxMullerGaussian() ThreadLocalRandomSource WELL_19937_C\n492.24% [D2] boxMullerGaussian() ThreadLocalRandomSource WELL_44497_A\n509.83% [D2] boxMullerGaussian() ThreadLocalRandomSource WELL_44497_B\n712.22% [A1] java.util.Random: create for each call\n\n================================================================================\nRESULTS LARGE_COROUTINES @ 2022-04-12T22:12:07.696790Z\n================================================================================\nJVM 11.0.14 Kotlin 1.6.20\n\n100.00% [D1] ZigguratSampler ThreadLocalRandomSource SPLIT_MIX_64\n105.99% [D1] ZigguratSampler ThreadLocalRandomSource PCG_RXS_M_XS_64_OS\n107.68% [D1] ZigguratSampler ThreadLocalRandomSource XO_RO_SHI_RO_128_PLUS\n109.15% [D1] ZigguratSampler ThreadLocalRandomSource XOR_SHIFT_1024_S_PHI\n109.49% [D1] ZigguratSampler ThreadLocalRandomSource XO_SHI_RO_256_PLUS\n110.06% [D1] ZigguratSampler ThreadLocalRandomSource TWO_CMRES\n110.62% [D1] ZigguratSampler ThreadLocalRandomSource XO_RO_SHI_RO_64_S\n110.85% [D1] ZigguratSampler ThreadLocalRandomSource XOR_SHIFT_1024_S\n111.64% [D1] ZigguratSampler ThreadLocalRandomSource XO_RO_SHI_RO_128_SS\n112.09% [D1] ZigguratSampler ThreadLocalRandomSource MSWS\n113.11% [D1] ZigguratSampler ThreadLocalRandomSource XO_RO_SHI_RO_128_PP\n113.90% [D1] ZigguratSampler ThreadLocalRandomSource XO_RO_SHI_RO_1024_SS\n114.35% [D1] ZigguratSampler ThreadLocalRandomSource PCG_XSH_RS_32_OS\n114.80% [D1] ZigguratSampler ThreadLocalRandomSource XO_SHI_RO_256_PP\n115.48% [D1] ZigguratSampler ThreadLocalRandomSource XO_RO_SHI_RO_1024_S\n115.82% [D1] ZigguratSampler ThreadLocalRandomSource PCG_XSH_RR_32_OS\n116.61% [D1] ZigguratSampler ThreadLocalRandomSource XO_SHI_RO_256_SS\n117.97% [D1] ZigguratSampler ThreadLocalRandomSource XO_RO_SHI_RO_1024_PP\n118.64% [D1] ZigguratSampler ThreadLocalRandomSource MT_64\n120.00% [D1] ZigguratSampler ThreadLocalRandomSource XO_RO_SHI_RO_64_SS\n121.69% [D1] ZigguratSampler ThreadLocalRandomSource XO_SHI_RO_512_PP\n123.50% [D1] ZigguratSampler ThreadLocalRandomSource XO_SHI_RO_128_PLUS\n124.18% [D1] ZigguratSampler ThreadLocalRandomSource PCG_RXS_M_XS_64\n124.29% [D1] ZigguratSampler ThreadLocalRandomSource SFC_64\n125.42% [D1] ZigguratSampler ThreadLocalRandomSource MWC_256\n126.78% [D1] ZigguratSampler ThreadLocalRandomSource XO_SHI_RO_512_PLUS\n128.36% [D1] ZigguratSampler ThreadLocalRandomSource XO_SHI_RO_128_SS\n130.28% [D1] ZigguratSampler ThreadLocalRandomSource JSF_64\n131.98% [D1] ZigguratSampler ThreadLocalRandomSource KISS\n132.32% [D1] ZigguratSampler ThreadLocalRandomSource XO_SHI_RO_512_SS\n136.61% [D1] ZigguratSampler ThreadLocalRandomSource PCG_XSH_RR_32\n137.40% [D1] ZigguratSampler ThreadLocalRandomSource PCG_XSH_RS_32\n139.66% [D1] ZigguratSampler ThreadLocalRandomSource XO_SHI_RO_128_PP\n140.56% [D1] ZigguratSampler ThreadLocalRandomSource PCG_MCG_XSH_RR_32\n141.36% [D1] ZigguratSampler ThreadLocalRandomSource JSF_32\n142.82% [D1] ZigguratSampler ThreadLocalRandomSource SFC_32\n147.68% [D1] ZigguratSampler ThreadLocalRandomSource PCG_MCG_XSH_RS_32\n148.59% [D1] ZigguratSampler ThreadLocalRandomSource MT\n150.40% [D1] ZigguratSampler ThreadLocalRandomSource WELL_512_A\n158.76% [D1] ZigguratSampler ThreadLocalRandomSource ISAAC\n180.34% [C] kotlin.random.Random.boxMullerGaussian()\n195.59% [D1] ZigguratSampler ThreadLocalRandomSource WELL_1024_A\n201.69% [D1] ZigguratSampler ThreadLocalRandomSource JDK\n208.25% [B] ThreadLocalRandom.current().nextGaussian()\n223.05% [D1] ZigguratSampler ThreadLocalRandomSource WELL_19937_A\n224.97% [D1] ZigguratSampler ThreadLocalRandomSource WELL_44497_A\n229.04% [D2] boxMullerGaussian() ThreadLocalRandomSource PCG_RXS_M_XS_64\n229.72% [D1] ZigguratSampler ThreadLocalRandomSource WELL_19937_C\n229.94% [D1] ZigguratSampler ThreadLocalRandomSource WELL_44497_B\n234.12% [D2] boxMullerGaussian() ThreadLocalRandomSource XO_RO_SHI_RO_128_PLUS\n234.92% [D2] boxMullerGaussian() ThreadLocalRandomSource XO_SHI_RO_256_PLUS\n237.40% [D2] boxMullerGaussian() ThreadLocalRandomSource XO_SHI_RO_512_PLUS\n238.08% [D2] boxMullerGaussian() ThreadLocalRandomSource SPLIT_MIX_64\n242.49% [D2] boxMullerGaussian() ThreadLocalRandomSource XO_RO_SHI_RO_128_SS\n243.84% [D2] boxMullerGaussian() ThreadLocalRandomSource PCG_RXS_M_XS_64_OS\n244.63% [D2] boxMullerGaussian() ThreadLocalRandomSource XO_SHI_RO_256_SS\n246.55% [D2] boxMullerGaussian() ThreadLocalRandomSource TWO_CMRES\n246.89% [D2] boxMullerGaussian() ThreadLocalRandomSource XOR_SHIFT_1024_S\n247.12% [D2] boxMullerGaussian() ThreadLocalRandomSource SFC_64\n252.77% [D2] boxMullerGaussian() ThreadLocalRandomSource XO_SHI_RO_512_SS\n255.59% [D2] boxMullerGaussian() ThreadLocalRandomSource XO_RO_SHI_RO_128_PP\n258.53% [D2] boxMullerGaussian() ThreadLocalRandomSource XO_SHI_RO_256_PP\n260.00% [D2] boxMullerGaussian() ThreadLocalRandomSource XO_RO_SHI_RO_1024_S\n262.15% [D2] boxMullerGaussian() ThreadLocalRandomSource JSF_64\n265.76% [D2] boxMullerGaussian() ThreadLocalRandomSource PCG_XSH_RR_32\n266.55% [D2] boxMullerGaussian() ThreadLocalRandomSource PCG_XSH_RS_32\n268.59% [D2] boxMullerGaussian() ThreadLocalRandomSource XO_RO_SHI_RO_1024_SS\n269.15% [D2] boxMullerGaussian() ThreadLocalRandomSource MT_64\n269.60% [D2] boxMullerGaussian() ThreadLocalRandomSource XOR_SHIFT_1024_S_PHI\n269.94% [D2] boxMullerGaussian() ThreadLocalRandomSource XO_RO_SHI_RO_1024_PP\n275.48% [D2] boxMullerGaussian() ThreadLocalRandomSource PCG_XSH_RS_32_OS\n276.16% [D2] boxMullerGaussian() ThreadLocalRandomSource PCG_MCG_XSH_RR_32\n278.87% [D2] boxMullerGaussian() ThreadLocalRandomSource MSWS\n280.23% [D2] boxMullerGaussian() ThreadLocalRandomSource PCG_MCG_XSH_RS_32\n281.24% [D2] boxMullerGaussian() ThreadLocalRandomSource XO_RO_SHI_RO_64_S\n282.37% [A2] java.util.Random: synchronized reuse\n283.28% [D2] boxMullerGaussian() ThreadLocalRandomSource PCG_XSH_RR_32_OS\n284.07% [D2] boxMullerGaussian() ThreadLocalRandomSource XO_SHI_RO_512_PP\n286.10% [D2] boxMullerGaussian() ThreadLocalRandomSource XO_RO_SHI_RO_64_SS\n288.25% [D2] boxMullerGaussian() ThreadLocalRandomSource MWC_256\n289.94% [E] SynchronizedRandomGenerator MersenneTwister\n291.75% [D2] boxMullerGaussian() ThreadLocalRandomSource SFC_32\n294.35% [D2] boxMullerGaussian() ThreadLocalRandomSource XO_SHI_RO_128_PLUS\n298.19% [D2] boxMullerGaussian() ThreadLocalRandomSource XO_SHI_RO_128_SS\n307.12% [D2] boxMullerGaussian() ThreadLocalRandomSource JSF_32\n318.08% [D2] boxMullerGaussian() ThreadLocalRandomSource XO_SHI_RO_128_PP\n320.90% [E] SynchronizedRandomGenerator Well19937c\n323.50% [D2] boxMullerGaussian() ThreadLocalRandomSource KISS\n365.99% [D2] boxMullerGaussian() ThreadLocalRandomSource ISAAC\n367.01% [D2] boxMullerGaussian() ThreadLocalRandomSource MT\n403.73% [D2] boxMullerGaussian() ThreadLocalRandomSource WELL_512_A\n423.39% [D2] boxMullerGaussian() ThreadLocalRandomSource WELL_1024_A\n443.28% [D2] boxMullerGaussian() ThreadLocalRandomSource JDK\n510.73% [D2] boxMullerGaussian() ThreadLocalRandomSource WELL_19937_A\n522.37% [D2] boxMullerGaussian() ThreadLocalRandomSource WELL_44497_A\n529.38% [D2] boxMullerGaussian() ThreadLocalRandomSource WELL_19937_C\n536.95% [D2] boxMullerGaussian() ThreadLocalRandomSource WELL_44497_B\n642.60% [A1] java.util.Random: create for each call\n\n================================================================================\nRESULTS SMALL_COROUTINES @ 2022-04-12T23:25:13.716032Z\n================================================================================\nJVM 11.0.14 Kotlin 1.6.20\n\n100.00% [D1] ZigguratSampler ThreadLocalRandomSource SFC_64\n100.03% [D1] ZigguratSampler ThreadLocalRandomSource MSWS\n100.09% [D1] ZigguratSampler ThreadLocalRandomSource XOR_SHIFT_1024_S\n100.12% [D1] ZigguratSampler ThreadLocalRandomSource XO_SHI_RO_512_SS\n100.55% [D1] ZigguratSampler ThreadLocalRandomSource PCG_RXS_M_XS_64\n100.55% [D1] ZigguratSampler ThreadLocalRandomSource XO_RO_SHI_RO_1024_S\n100.61% [D1] ZigguratSampler ThreadLocalRandomSource XOR_SHIFT_1024_S_PHI\n100.61% [D1] ZigguratSampler ThreadLocalRandomSource XO_SHI_RO_256_PLUS\n100.61% [D1] ZigguratSampler ThreadLocalRandomSource PCG_MCG_XSH_RR_32\n100.61% [D1] ZigguratSampler ThreadLocalRandomSource XO_RO_SHI_RO_1024_SS\n100.63% [D1] ZigguratSampler ThreadLocalRandomSource XO_RO_SHI_RO_128_PLUS\n100.63% [D1] ZigguratSampler ThreadLocalRandomSource PCG_XSH_RR_32_OS\n100.66% [D1] ZigguratSampler ThreadLocalRandomSource PCG_XSH_RS_32_OS\n100.75% [D1] ZigguratSampler ThreadLocalRandomSource XO_SHI_RO_512_PLUS\n100.84% [D1] ZigguratSampler ThreadLocalRandomSource XO_RO_SHI_RO_1024_PP\n100.92% [D1] ZigguratSampler ThreadLocalRandomSource JSF_64\n100.92% [D1] ZigguratSampler ThreadLocalRandomSource XO_SHI_RO_256_PP\n100.95% [D1] ZigguratSampler ThreadLocalRandomSource XO_SHI_RO_128_PLUS\n100.95% [D1] ZigguratSampler ThreadLocalRandomSource PCG_XSH_RS_32\n100.95% [D1] ZigguratSampler ThreadLocalRandomSource XO_RO_SHI_RO_128_PP\n101.04% [D1] ZigguratSampler ThreadLocalRandomSource JSF_32\n101.04% [D1] ZigguratSampler ThreadLocalRandomSource XO_SHI_RO_512_PP\n101.07% [D1] ZigguratSampler ThreadLocalRandomSource XO_RO_SHI_RO_64_S\n101.12% [D1] ZigguratSampler ThreadLocalRandomSource XO_SHI_RO_128_SS\n101.15% [D1] ZigguratSampler ThreadLocalRandomSource PCG_XSH_RR_32\n101.24% [B] ThreadLocalRandom.current().nextGaussian()\n101.24% [D1] ZigguratSampler ThreadLocalRandomSource PCG_RXS_M_XS_64_OS\n101.27% [D1] ZigguratSampler ThreadLocalRandomSource XO_RO_SHI_RO_64_SS\n101.30% [D1] ZigguratSampler ThreadLocalRandomSource XO_SHI_RO_256_SS\n101.38% [D1] ZigguratSampler ThreadLocalRandomSource PCG_MCG_XSH_RS_32\n101.41% [D1] ZigguratSampler ThreadLocalRandomSource MT_64\n101.44% [D1] ZigguratSampler ThreadLocalRandomSource MT\n101.44% [D1] ZigguratSampler ThreadLocalRandomSource XO_RO_SHI_RO_128_SS\n101.67% [D1] ZigguratSampler ThreadLocalRandomSource WELL_512_A\n101.67% [D1] ZigguratSampler ThreadLocalRandomSource SFC_32\n101.73% [D1] ZigguratSampler ThreadLocalRandomSource KISS\n101.90% [D1] ZigguratSampler ThreadLocalRandomSource ISAAC\n101.90% [D1] ZigguratSampler ThreadLocalRandomSource XO_SHI_RO_128_PP\n102.11% [D1] ZigguratSampler ThreadLocalRandomSource TWO_CMRES\n102.28% [D2] boxMullerGaussian() ThreadLocalRandomSource SFC_64\n102.39% [D1] ZigguratSampler ThreadLocalRandomSource WELL_44497_B\n102.48% [D1] ZigguratSampler ThreadLocalRandomSource WELL_44497_A\n102.74% [D1] ZigguratSampler ThreadLocalRandomSource WELL_19937_C\n103.03% [D2] boxMullerGaussian() ThreadLocalRandomSource XO_SHI_RO_512_PP\n103.06% [D2] boxMullerGaussian() ThreadLocalRandomSource XO_SHI_RO_256_SS\n103.06% [D2] boxMullerGaussian() ThreadLocalRandomSource PCG_RXS_M_XS_64\n103.14% [D2] boxMullerGaussian() ThreadLocalRandomSource XO_RO_SHI_RO_128_PP\n103.32% [D2] boxMullerGaussian() ThreadLocalRandomSource XO_RO_SHI_RO_128_SS\n103.37% [D2] boxMullerGaussian() ThreadLocalRandomSource XOR_SHIFT_1024_S_PHI\n103.37% [D2] boxMullerGaussian() ThreadLocalRandomSource PCG_RXS_M_XS_64_OS\n103.40% [D2] boxMullerGaussian() ThreadLocalRandomSource XO_RO_SHI_RO_1024_SS\n103.49% [D2] boxMullerGaussian() ThreadLocalRandomSource XO_SHI_RO_256_PP\n103.52% [D2] boxMullerGaussian() ThreadLocalRandomSource XO_RO_SHI_RO_64_S\n103.52% [D2] boxMullerGaussian() ThreadLocalRandomSource XO_SHI_RO_256_PLUS\n103.55% [D2] boxMullerGaussian() ThreadLocalRandomSource XO_RO_SHI_RO_128_PLUS\n103.66% [D2] boxMullerGaussian() ThreadLocalRandomSource TWO_CMRES\n103.66% [D2] boxMullerGaussian() ThreadLocalRandomSource MT_64\n103.69% [D2] boxMullerGaussian() ThreadLocalRandomSource XO_SHI_RO_512_SS\n103.75% [D2] boxMullerGaussian() ThreadLocalRandomSource PCG_MCG_XSH_RS_32\n103.78% [C] kotlin.random.Random.boxMullerGaussian()\n103.84% [D2] boxMullerGaussian() ThreadLocalRandomSource XO_RO_SHI_RO_1024_PP\n103.87% [D2] boxMullerGaussian() ThreadLocalRandomSource XOR_SHIFT_1024_S\n103.92% [D2] boxMullerGaussian() ThreadLocalRandomSource XO_SHI_RO_512_PLUS\n103.98% [D2] boxMullerGaussian() ThreadLocalRandomSource XO_RO_SHI_RO_1024_S\n103.98% [D2] boxMullerGaussian() ThreadLocalRandomSource PCG_XSH_RR_32_OS\n104.07% [D2] boxMullerGaussian() ThreadLocalRandomSource XO_RO_SHI_RO_64_SS\n104.12% [D2] boxMullerGaussian() ThreadLocalRandomSource JSF_64\n104.15% [D2] boxMullerGaussian() ThreadLocalRandomSource MSWS\n104.24% [D2] boxMullerGaussian() ThreadLocalRandomSource PCG_MCG_XSH_RR_32\n104.30% [D2] boxMullerGaussian() ThreadLocalRandomSource XO_SHI_RO_128_SS\n104.59% [D2] boxMullerGaussian() ThreadLocalRandomSource PCG_XSH_RS_32_OS\n104.73% [D2] boxMullerGaussian() ThreadLocalRandomSource XO_SHI_RO_128_PLUS\n104.82% [D2] boxMullerGaussian() ThreadLocalRandomSource PCG_XSH_RR_32\n104.93% [D2] boxMullerGaussian() ThreadLocalRandomSource JSF_32\n104.96% [D2] boxMullerGaussian() ThreadLocalRandomSource MWC_256\n105.05% [D2] boxMullerGaussian() ThreadLocalRandomSource KISS\n105.11% [E] SynchronizedRandomGenerator MersenneTwister\n105.16% [D2] boxMullerGaussian() ThreadLocalRandomSource SPLIT_MIX_64\n105.36% [D2] boxMullerGaussian() ThreadLocalRandomSource SFC_32\n105.36% [D2] boxMullerGaussian() ThreadLocalRandomSource XO_SHI_RO_128_PP\n105.65% [D2] boxMullerGaussian() ThreadLocalRandomSource PCG_XSH_RS_32\n106.14% [D2] boxMullerGaussian() ThreadLocalRandomSource MT\n106.49% [E] SynchronizedRandomGenerator Well19937c\n106.89% [D2] boxMullerGaussian() ThreadLocalRandomSource ISAAC\n107.15% [A2] java.util.Random: synchronized reuse\n107.50% [D2] boxMullerGaussian() ThreadLocalRandomSource WELL_1024_A\n107.90% [D2] boxMullerGaussian() ThreadLocalRandomSource WELL_512_A\n109.55% [D2] boxMullerGaussian() ThreadLocalRandomSource WELL_19937_A\n110.12% [D2] boxMullerGaussian() ThreadLocalRandomSource JDK\n111.45% [D1] ZigguratSampler ThreadLocalRandomSource SPLIT_MIX_64\n112.09% [D2] boxMullerGaussian() ThreadLocalRandomSource WELL_19937_C\n112.29% [D2] boxMullerGaussian() ThreadLocalRandomSource WELL_44497_A\n112.84% [D2] boxMullerGaussian() ThreadLocalRandomSource WELL_44497_B\n119.67% [A1] java.util.Random: create for each call\n120.31% [D1] ZigguratSampler ThreadLocalRandomSource WELL_19937_A\n121.11% [D1] ZigguratSampler ThreadLocalRandomSource WELL_1024_A\n125.21% [D1] ZigguratSampler ThreadLocalRandomSource MWC_256\n126.16% [D1] ZigguratSampler ThreadLocalRandomSource JDK\n```","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frtmigo%2Frng_benchmark_kt","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frtmigo%2Frng_benchmark_kt","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frtmigo%2Frng_benchmark_kt/lists"}