23 lines
711 B
C
23 lines
711 B
C
/* Wallace generator for normally distributed random variates
|
|
Copyright Holger Vogt, 2008
|
|
|
|
Calling sequence:
|
|
initw(void); initialize using srand(seed)
|
|
double x = GaussWa; returns normally distributed random variate
|
|
|
|
*/
|
|
|
|
|
|
|
|
extern double *outgauss; /*output vector for user access */
|
|
extern unsigned int variate_used; /* actual index of variate called by user */
|
|
extern double ScaleGauss; /* scale factor, including chi square correction */
|
|
|
|
double NewWa(void); /* generate new pool, return outgauss[0] */
|
|
|
|
#define GaussWa ((--variate_used)?(outgauss[variate_used]*ScaleGauss):NewWa())
|
|
|
|
void initw(void); /* initialization of Wallace generator */
|
|
|
|
void PolarGauss(double* py1, double* py2);
|