diff options
author | Mark Dickinson <dickinsm@gmail.com> | 2009-04-18 13:58:18 (GMT) |
---|---|---|
committer | Mark Dickinson <dickinsm@gmail.com> | 2009-04-18 13:58:18 (GMT) |
commit | f253786a807967c2a7f289fa294b66d5dffadcdd (patch) | |
tree | b5583470a84088050578da953c1ff16946b9ad5e | |
parent | f498113f3f8585f5e7c5f4cedca0108c41628c75 (diff) | |
download | cpython-f253786a807967c2a7f289fa294b66d5dffadcdd.zip cpython-f253786a807967c2a7f289fa294b66d5dffadcdd.tar.gz cpython-f253786a807967c2a7f289fa294b66d5dffadcdd.tar.bz2 |
Add check for C99 round function to configure, and define
a fallback function if round doesn't exist.
-rw-r--r-- | Include/pymath.h | 4 | ||||
-rw-r--r-- | Python/pymath.c | 13 | ||||
-rwxr-xr-x | configure | 5 | ||||
-rw-r--r-- | configure.in | 2 | ||||
-rw-r--r-- | pyconfig.h.in | 3 |
5 files changed, 24 insertions, 3 deletions
diff --git a/Include/pymath.h b/Include/pymath.h index 8872e8a..816691a 100644 --- a/Include/pymath.h +++ b/Include/pymath.h @@ -22,6 +22,10 @@ functions and constants extern double copysign(double, double); #endif +#ifndef HAVE_ROUND +extern double round(double); +#endif + #ifndef HAVE_ACOSH extern double acosh(double); #endif diff --git a/Python/pymath.c b/Python/pymath.c index 2e049be..eb06eb2 100644 --- a/Python/pymath.c +++ b/Python/pymath.c @@ -69,6 +69,19 @@ copysign(double x, double y) } #endif /* HAVE_COPYSIGN */ +#ifndef HAVE_ROUND +double +round(double x) +{ + double absx, y; + absx = fabs(x); + y = floor(absx); + if (absx - y >= 0.5) + y += 1.0; + return copysign(y, x); +} +#endif /* HAVE_ROUND */ + #ifndef HAVE_LOG1P #include <float.h> @@ -1,5 +1,5 @@ #! /bin/sh -# From configure.in Revision: 71274 . +# From configure.in Revision: 71663 . # Guess values for system-dependent variables and create Makefiles. # Generated by GNU Autoconf 2.61 for python 3.1. # @@ -22310,7 +22310,8 @@ fi -for ac_func in acosh asinh atanh copysign expm1 finite hypot log1p + +for ac_func in acosh asinh atanh copysign expm1 finite hypot log1p round do as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh` { echo "$as_me:$LINENO: checking for $ac_func" >&5 diff --git a/configure.in b/configure.in index b3bd00f..7f7dc7f 100644 --- a/configure.in +++ b/configure.in @@ -3337,7 +3337,7 @@ then [Define if tanh(-0.) is -0., or if platform doesn't have signed zeros]) fi -AC_CHECK_FUNCS([acosh asinh atanh copysign expm1 finite hypot log1p]) +AC_CHECK_FUNCS([acosh asinh atanh copysign expm1 finite hypot log1p round]) AC_CHECK_DECLS([isinf, isnan, isfinite], [], [], [[#include <math.h>]]) LIBS=$LIBS_SAVE diff --git a/pyconfig.h.in b/pyconfig.h.in index 72f5fb3..1807d80 100644 --- a/pyconfig.h.in +++ b/pyconfig.h.in @@ -521,6 +521,9 @@ /* Define if you have readline 4.0 */ #undef HAVE_RL_PRE_INPUT_HOOK +/* Define to 1 if you have the `round' function. */ +#undef HAVE_ROUND + /* Define to 1 if you have the `select' function. */ #undef HAVE_SELECT |