|
◆ zigexp()
double zigexp |
( |
int(*)() |
iurand, |
|
|
double(*)() |
durand, |
|
|
double |
theta |
|
) |
| |
Generate random numbers following exponential distribution (Ziggurat method)
- Purpose
- This routine generates random numbers following exponential distribution Exp(θ).
Uniform random numbers are generated by the given uniform random number generator. Then they are transformed to the exponential random numbers by Ziggurat method.
- Returns
- Exponential random number (>= 0).
- Parameters
-
[in] | iurand | The user supplied integer uniform random number generator defined as follows. int iurand(void)
{
return (an integer random number);
}
Only the lowest 7 or 8 bits (specified by init_zigexp()) are used. |
[in] | durand | The user supplied real uniform random number generator in the interval [0, 1) defined as follows. double durand(void)
{
return (a real random number);
}
The real uniform random number generated by using this function is transformed to the exponential random number. |
[in] | theta | The parameter θ of the exponential distribution Exp(θ). |
- Note
- This function should be initialized by init_zigexp() before generating random numbers. If this function is called without initialization, it will be automatically initialized with default parameter.
- Reference
- Yatsuji Tetsuaki, "Probability distribution random number generation method" 2nd ed., Pleiades Publishing, 2019. (Japanese book)
|