summaryrefslogtreecommitdiff
path: root/libguile/random.h
diff options
context:
space:
mode:
Diffstat (limited to 'libguile/random.h')
-rw-r--r--libguile/random.h50
1 files changed, 28 insertions, 22 deletions
diff --git a/libguile/random.h b/libguile/random.h
index 797bae4a0..f6d37cc81 100644
--- a/libguile/random.h
+++ b/libguile/random.h
@@ -62,47 +62,53 @@
* Look how the default generator is "plugged in" in scm_init_random().
*/
-typedef struct scm_rstate {
+typedef struct scm_rstate_t {
int reserved0;
double reserved1;
/* Custom fields follow here */
-} scm_rstate;
+} scm_rstate_t;
-typedef struct scm_rng {
+typedef struct scm_rng_t {
size_t rstate_size; /* size of random state */
- unsigned long (*random_bits) (scm_rstate *state); /* gives 32 random bits */
- void (*init_rstate) (scm_rstate *state, char *seed, int n);
- scm_rstate *(*copy_rstate) (scm_rstate *state);
-} scm_rng;
+ unsigned long (*random_bits) (scm_rstate_t *state); /* gives 32 random bits */
+ void (*init_rstate) (scm_rstate_t *state, char *seed, int n);
+ scm_rstate_t *(*copy_rstate) (scm_rstate_t *state);
+} scm_rng_t;
-extern scm_rng scm_the_rng;
+extern scm_rng_t scm_the_rng;
/*
* Default RNG
*/
-typedef struct scm_i_rstate {
- scm_rstate rstate;
+typedef struct scm_i_rstate_t {
+ scm_rstate_t rstate;
unsigned long w;
unsigned long c;
-} scm_i_rstate;
+} scm_i_rstate_t;
-extern unsigned long scm_i_uniform32 (scm_i_rstate *);
-extern void scm_i_init_rstate (scm_i_rstate *, char *seed, int n);
-extern scm_i_rstate *scm_i_copy_rstate (scm_i_rstate *);
+#if (SCM_DEBUG_DEPRECATED == 0)
+# define scm_rstate scm_rstate_t
+# define scm_rng scm_rng_t
+# define scm_i_rstate scm_i_rstate_t
+#endif
+
+extern unsigned long scm_i_uniform32 (scm_i_rstate_t *);
+extern void scm_i_init_rstate (scm_i_rstate_t *, char *seed, int n);
+extern scm_i_rstate_t *scm_i_copy_rstate (scm_i_rstate_t *);
/*
* Random number library functions
*/
-extern scm_rstate *scm_c_make_rstate (char *, int);
-extern scm_rstate *scm_c_default_rstate (void);
+extern scm_rstate_t *scm_c_make_rstate (char *, int);
+extern scm_rstate_t *scm_c_default_rstate (void);
#define scm_c_uniform32(RSTATE) scm_the_rng.random_bits (RSTATE)
-extern double scm_c_uniform01 (scm_rstate *);
-extern double scm_c_normal01 (scm_rstate *);
-extern double scm_c_exp1 (scm_rstate *);
-extern unsigned long scm_c_random (scm_rstate *, unsigned long m);
-extern SCM scm_c_random_bignum (scm_rstate *, SCM m);
+extern double scm_c_uniform01 (scm_rstate_t *);
+extern double scm_c_normal01 (scm_rstate_t *);
+extern double scm_c_exp1 (scm_rstate_t *);
+extern unsigned long scm_c_random (scm_rstate_t *, unsigned long m);
+extern SCM scm_c_random_bignum (scm_rstate_t *, SCM m);
/*
@@ -110,7 +116,7 @@ extern SCM scm_c_random_bignum (scm_rstate *, SCM m);
*/
extern scm_bits_t scm_tc16_rstate;
#define SCM_RSTATEP(obj) SCM_TYP16_PREDICATE (scm_tc16_rstate, obj)
-#define SCM_RSTATE(obj) ((scm_rstate *) SCM_CELL_WORD_1 (obj))
+#define SCM_RSTATE(obj) ((scm_rstate_t *) SCM_CELL_WORD_1 (obj))
extern unsigned char scm_masktab[256];