From 4bdccb3dae683c034cddd3c7361b45aa6b31ab13 Mon Sep 17 00:00:00 2001 From: maartenkeijzer Date: Fri, 26 Mar 2004 09:56:56 +0000 Subject: [PATCH] Fixed bug in rng::roulette_wheel: use of float had too little precision in change/fortune var --- eo/src/utils/eoRNG.h | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/eo/src/utils/eoRNG.h b/eo/src/utils/eoRNG.h index 3601cf062..867dc9df3 100644 --- a/eo/src/utils/eoRNG.h +++ b/eo/src/utils/eoRNG.h @@ -224,15 +224,14 @@ public : total += vec[i]; } - float change = uniform() * total; - + double fortune = uniform() * total; int i = 0; - while (change > 0) + while (fortune > 0) { - change -= vec[i++]; + fortune -= vec[i++]; } - + return --i; }