# HG changeset patch # User jwe # Date 1103382260 0 # Node ID ab4e64f925266db483e2fedbc2f3740035734294 # Parent 69b822a4129caf6b585deb92235c3e3c0095fd73 [project @ 2004-12-18 15:04:20 by jwe] diff -r 69b822a4129c -r ab4e64f92526 ChangeLog --- a/ChangeLog Wed Dec 15 18:34:02 2004 +0000 +++ b/ChangeLog Sat Dec 18 15:04:20 2004 +0000 @@ -1,3 +1,11 @@ +2004-12-17 John W. Eaton + + * configure.in: Use AC_GNU_SOURCE. + +2004-12-17 Orion Poplawski + + * configure.in: Also check for signbit decl. + 2004-12-03 John W. Eaton * aclocal.m4 (OCTAVE_PROG_GPERF): Check with -L C++, not -L ANSI_C. diff -r 69b822a4129c -r ab4e64f92526 configure.in --- a/configure.in Wed Dec 15 18:34:02 2004 +0000 +++ b/configure.in Sat Dec 18 15:04:20 2004 +0000 @@ -29,7 +29,7 @@ EXTERN_CXXFLAGS="$CXXFLAGS" AC_INIT -AC_REVISION($Revision: 1.458 $) +AC_REVISION($Revision: 1.459 $) AC_PREREQ(2.57) AC_CONFIG_SRCDIR([src/octave.cc]) AC_CONFIG_HEADER(config.h) @@ -38,6 +38,8 @@ OCTAVE_HOST_TYPE +AC_GNU_SOURCE + AC_AIX AC_MINIX AC_ISC_POSIX @@ -1153,6 +1155,7 @@ ;; *) AC_CHECK_FUNCS(finite isnan isinf copysign signbit) + AC_CHECK_DECLS(signbit, , , [#include ]) ;; esac diff -r 69b822a4129c -r ab4e64f92526 liboctave/ChangeLog --- a/liboctave/ChangeLog Wed Dec 15 18:34:02 2004 +0000 +++ b/liboctave/ChangeLog Sat Dec 18 15:04:20 2004 +0000 @@ -1,3 +1,10 @@ +2004-12-17 John W. Eaton + + * lo-cieee.c (lo_ieee_signbit): New function. + * lo-ieee.h: Provide decl. + Don't define lo_ieee_signbit as a macro here. + From Orion Poplawski . + 2004-11-18 John W. Eaton * int32NDArray.cc (pow): Delete instantiation. diff -r 69b822a4129c -r ab4e64f92526 liboctave/lo-cieee.c --- a/liboctave/lo-cieee.c Wed Dec 15 18:34:02 2004 +0000 +++ b/liboctave/lo-cieee.c Sat Dec 18 15:04:20 2004 +0000 @@ -153,6 +153,30 @@ return octave_NaN; } +#if ! (defined (signbit) || defined (HAVE_DECL_SIGNBIT)) && defined (HAVE_SIGNBIT) +extern int signbit (double); +#endif + +int +lo_ieee_signbit (double x) +{ +/* In the following definitions, only check x < 0 explicitly to avoid + a function call when it looks like signbit or copysign are actually + functions. */ + +#if defined (signbit) + return signbit (x); +#elif defined (HAVE_SIGNBIT) + return (x < 0 || signbit (x)); +#elif defined (copysign) + return (copysign (1.0, x) < 0); +#elif defined (HAVE_COPYSIGN) + return (x < 0 || copysign (1.0, x) < 0); +#else + return x < 0; +#endif +} + /* ;;; Local Variables: *** ;;; mode: C++ *** diff -r 69b822a4129c -r ab4e64f92526 liboctave/lo-ieee.h --- a/liboctave/lo-ieee.h Wed Dec 15 18:34:02 2004 +0000 +++ b/liboctave/lo-ieee.h Sat Dec 18 15:04:20 2004 +0000 @@ -66,24 +66,7 @@ extern double lo_ieee_na_value (void); extern double lo_ieee_nan_value (void); -/* In the following definitions, only check x < 0 explicitly to avoid - a function call when it looks like signbit or copysign are actually - functions. */ - -#if defined (signbit) -#define lo_ieee_signbit(x) signbit (x) -#elif defined (HAVE_SIGNBIT) -#if defined (__MINGW32__) -extern int signbit (double); -#endif -#define lo_ieee_signbit(x) (x < 0 || signbit (x)) -#elif defined (copysign) -#define lo_ieee_signbit(x) (copysign (1.0, x) < 0) -#elif defined (HAVE_COPYSIGN) -#define lo_ieee_signbit(x) (x < 0 || copysign (1.0, x) < 0) -#else -#define lo_ieee_signbit(x) 0 -#endif +extern int lo_ieee_signbit (double); #ifdef __cplusplus }