mirror of
https://git.savannah.gnu.org/git/guile.git
synced 2025-04-30 03:40:34 +02:00
remove SCM_HAVE_T_INT64, SCM_HAVE_T_UINT64
* libguile/__scm.h: * libguile/numbers.h: * libguile/random.c: * libguile/srfi-4.c: * libguile/srfi-4.h: * libguile/numbers.c: * test-suite/standalone/test-conversion.c: * libguile/gen-scmconfig.c: As we require 64-bit integers in configure.ac, remove conditional definition of 64-bit types.
This commit is contained in:
parent
77b139121d
commit
4ca4826997
8 changed files with 8 additions and 86 deletions
|
@ -77,8 +77,6 @@ scm_t_rng scm_the_rng;
|
|||
#define M_PI 3.14159265359
|
||||
#endif
|
||||
|
||||
#if SCM_HAVE_T_UINT64
|
||||
|
||||
unsigned long
|
||||
scm_i_uniform32 (scm_t_i_rstate *state)
|
||||
{
|
||||
|
@ -89,38 +87,6 @@ scm_i_uniform32 (scm_t_i_rstate *state)
|
|||
return w;
|
||||
}
|
||||
|
||||
#else
|
||||
|
||||
/* ww This is a portable version of the same RNG without 64 bit
|
||||
* * aa arithmetic.
|
||||
* ----
|
||||
* xx It is only intended to provide identical behaviour on
|
||||
* xx platforms without 8 byte longs or long longs until
|
||||
* xx someone has implemented the routine in assembler code.
|
||||
* xxcc
|
||||
* ----
|
||||
* ccww
|
||||
*/
|
||||
|
||||
#define L(x) ((x) & 0xffff)
|
||||
#define H(x) ((x) >> 16)
|
||||
|
||||
unsigned long
|
||||
scm_i_uniform32 (scm_t_i_rstate *state)
|
||||
{
|
||||
scm_t_uint32 x1 = L (A) * L (state->w);
|
||||
scm_t_uint32 x2 = L (A) * H (state->w);
|
||||
scm_t_uint32 x3 = H (A) * L (state->w);
|
||||
scm_t_uint32 w = L (x1) + L (state->c);
|
||||
scm_t_uint32 m = H (x1) + L (x2) + L (x3) + H (state->c) + H (w);
|
||||
scm_t_uint32 x4 = H (A) * H (state->w);
|
||||
state->w = w = (L (m) << 16) + L (w);
|
||||
state->c = H (x2) + H (x3) + x4 + H (m);
|
||||
return w;
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
void
|
||||
scm_i_init_rstate (scm_t_i_rstate *state, const char *seed, int n)
|
||||
{
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue