+/*
+ * random.c - random functions header file
+ *
+ * author: Frank Zirkelbach <frank.zirkelbach@physik.uni-augsburg.de>
+ *
+ */
+
+#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 */