Public Types | Public Member Functions | Static Public Member Functions | Protected Member Functions | Protected Attributes | Static Protected Attributes

RNG Class Reference

List of all members.

Public Types

enum  RNGSources { RAW_SEED_SOURCE, PREDEF_SEED_SOURCE, HEURISTIC_SEED_SOURCE }

Public Member Functions

 RNG (const char *name="")
 RNG (long seed)
void init ()
long seed ()
void set_seed (long seed)
long next ()
double next_double ()
 RNG (RNGSources source, int seed=1)
void set_seed (RNGSources source, int seed=1)
void reset_start_stream ()
void reset_start_substream ()
void reset_next_substream ()
void set_antithetic (bool a)
void increased_precis (bool incp)
void set_seed (const unsigned long seed[6])
void advance_state (long e, long c)
void get_state (unsigned long seed[6]) const
void write_state () const
void write_state_full () const
double rand_u01 ()
long rand_int (long i, long j)
int command (int argc, const char *const *argv)
int uniform_positive_int ()
double uniform_double ()
int random ()
double uniform ()
int uniform (int k)
double uniform (double r)
double uniform (double a, double b)
double exponential ()
double exponential (double r)
double pareto (double scale, double shape)
double paretoII (double scale, double shape)
double normal (double avg, double std)
double lognormal (double avg, double std)
double rweibull (double shape, double scale)
double qweibull (double p, double shape, double scale)
double logit (double x_)
double logitinv (double x_)
double gammln (double xx)
double pnorm (double q)
double rnorm ()
int rbernoulli (double p)
double rgamma (double a, double scale)
double exp_rand ()

Static Public Member Functions

static RNGdefaultrng ()
static void set_package_seed (const unsigned long seed[6])

Protected Member Functions

double U01 ()
double U01d ()

Protected Attributes

double Cg_ [6]
double Bg_ [6]
double Ig_ [6]
bool anti_
bool inc_prec_
char name_ [100]

Static Protected Attributes

static double next_seed_ [6]
static RNGdefault_ = NULL

Member Function Documentation

double RNG::exp_rand ( void   ) 

q[k-1] = sum(log(2)^k / k!) k=1,..,n, The highest n (here 8) is determined by q[n-1] = 1.0 within standard precision

double RNG::rgamma ( double  a,
double  scale 
)

Coefficients q[k] - for q0 = sum(q[k]*a^(-k)) Coefficients a[k] - for q = q0+(t*t/2)*sum(a[k]*v^k) Coefficients e[k] - for exp(q)-1 = sum(e[k]*q^k)

Step 2: t = standard normal deviate, x = (s,1/2) -normal deviate.

Approximation depending on size of parameter a The constants in the expressions for b, si and c were established by numerical experiments

Step 8: e = standard exponential deviate u = 0,1 -uniform deviate t = (b,si)-double exponential (laplace) sample

Step 11: hat acceptance (h) (if q not positive go to step 8)


Member Data Documentation

double RNG::next_seed_ [static, protected]
Initial value:
 
{ 
        12345.0, 12345.0, 12345.0, 12345.0, 12345.0, 12345.0 
}

The documentation for this class was generated from the following files: