diff --git a/src/guf_rand.h b/src/guf_rand.h index 63036fd..174244d 100644 --- a/src/guf_rand.h +++ b/src/guf_rand.h @@ -637,9 +637,7 @@ GUF_RAND_KWRDS int_fast32_t guf_rand64_range_i32(guf_rand64_state *state, int_fa // cf. https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/random (last-retrieved 2025-02-12) const double result = floor(guf_rand64_f64(state) * (delta + 1.0) + min); GUF_ASSERT(result >= min && result <= max); - #ifdef INT32_MAX - GUF_ASSERT((int_fast32_t)result <= INT32_MAX && (int_fast32_t)result >= INT32_MIN); - #endif + GUF_ASSERT((int_fast32_t)result <= GUF_INT32_MAX && (int_fast32_t)result >= GUF_INT32_MIN); return (int_fast32_t)result; } @@ -682,14 +680,12 @@ GUF_RAND_KWRDS int_fast32_t guf_rand32_range_i32(guf_rand32_state *state, int_fa } while (step >= limit); step = GUF_UWRAP_32(step / bin_size); - #ifdef INT32_MAX - GUF_ASSERT(guf_ckd_add_i32(min, step) == GUF_MATH_CKD_SUCCESS); - #endif + GUF_ASSERT(guf_ckd_add_int_fast32_t(min, step) == GUF_MATH_CKD_SUCCESS); + const int_fast32_t rnd = min + (int_fast32_t)step; GUF_ASSERT(rnd >= min && rnd <= max); - #ifdef INT32_MAX - GUF_ASSERT(rnd <= INT32_MAX && rnd >= INT32_MIN); - #endif + GUF_ASSERT(rnd <= GUF_INT32_MAX && rnd >= GUF_INT32_MIN); + return rnd; } @@ -787,9 +783,8 @@ GUF_RAND_KWRDS int_fast64_t guf_rand64_range_i64(guf_rand64_state *state, int_fa } while (step >= limit); step = GUF_UWRAP_64(step / bin_size); - #ifdef INT64_MAX - GUF_ASSERT(guf_ckd_add_i64(min, step) == GUF_MATH_CKD_SUCCESS); - #endif + GUF_ASSERT(guf_ckd_add_int_fast64_t(min, step) == GUF_MATH_CKD_SUCCESS); + const int_fast64_t rnd = min + (int_fast64_t)step; GUF_ASSERT(rnd >= min && rnd <= max); return rnd; @@ -832,9 +827,8 @@ GUF_RAND_KWRDS int_fast64_t guf_rand32_range_i64(guf_rand32_state *state, int_fa } while (step >= limit); step = GUF_UWRAP_64(step / bin_size); - #ifdef INT64_MAX - GUF_ASSERT(guf_ckd_add_i64(min, step) == GUF_MATH_CKD_SUCCESS); - #endif + GUF_ASSERT(guf_ckd_add_int_fast64_t(min, step) == GUF_MATH_CKD_SUCCESS); + const int_fast64_t rnd = min + (int_fast64_t)step; GUF_ASSERT(rnd >= min && rnd <= max); return rnd;