diff --git a/Include/pymath.h b/Include/pymath.h index 8872e8a9977..816691abd96 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 2e049be8704..eb06eb2244b 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 diff --git a/configure b/configure index f4ee3109f42..de5c3541fa0 100755 --- a/configure +++ b/configure @@ -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 b3bd00fb270..7f7dc7f0c87 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 ]]) LIBS=$LIBS_SAVE diff --git a/pyconfig.h.in b/pyconfig.h.in index 72f5fb3959e..1807d800642 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