mirror of
https://git.savannah.gnu.org/git/guile.git
synced 2025-06-24 20:30:28 +02:00
Enable option to prefer mini-gmp over libgmp
* configure.ac: rework gmp library detection. Add new flag. * libguile.h: modify gmp header inclusion * libguile/Makefile.am: add mini-gmp.[ch] files * libguile/bytevectors.c: add mini-gmp headers * libguile/gen-scmconfig.c: new #include variable GUILE_MINI_GMP * libguile/init.c: add mini-gmp header * libguile/mini-gmp.c: new file * libguile/mini-gmp.h: new file * libguile/numbers.c: add fallback for missing mpz_get_d_2exp * libguile/numbers.h: yse mini-gmp header * libguile/random.c: use mini-gmp header * libguile/socket.c: use mini-gmp header
This commit is contained in:
parent
a4a5fbced3
commit
eb1bd8050e
12 changed files with 4951 additions and 25 deletions
|
@ -398,7 +398,15 @@ scm_i_big2dbl_2exp (SCM b, long *expon_p)
|
|||
|
||||
{
|
||||
long expon;
|
||||
double signif = mpz_get_d_2exp (&expon, SCM_I_BIG_MPZ (b));
|
||||
double signif;
|
||||
#if GUILE_MINI_GMP
|
||||
int iexpon;
|
||||
signif = mpz_get_d (SCM_I_BIG_MPZ (b));
|
||||
signif = frexp (signif, &iexpon);
|
||||
expon = (long) iexpon;
|
||||
#else
|
||||
signif = mpz_get_d_2exp (&expon, SCM_I_BIG_MPZ (b));
|
||||
#endif
|
||||
scm_remember_upto_here_1 (b);
|
||||
*expon_p = expon + shift;
|
||||
return signif;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue