37#ifndef RandExpZiggurat_h
38#define RandExpZiggurat_h 1
40#include "CLHEP/Random/defs.h"
41#include "CLHEP/Random/Random.h"
42#include "CLHEP/Utility/memory.h"
43#include "CLHEP/Utility/thread_local.h"
79 static void shootArray (
const int size,
float* vect,
float mean=1.0 );
80 static void shootArray (
const int size,
double* vect,
double mean=1.0 );
108 void fireArray (
const int size,
float* vect );
109 void fireArray (
const int size,
double* vect );
110 void fireArray (
const int size,
float* vect,
float mean );
111 void fireArray (
const int size,
double* vect,
double mean );
118 std::ostream &
put ( std::ostream & os )
const;
119 std::istream &
get ( std::istream & is );
121 std::string
name()
const;
145 static CLHEP_THREAD_LOCAL
unsigned long kn[128],
ke[256];
146 static CLHEP_THREAD_LOCAL
float wn[128],
fn[128],
we[256],
fe[256];
155 unsigned long iz=jz&255;
165 std::shared_ptr<HepRandomEngine> localEngine;
171#ifdef ENABLE_BACKWARDS_COMPATIBILITY
173using namespace CLHEP;
static HepRandomEngine * getTheEngine()
static CLHEP_THREAD_LOCAL float fn[128]
static float shoot(float mean)
static float ziggurat_REXP(HepRandomEngine *anEngine)
static bool ziggurat_init()
static unsigned long ziggurat_SHR3(HepRandomEngine *anEngine)
static CLHEP_THREAD_LOCAL unsigned long ke[256]
static void shootArray(const int size, float *vect, float mean=1.0)
static CLHEP_THREAD_LOCAL float fe[256]
HepRandomEngine & engine()
static float ziggurat_efix(unsigned long jz, HepRandomEngine *anEngine)
virtual ~RandExpZiggurat()
float operator()(float mean)
std::istream & get(std::istream &is)
static float shoot(HepRandomEngine *anEngine)
static CLHEP_THREAD_LOCAL float wn[128]
RandExpZiggurat(HepRandomEngine &anEngine, double mean=1.0)
virtual double operator()()
static float shoot(HepRandomEngine *anEngine, float mean)
static CLHEP_THREAD_LOCAL float we[256]
static CLHEP_THREAD_LOCAL unsigned long kn[128]
static std::string distributionName()
void fireArray(const int size, float *vect)
static float ziggurat_UNI(HepRandomEngine *anEngine)
static CLHEP_THREAD_LOCAL bool ziggurat_is_init
std::ostream & put(std::ostream &os) const