You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
32 lines
1.1 KiB
32 lines
1.1 KiB
/* Last revised 28-1-1999 */
|
|
/* This is the header file FastNorm3.h to be included in code files
|
|
using FastNorm3.c */
|
|
/* I M P O R T A N T ! ! ! ! !
|
|
|
|
The definition below should be altered to ensure that integer
|
|
arithmetic is done on 32-bit words. It may need to be changed from int to
|
|
long on some platforms. The 32-bit requirement arises from the use of
|
|
a Uniform pseudo-random generator in part of the code, which assumes 32-bit
|
|
twos-complement arithmetic. In dire need, replace this generator with
|
|
another more suitable for the platform. The rest of the code assumes only
|
|
that signed integers up to a bit less than 2^31 can be handled.
|
|
*/
|
|
|
|
#define Sw int /* MUST define Sw as a 32-bit integer or longer */
|
|
#define Sf double
|
|
|
|
extern int gaussfaze;
|
|
extern int gaussmask;
|
|
extern double *gausssave;
|
|
extern double GScale;
|
|
|
|
#define FastNorm ((--gaussfaze)?GScale*gausssave[gaussfaze]:fastnorm())
|
|
|
|
void initnorm(Sw seed, Sw quoll);
|
|
Sf fastnorm (void);
|
|
Sf c7rand(Sw*);
|
|
Sw irandm(Sw*);
|
|
unsigned Sw urandm(Sw*);
|
|
double adchi (double a, int *is);
|
|
double rgamma (double g, int *is);
|
|
Sf renormalize(void);
|