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. | |
| mirkl_uint64_t | mirml_nr_rng_uint64 (mirml_nr_rng_t *rng) |
| Returns random 64-bit unsigned integer. | |
| 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. | |
| double | mirml_nr_rng_gammadev (mirml_nr_rng_t *rng, mirml_nr_gammadev_t *gdev) |
| Generates random deviates with gamma distribution. | |
Available random number generators | |
| #define | MIRML_NR_RNG_RAN 0 |
| Highest quality recommended generator. | |
| #define | MIRML_NR_RNG_RANQ1 1 |
| Good generator. | |
| #define | MIRML_NR_RNG_RANQ2 2 |
| Good generator with extended period. | |
| #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.