Data Structures | |
struct | mirml_nr_gammadev_t_ |
Generator of random deviates with gamma distribution. More... | |
Typedefs | |
typedef struct mirml_nr_rng_t | mirml_nr_rng_t |
Random number generator. | |
typedef struct mirml_nr_gammadev_t_ | mirml_nr_gammadev_t |
Generator of random deviates with gamma distribution. | |
Functions | |
mirkl_error_t * | mirml_nr_rng_init (mirml_nr_rng_t **rng, int method, mirkl_uint64_t seed) |
void | mirml_nr_rng_free (mirml_nr_rng_t *rng) |
Free memory allocated for rng. More... | |
mirkl_uint64_t | mirml_nr_rng_uint64 (mirml_nr_rng_t *rng) |
Returns random 64-bit unsigned integer. More... | |
mirkl_uint32_t | mirml_nr_rng_uint32 (mirml_nr_rng_t *rng) |
Returns random 32-bit unsigned integer. | |
double | mirml_nr_rng_double (mirml_nr_rng_t *rng) |
Returns a random double-precision floating number in the range 0.0 to 1.0. | |
double | mirml_nr_rng_expdev (mirml_nr_rng_t *rng, double beta) |
Generates random deviates with exponential distribution for given beta mean. | |
double | mirml_nr_rng_logdev (mirml_nr_rng_t *rng, double mu, double sigma) |
Generates random deviates with logistic distribution for given mu and sigma. | |
double | mirml_nr_rng_cauchydev (mirml_nr_rng_t *rng, double mu, double sigma) |
Generates random deviates with Cauchy distribution for given mu and sigma. | |
double | mirml_nr_rng_normdev (mirml_nr_rng_t *rng, double mu, double sig) |
Generates random deviates with normal distribution for given mu and sigma. | |
mirkl_error_t * | mirml_nr_rng_gammadev_init (mirml_nr_gammadev_t *gdev, double alpha, double beta) |
Initialization of generator of random deviates with gamma distribution for given alpha and beta. More... | |
double | mirml_nr_rng_gammadev (mirml_nr_rng_t *rng, mirml_nr_gammadev_t *gdev) |
Generates random deviates with gamma distribution. More... | |
Available random number generators | |
#define | MIRML_NR_RNG_RAN 0 |
Highest quality recommended generator. More... | |
#define | MIRML_NR_RNG_RANQ1 1 |
Good generator. More... | |
#define | MIRML_NR_RNG_RANQ2 2 |
Good generator with extended period. More... | |
#define MIRML_NR_RNG_RAN 0 |
Highest quality recommended generator.
The period of the generator is approximately 3.138e57.
#define MIRML_NR_RNG_RANQ1 1 |
Good generator.
The period of the generator is approximately 1.8e19 and thus can be used by an application that makes no more than 1e12 calls.
#define MIRML_NR_RNG_RANQ2 2 |
Good generator with extended period.
The period of the generator is approximately 8.5e37. It can be used for all practical purposes.
void mirml_nr_rng_free | ( | mirml_nr_rng_t * | rng | ) |
Free memory allocated for rng.
double mirml_nr_rng_gammadev | ( | mirml_nr_rng_t * | rng, |
mirml_nr_gammadev_t * | gdev | ||
) |
Generates random deviates with gamma distribution.
mirkl_error_t * mirml_nr_rng_gammadev_init | ( | mirml_nr_gammadev_t * | gdev, |
double | alpha, | ||
double | beta | ||
) |
Initialization of generator of random deviates with gamma distribution for given alpha and beta.
mirkl_error_t * mirml_nr_rng_init | ( | mirml_nr_rng_t ** | rng, |
int | method, | ||
mirkl_uint64_t | seed | ||
) |
Allocate and init RNG structure.
[in] | rng | Pointer to generator structure. |
[in] | method | One of MIRML_NR_RNG_... |
[in] | seed | Generator seed. |
mirkl_uint64_t mirml_nr_rng_uint64 | ( | mirml_nr_rng_t * | rng | ) |
Returns random 64-bit unsigned integer.
If you need a random integer between 1 and n (inclusive), say, then the expression 1 + mirml_nr_rng_uint64(&rng) % (n-1) is perfectly OK.