X-Git-Url: https://git.dogcows.com/gitweb?p=chaz%2Fyoink;a=blobdiff_plain;f=src%2FMoof%2FRandom.cc;fp=src%2Frandom.cc;h=a88100836cd79c749721dcb4eb3fc66da375f510;hp=6cd25cf7af042943746d2455302ac16e367340a4;hb=c2321281bf12a7efaedde930422c7ddbc92080d4;hpb=87bc17e55b0c1dc73ecc66df856d3f08fd7a7724 diff --git a/src/random.cc b/src/Moof/Random.cc similarity index 82% rename from src/random.cc rename to src/Moof/Random.cc index 6cd25cf..a881008 100644 --- a/src/random.cc +++ b/src/Moof/Random.cc @@ -26,30 +26,31 @@ *******************************************************************************/ +#include // ULONG_MAX +#include // log #include // srand, rand, RAND_MAX #include // time -#include // log -#include // ULONG_MAX -#include "random.hh" +#include "Random.hh" + +namespace Mf { -namespace rng { -unsigned seed(unsigned theSeed) +unsigned setSeed(unsigned theSeed) { srand(theSeed); return theSeed; } -unsigned seed() +unsigned setSeed() { - return seed(time(0)); + return setSeed(time(0)); } template -T get() +T getRandom() { const float ln2 = 0.693147; static const unsigned bitsPerPiece = std::log(float(RAND_MAX)) / ln2; @@ -72,46 +73,46 @@ T get() template <> -bool get() +bool getRandom() { return rand() % 2; } template -T get(T lower, T upper) +T getRandom(T lower, T upper) { - unsigned short randInt = get(); + unsigned short randInt = getRandom(); return lower + T(randInt % (upper - lower + 1)); } template <> -float get(float lower, float upper) +float getRandom(float lower, float upper) { - unsigned long randInt = get(); + unsigned long randInt = getRandom(); return (float(randInt) / float(ULONG_MAX)) * (upper - lower) + lower; } template <> -double get(double lower, double upper) +double getRandom(double lower, double upper) { - unsigned long long randInt = get(); + unsigned long long randInt = getRandom(); return (double(randInt) / double(ULLONG_MAX)) * (upper - lower) + lower; } template <> -float get() +float getRandom() { - return get(0.0, 1.0); + return getRandom(0.0, 1.0); } template <> -double get() +double getRandom() { - return get(0.0, 1.0); + return getRandom(0.0, 1.0); } -}; // namespace rng +}; // namespace Mf /** vim: set ts=4 sw=4 tw=80: *************************************************/