diff options
Diffstat (limited to 'misc.c')
-rw-r--r-- | misc.c | 55 |
1 files changed, 0 insertions, 55 deletions
@@ -1,55 +0,0 @@ -#include <stdint.h> -#include <math.h> - -/**************************** -** RANDOM NUMBER GENERATOR ** -***************************** -** This is a second-order linear congruential random number -** generator. Its advantage is (of course) that it can be -** seeded and will thus produce repeatable sequences of -** random numbers. -*/ - -/**************************** -* randnum() * -***************************** -** Second order linear congruential generator. -** Constants suggested by J. G. Skellam. -** If val==0, returns next member of sequence. -** val!=0, restart generator. -*/ - -int32_t randnum(int32_t val) { - static int32_t randw[2] = { 13 , 117 }; - int32_t interm; - - if (val != 0) { - randw[0] = 13; - randw[1] = 117; - } - - interm = (randw[0]* (int32_t)254754 + randw[1]*(int32_t)529562) % (int32_t)999563; - randw[1] = randw[0]; - randw[0] = interm; - return(interm); -} - -/**************************** -* randwc() * -***************************** -** Returns signed 32-bit random modulo num. -*/ -int32_t randwc(int32_t num) { - return(randnum(0) % num); -} - -/*************************** -** abs_randwc() ** -**************************** -** Same as randwc(), only this routine returns only -** positive numbers. -*/ -uint32_t abs_randwc(uint32_t num) { - return abs(randwc(num)); -} - |