diff --git a/include/float.h b/include/float.h index bf56581..4f30a05 100644 --- a/include/float.h +++ b/include/float.h @@ -12,7 +12,11 @@ #ifndef _FLOAT_H #define _FLOAT_H -#define FLT_ROUNDS 1 +#if __STDC_HOSTED__ +#define FLT_ROUNDS -1 /* This needs to reflect fesetround() in */ +#else +#define FLT_ROUNDS 1 /* For freestanding, just round to nearest */ +#endif #define FLT_EVAL_METHOD 0 @@ -22,14 +26,38 @@ #define DBL_MANT_DIG 53 #define LDBL_MANT_DIG 113 -#define DECIMAL_DIG 10 +#define DECIMAL_DIG 17 #define FLT_DIG 6 -#define DBL_DIG 10 +#define DBL_DIG 15 #define LDBL_DIG 10 +#define FLT_MIN_EXP -125 +#define DBL_MIN_EXP -1021 +#define LDBL_MIN_EXP -120 + +#define FLT_MAX_EXP +128 +#define DBL_MAX_EXP +1024 +#define LDBL_MAX_EXP +122 + #define FLT_MIN_10_EXP -37 -#define DBL_MIN_10_EXP -37 +#define DBL_MIN_10_EXP -307 #define LDBL_MIN_10_EXP -37 +#define FLT_MAX_10_EXP +38 +#define DBL_MAX_10_EXP +308 +#define LDBL_MAX_10_EXP +37 + +#define FLT_MAX 3.40282347E+38F +#define DBL_MAX 1.7976931348623157E+308 +#define LDBL_MAX 1E+37 + +#define FLT_EPSILON 1.19209290E-07F +#define DBL_EPSILON 2.2204460492503131E-16 +#define LDBL_EPSILON 1E-9 + +#define FLT_MIN 1.17549435E-38F +#define DBL_MIN 2.2250738585072014E-308 +#define LDBL_MIN 1E-37 + #endif