Allow exposing of random number generator state
authorAndreas Rottmann <a.rottmann@gmx.at>
Thu, 22 Jul 2010 16:26:00 +0000 (18:26 +0200)
committerAndy Wingo <wingo@pobox.com>
Mon, 26 Jul 2010 13:00:49 +0000 (15:00 +0200)
commit77b139121d0344d8a89f4d8b85739a3447bac196
tree6288de8faa1e1c9df7a9c545a50f9078f7b3467a
parent2d6a14adc901ea71409ef82c4021f235e99d420d
Allow exposing of random number generator state

Now the random number generator state can be obtained in external
(i.e. `read'/`write'-able) form via the new procedure
`random-state->external'.  An externalized state can be reinstantiated by
calling `external->random-state'.

* libguile/random.c (scm_i_init_rstate_scm, scm_i_expose_rstate): New
  internal functions.
* libguile/random.c (scm_c_make_rstate_scm, scm_external_to_random_state,
  scm_random_state_to_external): New public functions.
* libguile/random.h: Add prototypes for the above functions.

* libguile/random.h (scm_t_rng): Add new fields `init_rstate_scm' and
  `expose_rstate'.
* libguile/random.c (scm_init_random): Initialize the new fields in
  `scm_the_rng'.
NEWS
doc/ref/api-data.texi
libguile/random.c
libguile/random.h