From cbfff8fda9a8e2c2f7fa4b2e9f25fcce124afa1b Mon Sep 17 00:00:00 2001 From: maartenkeijzer Date: Sun, 25 Sep 2005 19:09:38 +0000 Subject: [PATCH] Added choice functions, plus rolled back inadvertant chance to eoRNG --- eo/src/utils/eoRNG.h | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/eo/src/utils/eoRNG.h b/eo/src/utils/eoRNG.h index 7c2e5b2a..6fe52e01 100644 --- a/eo/src/utils/eoRNG.h +++ b/eo/src/utils/eoRNG.h @@ -151,7 +151,7 @@ public : */ double uniform(double m = 1.0) { // random number between [0, m] - return m * double(rand()) / double(rand_max()); + return m * double(rand()) / double(1.0 + rand_max()); } /** @@ -235,6 +235,15 @@ public : return --i; } + /** + * choice(vec), returns a uniformly chosen element from the vector + */ + template + const T& choice(const std::vector& vec) { return vec[rng.random(vec.size())]; } + + template + T& choice(std::vector& vec) { return vec[rng.random(vec.size())]; } + /// void printOn(std::ostream& _os) const {