X-Git-Url: https://hackdaworld.org/gitweb/?a=blobdiff_plain;f=random%2Frandom.h;fp=random%2Frandom.h;h=8a212767885730f10fb90759149ecc81a369d15f;hb=3ffe2a08e25fc091b6241885055450009267e2d8;hp=0000000000000000000000000000000000000000;hpb=b040d775deb32173e6536464a3e2ad95a6a5bd55;p=physik%2Fposic.git diff --git a/random/random.h b/random/random.h new file mode 100644 index 0000000..8a21276 --- /dev/null +++ b/random/random.h @@ -0,0 +1,48 @@ +/* + * random.c - random functions header file + * + * author: Frank Zirkelbach + * + */ + +#ifndef RANDOM_H +#define RANDOM_H + +/* datatypes */ + +typedef struct s_random { + int fd; + int logfd; + unsigned char status; + unsigned int *buffer; + unsigned int *b_ptr; + double gauss; +} t_random; + +/* defines */ + +#define RAND_STAT_INITIALIZED 0x01 +#define RAND_STAT_VERBOSE 0x02 +#define RAND_STAT_UDEV 0x04 +#define RAND_STAT_GAUSS 0x08 + +#define RAND_BUFSIZE (1024) /* 16 mega byte */ + +#define URAND_MAX 0xffffffff +#define URAND_MAX_PLUS_ONE 0x100000000 + +/* function prototypes */ + +int rand_init(t_random *random,char *randomfile,int logfd); +int rand_close(t_random *random); +unsigned int rand_get(t_random *random); +double rand_get_double(t_random *random); +double rand_get_double_linear(t_random *random,double a,double b); +double rand_get_gauss(t_random *random); +unsigned int rand_get_int_linear(t_random *radnom,unsigned int max, + double a,double b); +unsigned int rand_get_reject(t_random *random,unsigned int max_x, + unsigned int max_y,unsigned int *graph); + + +#endif /* RANDOM_H */