mirror of
https://git.savannah.gnu.org/git/guile.git
synced 2025-06-11 22:31:12 +02:00
Test for SCM_HAVE_T_UINT64 instead of
SCM_HAVE_T_INT64. (scm_i_uniform32, scm_i_uniform32, scm_i_init_rstate): Use scm_t_uint64 and scm_t_uint32 instead of scm_t_int64 and scm_t_int32.
This commit is contained in:
parent
4c7016dc06
commit
4a9f83ff06
2 changed files with 19 additions and 11 deletions
|
@ -1,3 +1,11 @@
|
||||||
|
2006-02-19 Mikael Djurfeldt <mdj@neurologic.cc>
|
||||||
|
|
||||||
|
* random.c: Test for SCM_HAVE_T_UINT64 instead of
|
||||||
|
SCM_HAVE_T_INT64.
|
||||||
|
(scm_i_uniform32, scm_i_uniform32, scm_i_init_rstate): Use
|
||||||
|
scm_t_uint64 and scm_t_uint32 instead of scm_t_int64 and
|
||||||
|
scm_t_int32.
|
||||||
|
|
||||||
2006-01-04 Ludovic Court<E8>s <ludovic.courtes@laas.fr>
|
2006-01-04 Ludovic Court<E8>s <ludovic.courtes@laas.fr>
|
||||||
|
|
||||||
* gc-segment.c (scm_i_sweep_some_cards): Take a SWEEP_STATS
|
* gc-segment.c (scm_i_sweep_some_cards): Take a SWEEP_STATS
|
||||||
|
|
|
@ -75,13 +75,13 @@ scm_t_rng scm_the_rng;
|
||||||
#define M_PI 3.14159265359
|
#define M_PI 3.14159265359
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if SCM_HAVE_T_INT64
|
#if SCM_HAVE_T_UINT64
|
||||||
|
|
||||||
unsigned long
|
unsigned long
|
||||||
scm_i_uniform32 (scm_t_i_rstate *state)
|
scm_i_uniform32 (scm_t_i_rstate *state)
|
||||||
{
|
{
|
||||||
scm_t_int64 x = (scm_t_int64) A * state->w + state->c;
|
scm_t_uint64 x = (scm_t_uint64) A * state->w + state->c;
|
||||||
scm_t_int32 w = x & 0xffffffffUL;
|
scm_t_uint32 w = x & 0xffffffffUL;
|
||||||
state->w = w;
|
state->w = w;
|
||||||
state->c = x >> 32L;
|
state->c = x >> 32L;
|
||||||
return w;
|
return w;
|
||||||
|
@ -106,12 +106,12 @@ scm_i_uniform32 (scm_t_i_rstate *state)
|
||||||
unsigned long
|
unsigned long
|
||||||
scm_i_uniform32 (scm_t_i_rstate *state)
|
scm_i_uniform32 (scm_t_i_rstate *state)
|
||||||
{
|
{
|
||||||
scm_t_int32 x1 = L (A) * L (state->w);
|
scm_t_uint32 x1 = L (A) * L (state->w);
|
||||||
scm_t_int32 x2 = L (A) * H (state->w);
|
scm_t_uint32 x2 = L (A) * H (state->w);
|
||||||
scm_t_int32 x3 = H (A) * L (state->w);
|
scm_t_uint32 x3 = H (A) * L (state->w);
|
||||||
scm_t_int32 w = L (x1) + L (state->c);
|
scm_t_uint32 w = L (x1) + L (state->c);
|
||||||
scm_t_int32 m = H (x1) + L (x2) + L (x3) + H (state->c) + H (w);
|
scm_t_uint32 m = H (x1) + L (x2) + L (x3) + H (state->c) + H (w);
|
||||||
scm_t_int32 x4 = H (A) * H (state->w);
|
scm_t_uint32 x4 = H (A) * H (state->w);
|
||||||
state->w = w = (L (m) << 16) + L (w);
|
state->w = w = (L (m) << 16) + L (w);
|
||||||
state->c = H (x2) + H (x3) + x4 + H (m);
|
state->c = H (x2) + H (x3) + x4 + H (m);
|
||||||
return w;
|
return w;
|
||||||
|
@ -122,8 +122,8 @@ scm_i_uniform32 (scm_t_i_rstate *state)
|
||||||
void
|
void
|
||||||
scm_i_init_rstate (scm_t_i_rstate *state, const char *seed, int n)
|
scm_i_init_rstate (scm_t_i_rstate *state, const char *seed, int n)
|
||||||
{
|
{
|
||||||
scm_t_int32 w = 0L;
|
scm_t_uint32 w = 0L;
|
||||||
scm_t_int32 c = 0L;
|
scm_t_uint32 c = 0L;
|
||||||
int i, m;
|
int i, m;
|
||||||
for (i = 0; i < n; ++i)
|
for (i = 0; i < n; ++i)
|
||||||
{
|
{
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue