51 #ifndef HepRandomEngine_h
52 #define HepRandomEngine_h 1
58 #if !defined(ST_NO_NAMESPACES)
62 #include "StGlobals.hh"
76 virtual HepDouble flat() = 0;
80 virtual void flatArray(
const HepInt size, HepDouble* vect) = 0;
81 #ifndef ST_NO_TEMPLATE_DEF_ARGS
82 virtual void flatArray(vector<HepDouble>&) = 0;
84 virtual void flatArray(vector<HepDouble,allocator<HepDouble> >&) = 0;
88 virtual void setSeed(
long seed, HepInt) = 0;
91 virtual void setSeeds(
const long * seeds, HepInt) = 0;
95 virtual void saveStatus()
const = 0;
99 virtual void restoreStatus() = 0;
103 virtual void showStatus()
const = 0;
106 long getSeed()
const {
return theSeed; }
109 const long* getSeeds()
const {
return theSeeds; }
112 void getTableSeeds(
long* seeds, HepInt index)
const;
118 const long* theSeeds;
119 static const long seedTable[215][2];
122 inline HepBoolean HepRandomEngine::operator==(
const HepRandomEngine& engine) {
123 return (
this==&engine) ?
true :
false;
126 inline HepBoolean HepRandomEngine::operator!=(
const HepRandomEngine& engine) {
127 return (
this!=&engine) ?
true :
false;
130 inline void HepRandomEngine::getTableSeeds(
long* seeds, HepInt index)
const
132 if ((index >= 0) && (index < 215)) {
133 seeds[0] = seedTable[index][0];
134 seeds[1] = seedTable[index][1];