Embedded Artistry libc
C Standard Library Support for Bare-metal Systems
float.h
Go to the documentation of this file.
1 #ifndef FLOAT_H__
2 #define FLOAT_H__
3 
4 #ifdef __cplusplus
5 extern "C" {
6 #endif
7 
8 #if 0
9 //TODO
10 int __flt_rounds(void);
11 #define FLT_ROUNDS (__flt_rounds())
12 #endif
13 
14 #define FLT_RADIX 2
15 
16 #define FLT_TRUE_MIN 1.40129846432481707092e-45F
17 #define FLT_MIN 1.17549435082228750797e-38F
18 #define FLT_MAX 3.40282346638528859812e+38F
19 
20 #define FLT_EPSILON 1.1920928955078125e-07F
21 // TODO: is this correct? I see this other value... #define FLT_EPSILON 1.19209290E-07F
22 // ARM also says this: 1.19209290e-7F
23 // Check against http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.dui0491f/Babbfeda.html
24 
25 #define FLT_MANT_DIG 24
26 #define FLT_MIN_EXP (-125)
27 #define FLT_MAX_EXP 128
28 #define FLT_HAS_SUBNORM 1
29 
30 #define FLT_DIG 6
31 #define FLT_DECIMAL_DIG 9
32 #define FLT_MIN_10_EXP (-37)
33 #define FLT_MAX_10_EXP 38
34 
35 #define DBL_TRUE_MIN 4.94065645841246544177e-324
36 #define DBL_MIN 2.22507385850720138309e-308
37 #define DBL_MAX 1.79769313486231570815e+308
38 #define DBL_EPSILON 2.22044604925031308085e-16
39 
40 #define DBL_MANT_DIG 53
41 #define DBL_MIN_EXP (-1021)
42 #define DBL_MAX_EXP 1024
43 #define DBL_HAS_SUBNORM 1
44 
45 #define DBL_DIG 15
46 #define DBL_DECIMAL_DIG 17
47 #define DBL_MIN_10_EXP (-307)
48 #define DBL_MAX_10_EXP 308
49 
50 #define LDBL_HAS_SUBNORM 1
51 #define LDBL_DECIMAL_DIG DECIMAL_DIG
52 
53 // Architecture-specific Definitions
54 #include <_types/_float.h>
55 
56 #ifdef __cplusplus
57 }
58 #endif
59 
60 #endif // FLOAT_H__