Woolz Image Processing
Version 1.7.5
|
Files | |
file | AlgRand.c |
Provides functions which produce pseudo-random values. | |
file | AlgRandZig.c |
The Gaussian distribution random number generator is based on the Ziggurat method for generating random variables as used in the GNU scientific library. For details of the Ziggurat method see: George Marsaglia, Wai Wan Tsang The Ziggurat Method for Generating Random Variables, Journal of Statistical Software, vol. 5 (2000), no. 8 (http://www.jstatsoft.org/v05/i08/). | |
file | AlgShuffle.c |
Functions for randomly permuting data. | |
Functions | |
void | AlgRandSeed (long seed) |
Seeds the pseudo-random number generators. More... | |
double | AlgRandUniform (void) |
Produces a pseudo-random value from a uniform distribution over the interval [0.0, 1.0]. More... | |
double | AlgRandNormal (double mu, double sigma) |
Produces a pseudo-random value from a normal distribution over the interval [-1.0, 1.0]. More... | |
double | AlgRandZigNormal (double mu, double sigma) |
Generates a random double from a gaussian distribution the Ziggurat method. The distribution generated by this function is not quite as smooth as that generated by AlgRandNormal() but the time taken is a factor of ten smaller. More... | |
AlgError | AlgShuffleIdx (int nShuffle, int *shuffle, int seed) |
Inserts indicies into the given array which can be used to shuffle data. The permuted indicies are in the range [0-(nShuffle-1)] with a random order. This shuffling algorithm is based on a published paper! Dursenfeld R. "Random Permutation" CACM July 1964 No 7 p420. More... | |
void AlgRandSeed | ( | long | seed | ) |
Seeds the pseudo-random number generators.
seed | Given seed value. |
Referenced by AlcHeapTop(), WlzCMeshStrainTensorAtPts(), WlzGaussNoise(), and WlzGreySetRange().
double AlgRandUniform | ( | void | ) |
Produces a pseudo-random value from a uniform distribution over the interval [0.0, 1.0].
Referenced by AlcHeapTop(), AlgRandNormal(), AlgRandZigNormal(), WlzContourRBFBndObj3D(), WlzMatchICPWeightMatches(), WlzPointsDither(), WlzPointsFromDomObj(), and WlzValueDitherI().
double AlgRandNormal | ( | double | mu, |
double | sigma | ||
) |
Produces a pseudo-random value from a normal distribution over the interval [-1.0, 1.0].
mu | Mean of distribution. |
sigma | Standard deviation of distribution. |
References AlgRandUniform().
Referenced by WlzCutObjToValBox3D(), and WlzGaussNoise().
double AlgRandZigNormal | ( | double | mu, |
double | sigma | ||
) |
Generates a random double from a gaussian distribution the Ziggurat method. The distribution generated by this function is not quite as smooth as that generated by AlgRandNormal() but the time taken is a factor of ten smaller.
mu | Mean of distribution. |
sigma | Standard deviation of distribution. |
References AlgRandUniform().
Referenced by WlzCMeshStrainTensorAtPts(), and WlzGreySetRange().
AlgError AlgShuffleIdx | ( | int | nShuffle, |
int * | shuffle, | ||
int | seed | ||
) |
Inserts indicies into the given array which can be used to shuffle data. The permuted indicies are in the range [0-(nShuffle-1)] with a random order. This shuffling algorithm is based on a published paper! Dursenfeld R. "Random Permutation" CACM July 1964 No 7 p420.
nShuffle | Number of permuted indicies to insert into in shuffle. |
shuffle | Array into which shuffled indicies are placed. |
seed | Seed fro random permutation. |
References ALG_ERR_FUNC, and ALG_ERR_NONE.
Referenced by WlzContourRBFBndObj3D(), WlzPointsFromDomObj(), WlzSnapFit(), and WlzVerticesBuildTree().