23 #if !defined (octave_lo_ieee_h)
24 #define octave_lo_ieee_h 1
31 #define octave_Inf (lo_ieee_inf_value ())
34 #define octave_NA (lo_ieee_na_value ())
37 #define octave_NaN (lo_ieee_nan_value ())
40 #define octave_Float_Inf (lo_ieee_float_inf_value ())
43 #define octave_Float_NA (lo_ieee_float_na_value ())
46 #define octave_Float_NaN (lo_ieee_float_nan_value ())
63 #define LO_IEEE_NA_HW_OLD 0x7ff00000
64 #define LO_IEEE_NA_LW_OLD 1954
65 #define LO_IEEE_NA_HW 0x7FF840F4
66 #define LO_IEEE_NA_LW 0x40000000
67 #define LO_IEEE_NA_FLOAT 0x7FC207A2
101 #define lo_ieee_isnan(x) (sizeof (x) == sizeof (float) ? \
102 __lo_ieee_float_isnan (x) : __lo_ieee_isnan (x))
103 #define lo_ieee_finite(x) (sizeof (x) == sizeof (float) ? \
104 __lo_ieee_float_finite (x) : __lo_ieee_finite (x))
105 #define lo_ieee_isinf(x) (sizeof (x) == sizeof (float) ? \
106 __lo_ieee_float_isinf (x) : __lo_ieee_isinf (x))
109 #define lo_ieee_is_NA(x) (sizeof (x) == sizeof (float) ? \
110 __lo_ieee_float_is_NA (x) : __lo_ieee_is_NA (x))
111 #define lo_ieee_is_NaN_or_NA(x) (sizeof (x) == sizeof (float) ? \
112 __lo_ieee_float_is_NaN_or_NA (x) : __lo_ieee_is_NaN_or_NA (x))
113 #define lo_ieee_signbit(x) (sizeof (x) == sizeof (float) ? \
114 __lo_ieee_float_signbit (x) : __lo_ieee_signbit (x))
118 template <
typename T>
119 struct octave_numeric_limits
121 static T NA (
void) {
return static_cast<T
> (0); }
125 struct octave_numeric_limits<
double>
127 static double NA (
void) {
return octave_NA; }
131 struct octave_numeric_limits<
float>
OCTAVE_API int __lo_ieee_finite(double x)
OCTAVE_API int __lo_ieee_float_finite(float x)
OCTAVE_API int __lo_ieee_isnan(double x)
OCTAVE_API double lo_ieee_inf_value(void)
OCTAVE_API float lo_ieee_float_na_value(void)
OCTAVE_API int __lo_ieee_is_NA(double)
OCTAVE_API double lo_ieee_na_value(void)
OCTAVE_API int __lo_ieee_float_isnan(float x)
OCTAVE_API int __lo_ieee_float_is_NA(float)
OCTAVE_API int __lo_ieee_float_signbit(float)
OCTAVE_API double __lo_ieee_replace_old_NA(double)
OCTAVE_API int __lo_ieee_isinf(double x)
OCTAVE_API void octave_ieee_init(void)
OCTAVE_API float lo_ieee_float_nan_value(void)
OCTAVE_API int __lo_ieee_signbit(double)
OCTAVE_API double lo_ieee_nan_value(void)
OCTAVE_API float lo_ieee_float_inf_value(void)
OCTAVE_API int __lo_ieee_is_old_NA(double)
OCTAVE_API int __lo_ieee_float_isinf(float x)
F77_RET_T const double * x