From eb3ff0950a792051ac9c68531ca03c4be5a3f9c4 Mon Sep 17 00:00:00 2001 From: Eduardo Bart Date: Fri, 9 Dec 2011 01:08:53 -0200 Subject: [PATCH] implement random function --- src/framework/util/tools.h | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/src/framework/util/tools.h b/src/framework/util/tools.h index 03ff0ed4..56a5fb1a 100644 --- a/src/framework/util/tools.h +++ b/src/framework/util/tools.h @@ -263,6 +263,25 @@ void throwException(const T&... args) { throw Exception(Fw::mkstr(args...)); } +template +T randomRange(T min, T max); + +template<> +inline int randomRange(int min, int max) { + static std::random_device rd; + static std::mt19937 gen(rd()); + static std::uniform_int_distribution dis(0, 2147483647); + return min + (dis(gen) % (max - min + 1)); +} + +template<> +inline float randomRange(float min, float max) { + static std::random_device rd; + static std::mt19937 gen(rd()); + static std::uniform_real_distribution dis(0.0, 1.0); + return min + (max - min)*dis(gen); +} + } // shortcut for Fw::dump