23 #ifndef RandExpZiggurat_h
24 #define RandExpZiggurat_h 1
26 #include "CLHEP/Random/defs.h"
27 #include "CLHEP/Random/Random.h"
35 class RandExpZiggurat :
public HepRandom {
63 static void shootArray (
const int size,
float* vect,
float mean=1.0 );
64 static void shootArray (
const int size,
double* vect,
double mean=1.0 );
84 inline float fire() {
return fire(defaultMean);};
94 void fireArray (
const int size,
float* vect,
float mean );
95 void fireArray (
const int size,
double* vect,
double mean );
102 std::ostream &
put ( std::ostream & os )
const;
103 std::istream &
get ( std::istream & is );
129 static unsigned long kn[128],
ke[256];
130 static float wn[128],
fn[128],
we[256],
fe[256];
138 unsigned long iz=jz&255;
155 #ifdef ENABLE_BACKWARDS_COMPATIBILITY
157 using namespace CLHEP;
static HepRandomEngine * getTheEngine()
static float shoot(float mean)
static float ziggurat_REXP(HepRandomEngine *anEngine)
static bool ziggurat_init()
static unsigned long ziggurat_SHR3(HepRandomEngine *anEngine)
static float ziggurat_efix(unsigned long jz, HepRandomEngine *anEngine)
float operator()(float mean)
static void shootArray(const int size, double *vect, double mean=1.0)
static bool ziggurat_init()
static void shootArray(HepRandomEngine *anEngine, const int size, float *vect, float mean=1.0)
static float shoot(HepRandomEngine *anEngine)
static void shootArray(const int size, float *vect, float mean=1.0)
static unsigned long kn[128]
void fireArray(const int size, float *vect, float mean)
std::ostream & put(std::ostream &os) const
RandExpZiggurat(HepRandomEngine &anEngine, double mean=1.0)
virtual ~RandExpZiggurat()
static bool ziggurat_is_init
static void shootArray(HepRandomEngine *anEngine, const int size, double *vect, double mean=1.0)
static unsigned long ke[256]
void fireArray(const int size, double *vect, double mean)
static float shoot(HepRandomEngine *anEngine, float mean)
void fireArray(const int size, double *vect)
RandExpZiggurat(HepRandomEngine *anEngine, double mean=1.0)
static float ziggurat_efix(unsigned long jz, HepRandomEngine *anEngine)
static std::string distributionName()
void fireArray(const int size, float *vect)
static float ziggurat_UNI(HepRandomEngine *anEngine)
std::istream & get(std::istream &is)
virtual double operator()()
HepRandomEngine & engine()