1 /* float.h for target with IEEE 32/64 bit and Intel 386 style 80 bit
2 floating point formats */
5 /* Produced by enquire version 4.3, CWI, Amsterdam */
7 /* Radix of exponent representation */
10 /* Number of base-FLT_RADIX digits in the significand of a float */
12 #define FLT_MANT_DIG 24
13 /* Number of decimal digits of precision in a float */
16 /* Addition rounds to 0: zero, 1: nearest, 2: +inf, 3: -inf, -1: unknown */
19 /* Difference between 1.0 and the minimum float greater than 1.0 */
21 #define FLT_EPSILON 1.19209290e-07F
22 /* Minimum int x such that FLT_RADIX**(x-1) is a normalised float */
24 #define FLT_MIN_EXP (-125)
25 /* Minimum normalised float */
27 #define FLT_MIN 1.17549435e-38F
28 /* Minimum int x such that 10**x is a normalised float */
30 #define FLT_MIN_10_EXP (-37)
31 /* Maximum int x such that FLT_RADIX**(x-1) is a representable float */
33 #define FLT_MAX_EXP 128
36 #define FLT_MAX 3.40282347e+38F
37 /* Maximum int x such that 10**x is a representable float */
39 #define FLT_MAX_10_EXP 38
41 /* Number of base-FLT_RADIX digits in the significand of a double */
43 #define DBL_MANT_DIG 53
44 /* Number of decimal digits of precision in a double */
47 /* Difference between 1.0 and the minimum double greater than 1.0 */
49 #define DBL_EPSILON 2.2204460492503131e-16
50 /* Minimum int x such that FLT_RADIX**(x-1) is a normalised double */
52 #define DBL_MIN_EXP (-1021)
53 /* Minimum normalised double */
55 #define DBL_MIN 2.2250738585072014e-308
56 /* Minimum int x such that 10**x is a normalised double */
58 #define DBL_MIN_10_EXP (-307)
59 /* Maximum int x such that FLT_RADIX**(x-1) is a representable double */
61 #define DBL_MAX_EXP 1024
64 #define DBL_MAX 1.7976931348623157e+308
65 /* Maximum int x such that 10**x is a representable double */
67 #define DBL_MAX_10_EXP 308
69 /* Number of base-FLT_RADIX digits in the significand of a long double */
71 #define LDBL_MANT_DIG 64
72 /* Number of decimal digits of precision in a long double */
75 /* Difference between 1.0 and the minimum long double greater than 1.0 */
77 #ifndef __LDBL_UNION__
78 #define __LDBL_UNION__
79 union __convert_long_double
{
80 unsigned __convert_long_double_i
[4];
81 long double __convert_long_double_d
;
84 #define LDBL_EPSILON (__extension__ ((union __convert_long_double) {__convert_long_double_i: {0x0, 0x80000000, 0x3fc0, 0x0}}).__convert_long_double_d)
85 /* Minimum int x such that FLT_RADIX**(x-1) is a normalised long double */
87 #define LDBL_MIN_EXP (-16381)
88 /* Minimum normalised long double */
90 #define LDBL_MIN (__extension__ ((union __convert_long_double) {__convert_long_double_i: {0x0, 0x80000000, 0x1, 0x0}}).__convert_long_double_d)
91 /* Minimum int x such that 10**x is a normalised long double */
92 #undef LDBL_MIN_10_EXP
93 #define LDBL_MIN_10_EXP (-4931)
94 /* Maximum int x such that FLT_RADIX**(x-1) is a representable long double */
96 #define LDBL_MAX_EXP 16384
97 /* Maximum long double */
99 #define LDBL_MAX (__extension__ ((union __convert_long_double) {__convert_long_double_i: {0xffffffff, 0xffffffff, 0x107ffe, 0x0}}).__convert_long_double_d)
100 /* Maximum int x such that 10**x is a representable long double */
101 #undef LDBL_MAX_10_EXP
102 #define LDBL_MAX_10_EXP 4932
104 #endif /* _FLOAT_H___ */