#include "sim/param.hh"
#include "base/random.hh"
+#include "base/trace.hh"
using namespace std;
void
RandomContext::checkParams()
{
- ::srandom(seed);
+ ::srand48(seed);
}
long
getLong()
{
- return random();
+ return mrand48();
}
+int64_t
+getUniform(int64_t min, int64_t max)
+{
+ double r;
+ r = drand48() * (max-min) + min;
+ return (int64_t)round(r);
+}
+
+uint64_t
+getUniformPos(uint64_t min, uint64_t max)
+{
+ double r;
+ r = drand48() * (max-min) + min;
+ return (uint64_t)round(r);
+}
+
+
// idea for generating a double from erand48
double
getDouble()
uint16_t _short[4];
};
- _long[0] = random();
- _long[1] = random();
+ _long[0] = mrand48();
+ _long[1] = mrand48();
return ldexp((double) _short[0], -48) +
ldexp((double) _short[1], -32) +