42 #ifndef BZ_RAND_UNIFORM_H
43 #define BZ_RAND_UNIFORM_H
56 Uniform(
double low = 0.0,
double high = 1.0,
double = 0.0)
57 : low_(low), length_(high-low)
59 BZPRECONDITION(
sizeof(
int) >= 4);
71 BZPOSTCONDITION(seed[3] % 2 == 1);
81 BZPRECONDITION(seed[3] % 2 == 1);
83 int it0, it1, it2, it3;
87 it2 += seed[2] * 2549 + seed[3] * 2508;
90 it1 += seed[1] * 2549 + seed[2] * 2508 + seed[3] * 322;
93 it0 += seed[0] * 2549 + seed[1] * 2508 + seed[2] * 322 + seed[3] * 494;
100 const double z = 1 / 4096.;
101 return low_ + length_ * (it0 + (it1 + (it2 + it3 * z) * z) * z) * z;
115 #endif // BZ_RAND_UNIFORM_H