Commit e6e36408 authored by Marc G. Fournier's avatar Marc G. Fournier

Move all the isinf() stuff from float.c to isinf.c, and build it according to

configure vs port specific #ifdef's...
parent 79f99a38
/* A lexical scanner generated by flex */ /* A lexical scanner generated by flex */
/* Scanner skeleton version: /* Scanner skeleton version:
* $Header: /cvsroot/pgsql/src/backend/parser/Attic/scan.c,v 1.10 1998/01/27 03:25:07 scrappy Exp $ * $Header: /cvsroot/pgsql/src/backend/parser/Attic/scan.c,v 1.11 1998/02/02 00:03:39 scrappy Exp $
*/ */
#define FLEX_SCANNER #define FLEX_SCANNER
...@@ -539,7 +539,7 @@ char *yytext; ...@@ -539,7 +539,7 @@ char *yytext;
* *
* *
* IDENTIFICATION * IDENTIFICATION
* $Header: /cvsroot/pgsql/src/backend/parser/Attic/scan.c,v 1.10 1998/01/27 03:25:07 scrappy Exp $ * $Header: /cvsroot/pgsql/src/backend/parser/Attic/scan.c,v 1.11 1998/02/02 00:03:39 scrappy Exp $
* *
*------------------------------------------------------------------------- *-------------------------------------------------------------------------
*/ */
......
/* $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 <ieeefp.h>
#include <math.h> #include <math.h>
#include "config.h" #include "config.h"
#if HAVE_FPCLASS
# if HAVE_IEEEFP_H
# include <ieeefp.h>
# 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 <fp_class.h>
# 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 int
isinf(double x) isinf(double x)
{ {
if((fpclass(x) == FP_PINF) || (fpclass(x) == FP_NINF)) return 1; int fpclass = class(x);
else return 0;
}
if (fpclass == FP_PLUS_INF)
return (1);
if (fpclass == FP_MINUS_INF)
return (-1);
return (0);
}
#endif
...@@ -7,7 +7,7 @@ ...@@ -7,7 +7,7 @@
* *
* *
* IDENTIFICATION * IDENTIFICATION
* $Header: /cvsroot/pgsql/src/backend/utils/adt/float.c,v 1.27 1998/01/13 19:28:32 scrappy Exp $ * $Header: /cvsroot/pgsql/src/backend/utils/adt/float.c,v 1.28 1998/02/02 00:03:54 scrappy Exp $
* *
*------------------------------------------------------------------------- *-------------------------------------------------------------------------
*/ */
...@@ -1507,130 +1507,3 @@ double x; ...@@ -1507,130 +1507,3 @@ double x;
} }
#endif /* !HAVE_CBRT */ #endif /* !HAVE_CBRT */
#ifndef HAVE_ISINF
#if defined(aix)
#ifdef CLASS_CONFLICT
/* we want the math symbol */
#undef class
#endif /* CLASS_CONFICT */
/* The gcc doesn't support isinf() (without libgcc?) so we
* have to do it - Gerhard Reitofer
*/
#ifdef __GNUC__
static int
isinf(double x)
{
if (x == HUGE_VAL)
return(1);
if (x == -HUGE_VAL)
return(-1);
return(0);
}
#else /* __GNUC__ */
static int
isinf(double x)
{
int fpclass = class(x);
if (fpclass == FP_PLUS_INF)
return (1);
if (fpclass == FP_MINUS_INF)
return (-1);
return (0);
}
#endif /* __GNUC__ */
#endif /* aix */
#if defined(ultrix4)
#include <fp_class.h>
static int
isinf(x)
double x;
{
int fpclass = fp_class_d(x);
if (fpclass == FP_POS_INF)
return (1);
if (fpclass == FP_NEG_INF)
return (-1);
return (0);
}
#endif /* ultrix4 */
#if defined(alpha)
#include <fp_class.h>
static int
isinf(x)
double x;
{
int fpclass = fp_class(x);
if (fpclass == FP_POS_INF)
return (1);
if (fpclass == FP_NEG_INF)
return (-1);
return (0);
}
#endif /* alpha */
#if defined(sparc_solaris) || defined(i386_solaris) || defined(svr4) || \
defined(sco)
#include <ieeefp.h>
static int
isinf(d)
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 /* sparc_solaris */
#if defined(irix5)
#include <ieeefp.h>
static int
isinf(d)
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 /* irix5 */
#endif /* !HAVE_ISINF */
This diff is collapsed.
...@@ -433,7 +433,7 @@ AC_HEADER_SYS_WAIT ...@@ -433,7 +433,7 @@ AC_HEADER_SYS_WAIT
AC_CHECK_HEADERS(limits.h unistd.h termios.h values.h sys/select.h) AC_CHECK_HEADERS(limits.h unistd.h termios.h values.h sys/select.h)
AC_CHECK_HEADERS(sys/resource.h netdb.h arpa/inet.h) AC_CHECK_HEADERS(sys/resource.h netdb.h arpa/inet.h)
AC_CHECK_HEADERS(readline.h history.h dld.h crypt.h endian.h float.h) AC_CHECK_HEADERS(readline.h history.h dld.h crypt.h endian.h float.h)
AC_CHECK_HEADERS(readline/history.h) AC_CHECK_HEADERS(readline/history.h ieeefp.h fp_class.h)
dnl Checks for typedefs, structures, and compiler characteristics. dnl Checks for typedefs, structures, and compiler characteristics.
AC_C_CONST AC_C_CONST
...@@ -465,7 +465,8 @@ AC_PROG_GCC_TRADITIONAL ...@@ -465,7 +465,8 @@ AC_PROG_GCC_TRADITIONAL
AC_FUNC_MEMCMP AC_FUNC_MEMCMP
AC_TYPE_SIGNAL AC_TYPE_SIGNAL
AC_FUNC_VPRINTF AC_FUNC_VPRINTF
AC_CHECK_FUNCS(tzset vfork memmove sigsetjmp kill sysconf) AC_CHECK_FUNCS(tzset vfork memmove sigsetjmp kill sysconf fpclass)
AC_CHECK_FUNCS(fp_class fp_class_d class)
AC_CHECK_FUNCS(sigprocmask waitpid setsid fcvt) AC_CHECK_FUNCS(sigprocmask waitpid setsid fcvt)
AC_CHECK_FUNC(isinf, AC_CHECK_FUNC(isinf,
AC_DEFINE(HAVE_ISINF), AC_DEFINE(HAVE_ISINF),
......
...@@ -14,6 +14,12 @@ ...@@ -14,6 +14,12 @@
* The following is set using configure. * The following is set using configure.
*/ */
/* Set to 1 if you have <fp_class.h> */
#undef HAVE_FP_CLASS_H
/* Set to 1 if you have <ieeefp.h> */
#undef HAVE_IEEEFP_H
/* Set to 1 if you have <arpa/inet.h> */ /* Set to 1 if you have <arpa/inet.h> */
#undef HAVE_ARPA_INET_H #undef HAVE_ARPA_INET_H
...@@ -53,6 +59,18 @@ ...@@ -53,6 +59,18 @@
/* Set to 1 if you have <dld.h> */ /* Set to 1 if you have <dld.h> */
#undef HAVE_DLD_H #undef HAVE_DLD_H
/* Set to 1 if you have fp_class() */
#undef HAVE_FP_CLASS
/* Set to 1 if you have class() */
#undef HAVE_CLASS
/* Set to 1 if you have fp_class_d() */
#undef HAVE_FP_CLASS_D
/* Set to 1 if you have fpclass() */
#undef HAVE_FPCLASS
/* Set to 1 if you have isinf() */ /* Set to 1 if you have isinf() */
#undef HAVE_ISINF #undef HAVE_ISINF
#ifndef HAVE_ISINF #ifndef HAVE_ISINF
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment