24 #ifndef RandGaussZiggurat_h
25 #define RandGaussZiggurat_h 1
49 static inline float shoot(
float mean,
float stdDev ) {
return shoot()*stdDev + mean;};
51 static void shootArray (
const int size,
float* vect,
float mean=0.0,
float stdDev=1.0 );
52 static void shootArray (
const int size,
double* vect,
double mean=0.0,
double stdDev=1.0 );
61 static void shootArray (
HepRandomEngine* anotherEngine,
const int size,
double* vect,
double mean=0.0,
double stdDev=1.0 );
70 void fireArray (
const int size,
float* vect);
71 void fireArray (
const int size,
double* vect);
72 void fireArray (
const int size,
float* vect,
float mean,
float stdDev );
73 void fireArray (
const int size,
double* vect,
double mean,
double stdDev );
76 virtual double operator()(
double mean,
double stdDev );
80 std::ostream &
put ( std::ostream & os )
const;
81 std::istream &
get ( std::istream & is );
83 std::string
name()
const;
107 static unsigned long kn[128],
ke[256];
116 unsigned long iz=hz&127;
static bool ziggurat_init()
static bool ziggurat_is_init
static float ziggurat_nfix(long hz, HepRandomEngine *anEngine)
float fire(float mean, float stdDev)
static unsigned long ke[256]
static float shoot(HepRandomEngine *anotherEngine)
static float ziggurat_UNI(HepRandomEngine *anEngine)
RandGaussZiggurat(HepRandomEngine &anEngine, double mean=0.0, double stdDev=1.0)
static std::string distributionName()
static unsigned long ziggurat_SHR3(HepRandomEngine *anEngine)
static HepRandomEngine * getTheEngine()
static float shoot(float mean, float stdDev)
shared_ptr< HepRandomEngine > localEngine
void fireArray(const int size, float *vect)
static float ziggurat_RNOR(HepRandomEngine *anEngine)
virtual ~RandGaussZiggurat()
std::ostream & put(std::ostream &os) const
static float shoot(HepRandomEngine *anotherEngine, float mean, float stdDev)
static void shootArray(const int size, float *vect, float mean=0.0, float stdDev=1.0)
static unsigned long kn[128]
virtual double operator()()
HepRandomEngine & engine()