sp_random.cpp File Reference

Evaluating random variables. More...

#include "sp_random.h"
#include <cmath>

Go to the source code of this file.

Namespaces

namespace  faudes
 libFAUDES resides within the namespace faudes.

Macros

#define MODULUS   2147483647 /* DON'T CHANGE THIS VALUE */
#define MULTIPLIER   48271 /* DON'T CHANGE THIS VALUE */
#define CHECK   399268537 /* DON'T CHANGE THIS VALUE */
#define STREAMS   256 /* # of streams, DON'T CHANGE THIS VALUE */
#define A256   22925 /* jump multiplier, DON'T CHANGE THIS VALUE */
#define DEFAULT   123456789 /* initial seed, use 0 < DEFAULT < MODULUS */

Functions

void faudes::ran_plant_seeds (long x)
 Use this function to set the state of all the random number generator streams by "planting" a sequence of states (seeds), one per stream, with all states dictated by the state of the default stream.
void faudes::ran_put_seed (long seed)
 Put a seed.
void faudes::ran_select_stream (int index)
 Use this function to set the current random number generator stream – that stream from which the next random number will come.
void faudes::ran_init (long seed)
 Initialize random generator.
double faudes::ran (void)
 Run random generator Random Number Generator (for more details see "Random Number Generators: Good Ones Are Hard To Find" Steve Park and Keith Miller Communications of the ACM, October 1988)
double faudes::ran_uniform (double a, double b)
 Sample a random variable uniformly on interval [a;b) Distribution: f(t) dt= {1/(b-a)} dt for t, a <=t< b, else 0.
long faudes::ran_uniform_int (long a, long b)
 Sample a discrete random variable uniformly on interval [a;b) Distribution: p(n) = 1/(b-a-1)
double faudes::ran_exponential (double mu)
 Sample a random variable exponentially Distribution: f(t) dt = 1/mu exp(-t/mu) dt for t>=0.
double faudes::ran_exponential (double mu, Time::Type tossLB, Time::Type tossUB)
 Sample a random variable exponentially on a restricted interval Distribution: f(t) dt = 1/mu exp(-t/mu) dt for t>=0.
double faudes::ran_gauss (double mu, double sigma, Time::Type tossLB, Time::Type tossUB)
 Sample a random variable gaussian distributed on a restricted interval Distribution: f(t) = 1 / sqrt(2 pi sigma^2) * exp( -1/2 ((t-mu)/sigma)^2) for t>=0.
double faudes::ran_gaussian_cdf_P (double x)
 Help function: calculate gaussian CDF using an approximation from Abromowitz and Stegun: Handbook of Mathematical Functions.

Variables

static long faudes::ran_seed [STREAMS] = {DEFAULT}
static int faudes::ran_stream = 0
static int faudes::ran_initialized = 0

Detailed Description

Evaluating random variables.

Definition in file sp_random.cpp.

Macro Definition Documentation

#define A256   22925 /* jump multiplier, DON'T CHANGE THIS VALUE */

Definition at line 26 of file sp_random.cpp.

#define CHECK   399268537 /* DON'T CHANGE THIS VALUE */

Definition at line 24 of file sp_random.cpp.

#define DEFAULT   123456789 /* initial seed, use 0 < DEFAULT < MODULUS */

Definition at line 27 of file sp_random.cpp.

#define MODULUS   2147483647 /* DON'T CHANGE THIS VALUE */

Definition at line 22 of file sp_random.cpp.

#define MULTIPLIER   48271 /* DON'T CHANGE THIS VALUE */

Definition at line 23 of file sp_random.cpp.

#define STREAMS   256 /* # of streams, DON'T CHANGE THIS VALUE */

Definition at line 25 of file sp_random.cpp.

libFAUDES 2.28a --- 2016.09.13 --- c++ api documentaion by doxygen