summaryrefslogtreecommitdiff
path: root/src/base/random.cc
diff options
context:
space:
mode:
authorNathan Binkert <binkertn@umich.edu>2007-02-09 16:44:02 -0800
committerNathan Binkert <binkertn@umich.edu>2007-02-09 16:44:02 -0800
commit63a82400596b9331d1babe88624f97209286d0b9 (patch)
tree5090e48bcb29d8a41e6ddc44549dc4f0ee221a9a /src/base/random.cc
parent81c5d0e3d86cc31227f88e10f66ebfbd37f63ce8 (diff)
downloadgem5-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.cc48
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(&paramContext, "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);
-}