Random number generation class, uses various types of random generators depending on the implementation.
More...
|
| static void | init (unsigned long seed) |
| | Initialize the random generator's seed. More...
|
| |
| static void | free () |
| | Memory de-allocation. More...
|
| |
| static double | Uniform () |
| | Generates a random number from [0.0, 1.0[ uniformly distributed. More...
|
| |
| static unsigned int | Uniform (unsigned int max) |
| | Returns a uniformly distributed random number from [0.0, max[. More...
|
| |
| static bool | RandBool () |
| | Returns a random boolean. More...
|
| |
| static unsigned long | RandULong () |
| | Return a random unsigned long, from uniform distribution. More...
|
| |
| static double | gammln (double xx) |
| | From the Numerical Recieps. More...
|
| |
| static double | Poisson (double mean) |
| | From the Numerical Recieps. More...
|
| |
| static double | Gaussian (double sigma) |
| |
| static void | BivariateGaussian (double sigma1, double sigma2, double rho, double *out1, double *out2) |
| |
| static double | LogNormal (double zeta, double sigma) |
| |
| static double | Gamma (double a, double b) |
| |
| static double | Bernoulli (double p) |
| |
| static double | Exponential (double mu) |
| |
| static double | Binomial (double p, unsigned int n) |
| |
| static double | Beta (const double a, const double b) |
| |
| static unsigned int | Binomial2 (double p, unsigned int n) |
| |
| static void | Multinomial (size_t K, unsigned int N, const double p[], unsigned int n[]) |
| |
| static void | MultinomialOnNormalizedValarray (size_t K, unsigned int N, const std::valarray< double > &p, unsigned int n[]) |
| | Multinomial draw assuming the probabilities sum to 1.0 and are all > 0. More...
|
| |
| static void | MultinomialOnNormalizedValarray_expandedOut (size_t K, unsigned int N, const std::valarray< double > &p, unsigned int n[]) |
| | Multinomial draw assuming the probabilities sum to 1.0 and are all > 0, the output is an array of size N. More...
|
| |
| static void | MultinomialOnNormalizedValarray_scrambleOut (size_t K, unsigned int N, const std::valarray< double > &p, unsigned int n[]) |
| | Multinomial draw assuming the probabilities sum to 1.0 and are all > 0, the output is an array of size N. More...
|
| |
| static void | MultinomialOnNormalizedValarrayZipper_scrambleOut (size_t K, unsigned int N, const std::valarray< double > &p, unsigned int n[]) |
| | Multinomial draw assuming the probabilities sum to 1.0 and are all > 0, the output is an array of size N. More...
|
| |
| static void | ScrambleArrayUInt (const int length, unsigned int *array) |
| | Randomize the elements within an array. More...
|
| |
| static void | Sample (const int from, const int to, const unsigned int num, int *result, bool replace) |
| | Creates a sample of integers within range [from, to), with or without replacement. More...
|
| |
| static void | SampleSeq (int from, int to, int by, unsigned int num, int *result, bool replace=false) |
| |
| static void | SampleSeqWithReciprocal (int from, int to, int by, unsigned int num1, int *result1, unsigned int num2, int *result2) |
| |
| static size_t | Discrete (const gsl_ran_discrete_t *g) |
| | Calling the GSL ran_discrete function. More...
|
| |
Random number generation class, uses various types of random generators depending on the implementation.
| static double RAND::Uniform |
( |
| ) |
|
|
inlinestatic |
Generates a random number from [0.0, 1.0[ uniformly distributed.
If SPRNG or GSL libraries are not used, implement a random generator from: L'Ecuyer, 1988, "Efficient and Portable Combined Random Number Generators", Communication of the ACM, 31(6):742-774.
127 return stream->sprng();
128 #elif defined(HAS_GSL)
129 return gsl_rng_uniform(r);
136 Seed1 = 40014 * (
Seed1 - w * 53668) - w * 12211;
142 Seed2 = 40692 * (
Seed2 - w * 52774) - w * 3791;
148 if (z < 1) z += 2147483562;
150 }
while (!((z * 4.656613e-10) < 1.0));
152 return (z * 4.656613e-10);
static long Seed2
Definition: Uniform.h:78
References Seed1, and Seed2.
Referenced by Bernoulli(), Binomial(), BivariateGaussian(), LCE_Breed_base::checkPolygyny(), LCE_Cross::create_individual_ancestors(), Discrete(), LCE_Patch_Extinction::do_remove(), LCE_Selection_base::doViabilitySelection(), LCE_Disperse_EvolDisp::evoldisp(), LCE_BreedAssortativeMating::execute(), LCE_Aging::execute(), LCE_Patch_Extinction::execute(), Exponential(), BinaryDataLoader::extractPop(), Metapop::fillPopulationFromSource(), LCE_Disperse_EvolDisp::fixdisp(), LCE_Breed_base::fullPolyginy_manyMales(), Gamma(), Gaussian(), LCE_Breed_Disperse::get_parent(), LCE_Disperse_base::getMigrationIndex(), LCE_Disperse_base::getMigrationPatchBackward(), LCE_Disperse_base::getMigrationPatchForward(), TProtoQuanti::getMutationEffectBivariateDiallelic(), LCE_QuantiInit::init_allele_freq(), TT_BDMI::init_sequence(), TTDeletMutations_bitstring::init_sequence(), TTDispersal::init_sequence(), TTNeutralGenes::init_sequence(), LogNormal(), LCE_Breed_Selection::makeOffspringWithSelection(), LCE_Breed_Disperse::mate_selfing(), LCE_Disperse_EvolDisp::Migrate_Island(), LCE_Disperse_EvolDisp::Migrate_Island_Propagule(), LCE_Disperse_EvolDisp::Migrate_Lattice(), LCE_Disperse_ConstDisp::MigratePatchByNumber(), MultinomialOnNormalizedValarrayZipper_scrambleOut(), TTDispersal::mutate(), TTWolbachia::mutate(), TTNeutralGenes::mutate_2all(), TProtoQuanti::mutate_diallelic_no_pleio(), TProtoQuanti::mutate_diallelic_pleio(), TProtoQuanti::mutate_diallelic_var_pleio(), TT_BDMI::mutate_diplo(), TProtoQuanti::mutate_full_pleio(), TT_BDMI::mutate_haplo(), TProtoQuanti::mutate_inplace_full_pleio(), TProtoQuanti::mutate_inplace_no_pleio(), TProtoQuanti::mutate_inplace_var_pleio(), TTNeutralGenes::mutate_KAM(), TProtoQuanti::mutate_no_pleio(), TTDeletMutations_bitstring::mutate_noredraw(), TTDeletMutations_bitstring::mutate_noredraw_noBackMutation(), TTDeletMutations_bitstring::mutate_redraw(), TTNeutralGenes::mutate_SSM(), TProtoQuanti::mutate_var_pleio(), LCE_Breed_base::partialMonoginy(), LCE_Breed_base::partialPolyginy(), LCE_Breed_base::partialPolyginy_manyMales(), LCE_Breed_base::partialSelfing(), Poisson(), LCE_Patch_Extinction::rand_exp(), LCE_Patch_Extinction::rand_uniform(), RandBool(), LCE_Breed_base::random_hermaphrodite(), LCE_Breed_base::RandomMating(), RandULong(), GeneticMap::recombine(), LCE_Resize::regulateAgeClassNoBackup(), LCE_Resize::regulateAgeClassWithBackup(), LCE_Regulation::regulatePatch(), ParamsParser::runif(), Sample(), LCE_Cross::sampleAmongPop(), SampleSeq(), SampleSeqWithReciprocal(), LCE_Cross::sampleWithinPop(), ScrambleArrayUInt(), LCE_BreedAssortativeMating::ScrambleContainer(), LCE_Disperse_base::setPropaguleTargets(), TTProtoWithMap::setRecombinationMapRandom(), setSpatialMatrix(), LCE_Breed_Disperse::stochasticFecundityGrowth(), Uniform(), LCE_Breed_Wolbachia::wolbachia_model_1(), LCE_Breed_base::WrightFisherPopulation(), and LCE_Breed_Quanti::WrightFisherPopulation().