From b4c8676daaf3c9c335741ce3a499347a7be2c063 Mon Sep 17 00:00:00 2001 From: DBotThePony Date: Wed, 22 Jan 2025 13:27:13 +0700 Subject: [PATCH] Update comments --- src/main/kotlin/ru/dbotthepony/mc/otm/core/Ext.kt | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/core/Ext.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/core/Ext.kt index be590c9e4..a06e67e21 100644 --- a/src/main/kotlin/ru/dbotthepony/mc/otm/core/Ext.kt +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/core/Ext.kt @@ -597,7 +597,7 @@ infix fun FluidStack.isNotSameAs(other: FluidStack): Boolean { data class DoublePair(val first: Double, val second: Double) -// normal distribution via Box-Muller +// normal distribution via Marsaglia polar method fun RandomGenerator.nextNormalDoubles(stddev: Double, mean: Double): DoublePair { var rand1: Double var rand2: Double @@ -607,7 +607,7 @@ fun RandomGenerator.nextNormalDoubles(stddev: Double, mean: Double): DoublePair rand1 = 2.0 * nextDouble() - 1.0 rand2 = 2.0 * nextDouble() - 1.0 distSqr = rand1 * rand1 + rand2 * rand2 - } while (distSqr >= 1) + } while (distSqr >= 1.0 || distSqr == 0.0) val mapping = sqrt(-2.0 * ln(distSqr) / distSqr) @@ -617,8 +617,7 @@ fun RandomGenerator.nextNormalDoubles(stddev: Double, mean: Double): DoublePair ) } -// All Mojang's random sources use MarsagliaPolarGaussian for generating normal distributed doubles, -// which is Box-Muller transform already, so we can use that +// All Mojang's random sources use MarsagliaPolarGaussian for generating normal distributed doubles fun RandomSource.nextNormalDoubles(stddev: Double, mean: Double): DoublePair { return DoublePair( nextGaussian() * stddev + mean,