From e6e364088ac5c980e3fb99300ba74cc26296000b Mon Sep 17 00:00:00 2001 From: "Marc G. Fournier" Date: Mon, 2 Feb 1998 00:04:08 +0000 Subject: Move all the isinf() stuff from float.c to isinf.c, and build it according to configure vs port specific #ifdef's... --- src/backend/port/isinf.c | 60 +++++++++++++++++++++++++++++++++++++++++++----- 1 file changed, 54 insertions(+), 6 deletions(-) (limited to 'src/backend/port/isinf.c') diff --git a/src/backend/port/isinf.c b/src/backend/port/isinf.c index ca5d22bfe5e..6e9d83e600b 100644 --- a/src/backend/port/isinf.c +++ b/src/backend/port/isinf.c @@ -1,15 +1,63 @@ -/* $Id: isinf.c,v 1.1 1998/01/15 20:54:37 scrappy Exp $ */ +/* $Id: isinf.c,v 1.2 1998/02/02 00:03:46 scrappy Exp $ */ -#include #include - #include "config.h" +#if HAVE_FPCLASS +# if HAVE_IEEEFP_H +# include +# endif +int +isinf(double d) +{ + fpclass_t type = fpclass(d); + + switch (type) + { + case FP_SNAN: + case FP_QNAN: + case FP_NINF: + case FP_PINF: + return (1); + default: + break; + } + return (0); +} +#endif +#if defined(HAVE_FP_CLASS) || defined(HAVE_FP_CLASS_D) +# if HAVE_FP_CLASS_H +# include +# endif +int +isinf(x) +double x; +{ +#if HAVE_FP_CLASS + int fpclass = fp_class(x); +#else + int fpclass = fp_class_d(x); +#endif + + if (fpclass == FP_POS_INF) + return (1); + if (fpclass == FP_NEG_INF) + return (-1); + return (0); +} +#endif + +#if defined(HAVE_CLASS) int isinf(double x) { - if((fpclass(x) == FP_PINF) || (fpclass(x) == FP_NINF)) return 1; - else return 0; -} + int fpclass = class(x); + if (fpclass == FP_PLUS_INF) + return (1); + if (fpclass == FP_MINUS_INF) + return (-1); + return (0); +} +#endif -- cgit v1.2.3