diff --git a/src/common/math.cpp b/src/common/math.cpp index 32cb0577f..facece23d 100644 --- a/src/common/math.cpp +++ b/src/common/math.cpp @@ -4,9 +4,9 @@ namespace { - // The Box–Muller transform generates two random numbers, one of which we cache here. - // A value +infinity is used to signal the cache is invalid and that new numbers have - // to be generated. + // The Box–Muller transform generates two random numbers, one of which we + // cache here. A value of +infinity is used to signal the cache is invalid + // and that new numbers have to be generated. float last_randnormal = std::numeric_limits::infinity(); } @@ -25,7 +25,7 @@ float random_normal(float o) // else: generate numbers using the Box-Muller transform float a = sqrt(-2.0f * log(random())); - float b = LOVE_M_PI * 2.0f * random(); + float b = float(LOVE_M_PI) * 2.0f * random(); last_randnormal = a * cos(b); return a * sin(b) * o; } diff --git a/src/common/math.h b/src/common/math.h index b60dbdb68..683ef46a6 100644 --- a/src/common/math.h +++ b/src/common/math.h @@ -87,7 +87,8 @@ inline float next_p2(float x) */ inline float random() { - return float(rand()) / (float(RAND_MAX) + 1.0f); + // to satisfy picky compilers... + return float(double(rand() % RAND_MAX) / double(RAND_MAX)); } /** @@ -114,7 +115,7 @@ inline float random(float min, float max) * @returns Normal distributed random number with mean 0 and variance o^2. */ float random_normal(float o = 1.); -#define random_gaussion random_normal +#define random_gaussian random_normal } // love