diff options
Diffstat (limited to 'libguile/random.h')
-rw-r--r-- | libguile/random.h | 50 |
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]; |