Sha256: 24f80ca5dbf33db3ea6b6e0c393b828cc75a7b71175f976b3ae1d9f49a83d9d0
Contents?: true
Size: 1.02 KB
Versions: 130
Compression:
Stored size: 1.02 KB
Contents
/* public domain rewrite of isinf(3) */ #ifdef __osf__ #define _IEEE 1 #include <nan.h> int isinf(double n) { if (IsNANorINF(n) && IsINF(n)) { return 1; } else { return 0; } } #else #include "ruby/config.h" #if defined(HAVE_FINITE) && defined(HAVE_ISNAN) #include <math.h> #ifdef HAVE_IEEEFP_H #include <ieeefp.h> #endif /* * isinf may be provided only as a macro. * ex. HP-UX, Solaris 10 * http://www.gnu.org/software/automake/manual/autoconf/Function-Portability.html */ #ifndef isinf int isinf(double n) { return (!finite(n) && !isnan(n)); } #endif #else #ifdef HAVE_STRING_H # include <string.h> #else # include <strings.h> #endif static double zero(void) { return 0.0; } static double one (void) { return 1.0; } static double inf (void) { return one() / zero(); } int isinf(double n) { static double pinf = 0.0; static double ninf = 0.0; if (pinf == 0.0) { pinf = inf(); ninf = -pinf; } return memcmp(&n, &pinf, sizeof n) == 0 || memcmp(&n, &ninf, sizeof n) == 0; } #endif #endif
Version data entries
130 entries across 130 versions & 2 rubygems