diff --git a/inc/math.h b/inc/math.h index d0ed241..923bf7d 100644 --- a/inc/math.h +++ b/inc/math.h @@ -11,6 +11,12 @@ #include +#define FLT_MAX 3.4028234664e+38 +#define FLT_MIN 1.1754943508e-38 +#define DBL_MAX 1.7976931348623158e+308 +#define DBL_MIN 2.2250738585072014e-308 + + #define M_E 2.718281828459045235360287471352662498L //e #define M_LOG2E 1.442695040888963407359924681001892137L //log_2 e #define M_LOG10E 0.434294481903251827651128918916605082L //log_10 e @@ -27,7 +33,7 @@ #define INFINITY (__builtin_inff()) -#define M_NAN (__builtin_nanf("0")) +#define NAN nan("") @@ -37,6 +43,29 @@ #endif +static inline int32_t isinf(float x) +{ + if (x > FLT_MAX) + return 1; + else if (x < FLT_MIN) + return -1; + else + return 0; +} + + +static inline bool isnan(float x) +{ + return x != x; +} + + +static inline float nan(const char* arg) +{ + return __builtin_nanf(arg); +} + + static inline float round(float x) { #ifdef ARM_MATH_CM7