From 8e5446f902c58a48796c1f0e25a263b7268afe34 Mon Sep 17 00:00:00 2001 From: Mark Dickinson Date: Sat, 18 Apr 2009 14:41:37 +0000 Subject: Backport r71704 (add configure check for C99 round function) to trunk. --- Include/pymath.h | 4 ++++ Python/pymath.c | 13 +++++++++++++ configure | 5 +++-- configure.in | 2 +- pyconfig.h.in | 3 +++ 5 files changed, 24 insertions(+), 3 deletions(-) diff --git a/Include/pymath.h b/Include/pymath.h index 6ad174d..2cb2a23 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 2749688..6438058 100644 --- a/Python/pymath.c +++ b/Python/pymath.c @@ -47,6 +47,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 17b932d..bf46b24 100755 --- a/configure +++ b/configure @@ -1,5 +1,5 @@ #! /bin/sh -# From configure.in Revision: 70903 . +# From configure.in Revision: 71009 . # Guess values for system-dependent variables and create Makefiles. # Generated by GNU Autoconf 2.61 for python 2.7. # @@ -22169,7 +22169,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 5505dfb..1cb6cfe 100644 --- a/configure.in +++ b/configure.in @@ -3250,7 +3250,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 a7f1ab1..4452566 100644 --- a/pyconfig.h.in +++ b/pyconfig.h.in @@ -504,6 +504,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 -- cgit v0.12