42 #include "CLHEP/Random/defs.h"
43 #include "CLHEP/Random/RandomEngine.h"
44 #include "CLHEP/Random/Hurd288Engine.h"
52 class TripleRand:
public HepRandomEngine {
77 void saveStatus(
const char filename[] =
"TripleRand.conf" )
const;
87 operator unsigned int();
89 virtual std::ostream &
put (std::ostream & os)
const;
90 virtual std::istream &
get (std::istream & is);
92 virtual std::istream &
getState ( std::istream & is );
97 std::vector<unsigned long>
put ()
const;
98 bool get (
const std::vector<unsigned long> & v);
99 bool getState (
const std::vector<unsigned long> & v);
105 static int numEngines;
115 Tausworthe(
unsigned int seed);
117 operator unsigned int();
119 void put( std::ostream & os )
const;
120 void put(std::vector<unsigned long> & v)
const;
121 void get( std::istream & is );
122 bool get(std::vector<unsigned long>::const_iterator & iv);
127 unsigned int words[4];
138 IntegerCong(
unsigned int seed,
int streamNumber);
140 operator unsigned int();
142 void put( std::ostream & os )
const;
143 void put(std::vector<unsigned long> & v)
const;
144 void get( std::istream & is );
145 bool get(std::vector<unsigned long>::const_iterator & iv);
149 unsigned int state, multiplier, addend;
152 Hurd288Engine & Hurd();
154 const Tausworthe & ConstTaus()
const;
155 const IntegerCong & ConstCong()
const;
156 const Hurd288Engine & ConstHurd()
const;
158 Tausworthe tausworthe;
159 IntegerCong integerCong;
166 #ifdef ENABLE_BACKWARDS_COMPATIBILITY
168 using namespace CLHEP;
virtual std::istream & get(std::istream &is)
virtual std::ostream & put(std::ostream &os) const
TripleRand(std::istream &is)
std::vector< unsigned long > put() const
void flatArray(const int size, double *vect)
virtual std::istream & get(std::istream &is)
std::vector< unsigned long > put() const
void saveStatus(const char filename[]="TripleRand.conf") const
bool getState(const std::vector< unsigned long > &v)
TripleRand(int rowIndex, int colIndex)
void setSeed(long seed, int)
bool get(const std::vector< unsigned long > &v)
void restoreStatus(const char filename[]="TripleRand.conf")
void setSeeds(const long *seeds, int)
static std::string engineName()
virtual std::istream & getState(std::istream &is)
static const unsigned int VECTOR_STATE_SIZE
static std::string beginTag()