From 415167b228dea8b4108d7fe164c7fec8c061dcf5 Mon Sep 17 00:00:00 2001 From: kwolekr Date: Mon, 27 Apr 2015 04:05:25 -0400 Subject: [PATCH] Noise: Fix PcgRandom::randNormalDist() when range contains negative numbers This fixes an issue with erroneous float-to-int rounding that resulted in truncation toward 0, causing a biased distribution. --- src/noise.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/noise.cpp b/src/noise.cpp index 2e4588124..614234aa4 100644 --- a/src/noise.cpp +++ b/src/noise.cpp @@ -148,7 +148,7 @@ s32 PcgRandom::randNormalDist(s32 min, s32 max, int num_trials) s32 accum = 0; for (int i = 0; i != num_trials; i++) accum += range(min, max); - return ((float)accum / num_trials) + 0.5f; + return round((float)accum / num_trials); } ///////////////////////////////////////////////////////////////////////////////