nearly finished init stuff (probs with rand function!)
[physik/posic.git] / random / random.h
diff --git a/random/random.h b/random/random.h
new file mode 100644 (file)
index 0000000..8a21276
--- /dev/null
@@ -0,0 +1,48 @@
+/*
+ * 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 */