INGOR
|
Structure for encapsulating the random number generator. More...
#include <ytRNG.h>
Public Member Functions | |
ytRNG * | ytRNG_new () |
Generates an ytRNG instance. | |
void | ytRNG_delete (ytRNG *rng) |
Releases the resources allocated for the ytRNG instance. | |
void | ytRNG_setSeed (ytRNG *rng, int seed) |
Initializes the random number generator. | |
void | ytRNG_normal (ytRNG *rng, double *ar, int n, double mean, double sigma) |
Generates the normally distributed random numbers. | |
void | ytRNG_uniform (ytRNG *rng, double *ar, int n, double min, double max) |
Generates the normally distributed random numbers. | |
void | ytRNG_integer (ytRNG *rng, int *ar, int n, int min, int max) |
Generates integer random numbers. | |
void | ytRNG_perm (ytRNG *rng, int *ar, int n) |
Generates an integer random permuation vector. | |
void | ytRNG_shuffle (ytRNG *rng, int *ar, int n) |
Shuffles the elements of the integer array. | |
Public Attributes | |
ytRNG_dSFMT * | dsfmt |
double | work [DSFMT_N64] |
Structure for encapsulating the random number generator.
Depending on the environment, this uses the appropriate implementation / library to generate random numbers. The following is the list of supported environment (C macro) and its math library.
void ytRNG_delete | ( | ytRNG * | rng | ) |
void ytRNG_integer | ( | ytRNG * | rng, |
int * | ar, | ||
int | n, | ||
int | min, | ||
int | max | ||
) |
Generates integer random numbers.
This generates integer random numbers ranging [min,max).
rng | Intitialized ytRNG instance. |
ar | Array in which the generated random numbers are stored. |
n | Numbers of random number to generate. |
min | Lower bound of the random values (inclusive). |
max | Upper bound of the random values (exclusive). |
ytRNG * ytRNG_new | ( | ) |
Generates an ytRNG instance.
Call ytRNG_set_seed() to initialize the random number generator.
Call ytRNG_delete() to release the resources allocated by this routine.
void ytRNG_normal | ( | ytRNG * | rng, |
double * | ar, | ||
int | n, | ||
double | mean, | ||
double | sigma | ||
) |
Generates the normally distributed random numbers.
The appropriate algorithm is selected based on the environment.
rng | Initialized ytRNG instance. |
ar | Array in which the generated random numbers are stored. |
n | Number of random numbers to generate. |
mean | Mean of the normal distribution. |
sigma | Standard deviation of the normal distribution. |
void ytRNG_perm | ( | ytRNG * | rng, |
int * | ar, | ||
int | n | ||
) |
Generates an integer random permuation vector.
This generates an random permutation ranging from 0 to n − 1.
[in] | rng | Initialized ytRNG instance. |
[out] | ar | Array in which the generated random permuation vector is stored. |
[int] | n Length of the permutation vector. |
void ytRNG_setSeed | ( | ytRNG * | rng, |
int | seed | ||
) |
Initializes the random number generator.
The appropriate algorithm is selected based on the environment.
In Fujitsu SSL II library, 0 cannot be specified as the seed. Thus, if 0 is specified, it is regarded as 1.
rng | ytRNG instance to be initialized. |
seed | Seed of the random number generator. |
void ytRNG_shuffle | ( | ytRNG * | rng, |
int * | ar, | ||
int | n | ||
) |
Shuffles the elements of the integer array.
This shuffles the order of elements in the given integer array.
[in] | rng | Initialized ytRNG instance. |
[in,out] | ar | Array in which the order of the elements are shuffled. |
[in] | n | Length of the array. |
void ytRNG_uniform | ( | ytRNG * | rng, |
double * | ar, | ||
int | n, | ||
double | min, | ||
double | max | ||
) |
Generates the normally distributed random numbers.
The appropriate algorithm is selected based on the environment.
rng | Initialized ytRNG instance. |
ar | Array in which the generated random numbers are stored. |
n | Number of random numbers to generate. |
min | Lower bound of the uniform distribution. |
max | Upper bound of the uniform distribution. |