AC_CHECK_FUNC(asprintf, [HAVE_ASPRINTF=1], [HAVE_ASPRINTF=0])
AC_DEFINE([HAVE_ASPRINTF])
AC_FUNC_FSEEKO()
+AC_CHECK_FUNC(isfinite, [HAVE_ISFINITE=1], [HAVE_ISFINITE=0])
+AC_DEFINE([HAVE_ISFINITE])
+
dnl
dnl MingW requires use of pwd -W to give proper Windows (not MingW) paths
*
**********************************************************************/
+#if !HAVE_ISFINITE
+#ifndef _GNU_SOURCE
+#define _GNU_SOURCE
+#endif
+#endif
+
#include "liblwgeom_internal.h"
#include "lwgeom_log.h"
#include <stdlib.h>
int gbox_is_valid(const GBOX *gbox)
{
/* X */
- if ( ! finite(gbox->xmin) || isnan(gbox->xmin) ||
- ! finite(gbox->xmax) || isnan(gbox->xmax) )
+ if ( ! isfinite(gbox->xmin) || isnan(gbox->xmin) ||
+ ! isfinite(gbox->xmax) || isnan(gbox->xmax) )
return LW_FALSE;
/* Y */
- if ( ! finite(gbox->ymin) || isnan(gbox->ymin) ||
- ! finite(gbox->ymax) || isnan(gbox->ymax) )
+ if ( ! isfinite(gbox->ymin) || isnan(gbox->ymin) ||
+ ! isfinite(gbox->ymax) || isnan(gbox->ymax) )
return LW_FALSE;
/* Z */
if ( FLAGS_GET_GEODETIC(gbox->flags) || FLAGS_GET_Z(gbox->flags) )
{
- if ( ! finite(gbox->zmin) || isnan(gbox->zmin) ||
- ! finite(gbox->zmax) || isnan(gbox->zmax) )
+ if ( ! isfinite(gbox->zmin) || isnan(gbox->zmin) ||
+ ! isfinite(gbox->zmax) || isnan(gbox->zmax) )
return LW_FALSE;
}
/* M */
if ( FLAGS_GET_M(gbox->flags) )
{
- if ( ! finite(gbox->mmin) || isnan(gbox->mmin) ||
- ! finite(gbox->mmax) || isnan(gbox->mmax) )
+ if ( ! isfinite(gbox->mmin) || isnan(gbox->mmin) ||
+ ! isfinite(gbox->mmax) || isnan(gbox->mmax) )
return LW_FALSE;
}
double lwcircstring_length_2d(const LWCIRCSTRING *circ)
{
- double length = 0.0;
if ( lwcircstring_is_empty(circ) )
return 0.0;
- return ptarray_arc_length_2d(circ->points);
+ return ptarray_arc_length_2d(circ->points);
}
/*
POSTGIS_DEBUGF(4, "[GIST] got entry_in->key: %s", box2df_to_string(&bbox_out));
/* Check all the dimensions for finite values */
- if ( ! finite(bbox_out.xmax) || ! finite(bbox_out.xmin) ||
- ! finite(bbox_out.ymax) || ! finite(bbox_out.ymin) )
+ if ( ! isfinite(bbox_out.xmax) || ! isfinite(bbox_out.xmin) ||
+ ! isfinite(bbox_out.ymax) || ! isfinite(bbox_out.ymin) )
{
POSTGIS_DEBUG(4, "[GIST] infinite geometry!");
PG_RETURN_POINTER(entry_in);
* If not, use the "unknown" GIDX as a key */
for ( i = 0; i < GIDX_NDIMS(bbox_out); i++ )
{
- if ( ! finite(GIDX_GET_MAX(bbox_out, i))
- || ! finite(GIDX_GET_MIN(bbox_out, i)) )
+ if ( ! isfinite(GIDX_GET_MAX(bbox_out, i))
+ || ! isfinite(GIDX_GET_MIN(bbox_out, i)) )
{
gidx_set_unknown(bbox_out);
gistentryinit(*entry_out,
#undef HAVE_VASPRINTF
#undef HAVE_ASPRINTF
#undef HAVE_FSEEKO
+#undef HAVE_ISFINITE
/* Define to 1 if you have the <dlfcn.h> header file. */
#undef HAVE_DLFCN_H