Mercurial > hg > xemacs-beta
comparison src/number-mp.h @ 5602:c9e5612f5424
Support the MP library on recent FreeBSD, have it pass relevant tests.
src/ChangeLog addition:
2011-11-26 Aidan Kehoe <kehoea@parhasard.net>
* number-mp.c (bignum_to_string):
Don't overwrite the accumulator we've just set up for this
function.
* number-mp.c (BIGNUM_TO_TYPE):
mp_itom() doesn't necessarily do what this code used to think with
negative numbers, it can treat them as unsigned ints. Subtract
numbers from bignum_zero instead of multiplying them by -1 to
convert them to their negative equivalents.
* number-mp.c (bignum_to_int):
* number-mp.c (bignum_to_uint):
* number-mp.c (bignum_to_long):
* number-mp.c (bignum_to_ulong):
* number-mp.c (bignum_to_double):
Use the changed BIGNUM_TO_TYPE() in these functions.
* number-mp.c (bignum_ceil):
* number-mp.c (bignum_floor):
In these functions, be more careful about rounding to positive and
negative infinity, respectively. Don't use the sign of QUOTIENT
when working out out whether to add or subtract one, rather use
the sign QUOTIENT would have if arbitrary-precision division were
done.
* number-mp.h:
* number-mp.h (MP_GCD):
Wrap #include <mp.h> in BEGIN_C_DECLS/END_C_DECLS.
* number.c (Fbigfloat_get_precision):
* number.c (Fbigfloat_set_precision):
Don't attempt to call XBIGFLOAT_GET_PREC if this build doesn't
support big floats.
author | Aidan Kehoe <kehoea@parhasard.net> |
---|---|
date | Sat, 26 Nov 2011 17:59:14 +0000 |
parents | 2aa9cd456ae7 |
children | 3192994c49ca |
comparison
equal
deleted
inserted
replaced
5601:3e5d5e8e4bb7 | 5602:c9e5612f5424 |
---|---|
30 /* BSD MP libraries without MP_PREFIX define a function named pow in mp.h that | 30 /* BSD MP libraries without MP_PREFIX define a function named pow in mp.h that |
31 has a different prototype from the one in math.h. We don't use that | 31 has a different prototype from the one in math.h. We don't use that |
32 function anyway, so we do this for safety purposes. However, this means | 32 function anyway, so we do this for safety purposes. However, this means |
33 that number-mp.h must always be included before math.h. */ | 33 that number-mp.h must always be included before math.h. */ |
34 #define pow mp_pow | 34 #define pow mp_pow |
35 BEGIN_C_DECLS | |
35 #include <mp.h> | 36 #include <mp.h> |
37 END_C_DECLS | |
36 #undef pow | 38 #undef pow |
37 | 39 |
38 #ifdef MP_PREFIX | 40 #ifdef MP_PREFIX |
39 #define MP_GCD mp_gcd | 41 #define MP_GCD mp_gcd |
40 #define MP_ITOM mp_itom | 42 #define MP_ITOM mp_itom |