26 defaultWidth(1.0), defaultA(0.0), defaultB(1.0) {}
30 defaultWidth(width), defaultA(0.0), defaultB(width) {}
35 defaultWidth(b-a), defaultA(a), defaultB(b) {}
38:
HepRandom(), firstUnusedBit(0), localEngine(anEngine),
39 defaultWidth(1.0), defaultA(0.0), defaultB(1.0) {}
42:
HepRandom(), firstUnusedBit(0), localEngine(anEngine),
43 defaultWidth(width), defaultA(0.0), defaultB(width) {}
47:
HepRandom(), firstUnusedBit(0), localEngine(anEngine),
48 defaultWidth(b-a), defaultA(a), defaultB(b) {}
51 return (b-a)*
shoot() + a;
55 return width *
shoot();
59 return long(
shoot()*
double(n));
63 return long(
shoot()*
double(n-a1)) + a1;
66inline void RandFlat::shootBits() {
67 const double factor= 2.0*MSB;
68 staticFirstUnusedBit= MSB;
69 staticRandomInt= (
unsigned long)(factor*
shoot());
73 if (staticFirstUnusedBit==0)
75 unsigned long temp= staticFirstUnusedBit&staticRandomInt;
76 staticFirstUnusedBit>>= 1;
83 return anEngine->
flat();
89 return (b-a)* anEngine->
flat() + a;
94 return width * anEngine->
flat();
99 return long(anEngine->
flat()*
double(n));
104 return long(
double(n-a1)*anEngine->
flat()) + a1;
108 const int size,
double* vect) {
113 const double factor= 2.0*MSB;
114 staticFirstUnusedBit= MSB;
115 staticRandomInt= (
unsigned long)(factor*
shoot(
engine));
119 if (staticFirstUnusedBit==0)
121 unsigned long temp= staticFirstUnusedBit&staticRandomInt;
122 staticFirstUnusedBit>>= 1;
129 return (defaultB-defaultA)*localEngine->flat()+defaultA;
133 return (b-a)* localEngine->flat() + a;
137 return width * localEngine->flat();
141 return long(localEngine->flat()*
double(n));
145 return long(localEngine->flat()*
double(n-a1)) + a1;
148inline void RandFlat::fireBits() {
149 const double factor= 2.0*MSB;
151 randomInt= (
unsigned long)(factor*localEngine->flat());
155 if (firstUnusedBit==0)
157 unsigned long temp= firstUnusedBit&randomInt;
virtual void flatArray(const int size, double *vect)=0
static void shootArray(const int size, double *vect)
RandFlat(HepRandomEngine &anEngine)
static long shootInt(long n)
HepRandomEngine & engine()