RandGamma


Class defining methods for shooting gamma distributed random values, given a k (default=1) and specifying also a lambda (default=1). Default values are used for operator()().

Valid input values are k > 0 and lambda > 0. When invalid values are presented, the code silently returns -1.0.

Author

John Marraffino

See also

Engines: HepRandomEngine, DRand48Engine , DualRand HepJamesRandom Hurd160Engine Hurd288Engine MTwistEngine RandEngine RanecuEngine RanluxEngine Ranlux64Engine RanshiEngine TripleRand

Distributions: HepRandom, RandBinomial RandBreitWigner RandChiSquare RandExponential RandFlat RandGauss RandGeneral RandPoisson RandStudentT

Declaration

#include "CLHEP/Random/RandGamma.h"

class RandGamma : public HepRandom

Public Member Functions

Constructors
inline RandGamma(HepRandomEngine& anEngine, HepDouble k=1.0, HepDouble lambda=1.0)
inline RandGamma(HepRandomEngine* anEngine, HepDouble k=1.0, HepDouble lambda=1.0)
These constructors should be used to instantiate a RandGamma distribution object defining a local engine for it.
The static generator will be skipped using the non-static methods defined below.
If the engine is passed by pointer the corresponding engine object will be deleted by the RandGamma destructor.
If the engine is passed by reference the corresponding engine object will not be deleted by the RandGamma destructor.
Destructor
virtual ~RandGamma()
()
inline HepDouble operator()()
inline HepDouble operator()(long n, HepDouble p)
Methods using the localEngine to shoot random values, by-passing the static generator.
fire
inline HepDouble fire()
HepDouble fire(HepDouble k, HepDouble lambda)
Methods using the localEngine to shoot random values, by-passing the static generator.
fireArray
void fireArray(const HepInt size, HepDouble* vect)
void fireArray(const HepInt size, HepDouble* vect, HepDouble k, HepDouble lambda)
Methods using the localEngine to shoot random values, by-passing the static generator.
shoot
static inline HepDouble shoot()
static HepDouble shoot(HepDouble k, HepDouble lambda)
Static methods to shoot random values using the static generator

static inline HepDouble shoot(HepRandomEngine* anEngine)
static HepDouble shoot(HepRandomEngine* anEngine, HepDouble k, HepDouble lambda)
Static methods to shoot random values using a given engine by-passing the static generator.
shootArray
static void shootArray(const HepInt size, HepDouble* vect, HepDouble k=1.0, HepDouble lambda=1.0)
Static method to shoot random values using the static generator

static void shootArray(HepRandomEngine* anEngine, const HepInt size, HepDouble* vect, HepDouble k=1.0, HepDouble lambda=1.0)
Static method to shoot random values using a given engine by-passing the static generator.

Example

CLHEP/test/testRandom.cc


04 May 1999
EVC