diff options
author | Nathan Binkert <binkertn@umich.edu> | 2007-02-09 16:44:02 -0800 |
---|---|---|
committer | Nathan Binkert <binkertn@umich.edu> | 2007-02-09 16:44:02 -0800 |
commit | 63a82400596b9331d1babe88624f97209286d0b9 (patch) | |
tree | 5090e48bcb29d8a41e6ddc44549dc4f0ee221a9a /src/base/random.cc | |
parent | 81c5d0e3d86cc31227f88e10f66ebfbd37f63ce8 (diff) | |
download | gem5-63a82400596b9331d1babe88624f97209286d0b9.tar.xz |
Get rid of the Random context and add the support directly to python.
We don't currently use randomness much, so I didn't go too far, but
in the future, we may want to actually expose the random number values
themselves to python. For now, I'll at least let you seed it.
While we're at it, clean up a clearly bad way for generating random
doubles.
--HG--
extra : convert_revision : df2aa8b58dd0d9c2a7c771668a760b2df8db1e11
Diffstat (limited to 'src/base/random.cc')
-rw-r--r-- | src/base/random.cc | 48 |
1 files changed, 6 insertions, 42 deletions
diff --git a/src/base/random.cc b/src/base/random.cc index 0ccedcb00..ceab337d9 100644 --- a/src/base/random.cc +++ b/src/base/random.cc @@ -40,38 +40,20 @@ #include <cstdlib> #include <cmath> - -#include "sim/param.hh" #include "base/random.hh" -#include "base/trace.hh" using namespace std; -class RandomContext : public ParamContext -{ - public: - RandomContext(const string &_iniSection) - : ::ParamContext(_iniSection) {} - ~RandomContext() {} - - void checkParams(); -}; - -RandomContext paramContext("random"); - -Param<unsigned> -seed(¶mContext, "seed", "seed to random number generator", 1); - -void -RandomContext::checkParams() +uint32_t +getInt32() { - ::srand48(seed); + return mrand48() & 0xffffffff; } -long -getLong() +double +getDouble() { - return mrand48(); + return drand48(); } double @@ -105,21 +87,3 @@ getUniformPos(uint64_t min, uint64_t max) return (uint64_t)m5round(r); } - - -// idea for generating a double from erand48 -double -getDouble() -{ - union { - uint32_t _long[2]; - uint16_t _short[4]; - }; - - _long[0] = mrand48(); - _long[1] = mrand48(); - - return ldexp((double) _short[0], -48) + - ldexp((double) _short[1], -32) + - ldexp((double) _short[2], -16); -} |