31#ifndef ETL_MATH_INCLUDED
32#define ETL_MATH_INCLUDED
36#if ETL_NOT_USING_STL && defined(ETL_COMPILER_ARM5) && !defined(__USE_C99_MATH)
38 #define __USE_C99_MATH
52#if ETL_USING_CPP11 && !defined(ETL_NO_CPP_NAN_SUPPORT)
54 ETL_CONSTEXPR
typename etl::enable_if<etl::is_floating_point<T>::value,
bool>::type is_nan(T value)
56 return fpclassify(value) == FP_NAN;
61 ETL_CONSTEXPR
typename etl::enable_if<etl::is_floating_point<T>::value,
bool>::type is_nan(T value)
63 return (value != value);
69 ETL_CONSTEXPR
typename etl::enable_if<etl::is_integral<T>::value,
bool>::type is_nan(T)
77#if ETL_USING_CPP11 && !defined(ETL_NO_CPP_NAN_SUPPORT)
79 ETL_CONSTEXPR
typename etl::enable_if<etl::is_floating_point<T>::value,
bool>::type is_infinity(T value)
81 return fpclassify(value) == FP_INFINITE;
86 ETL_CONSTEXPR
typename etl::enable_if<etl::is_floating_point<T>::value,
bool>::type is_infinity(T value)
88 return ((value == etl::numeric_limits<T>::infinity()) || (value == -etl::numeric_limits<T>::infinity()));
94 ETL_CONSTEXPR
typename etl::enable_if<etl::is_integral<T>::value,
bool>::type is_infinity(T)
102#if ETL_USING_CPP11 && !defined(ETL_NO_CPP_NAN_SUPPORT)
103 template <
typename T>
104 ETL_CONSTEXPR
typename etl::enable_if<etl::is_floating_point<T>::value,
bool>::type is_zero(T value)
106 return fpclassify(value) == FP_ZERO;
110 template <
typename T>
111 ETL_CONSTEXPR
typename etl::enable_if<etl::is_floating_point<T>::value,
bool>::type is_zero(T value)
118 template <
typename T>
119 ETL_CONSTEXPR
typename etl::enable_if<etl::is_integral<T>::value,
bool>::type is_zero(T value)
128 template <
typename T>
129 ETL_CONSTEXPR
bool is_exactly_equal(T value1, T value2)
131 return value1 == value2;
Two pairs of the same type are equal if their members are equal.
bitset_ext
Definition absolute.h:40