26 const double LN2 = 0.69314718055994528622676;
34 #define M_PI 3.14159265358979323846
38 #define M_E 2.7182818284590452353
48 return value !=
value;
51 template<
typename T >
54 return value == std::numeric_limits< T >::infinity();
69 T epsilon = std::numeric_limits< T >::epsilon();
74 if ( a == 0 || b == 0 )
75 return ( fabs( a - b ) < tolerance * epsilon );
78 fabs( ( a - b ) / a ) < tolerance * epsilon
80 fabs( ( a - b ) / b ) < tolerance * epsilon
84 bool almostEqual(
float x,
float y,
float epsilon = FLT_EPSILON);
85 bool almostEqual(
double x,
double y,
double epsilon = DBL_EPSILON);
86 bool almostEqual(
long double x,
long double y,
long double epsilon = LDBL_EPSILON);
89 #if defined(__TURBOC__) || defined(__BORLANDC__) || defined(_MSC_VER)
90 #define isinf(param) !_finite(param)
91 #define isnan(param) _isnan(param)
92 #define round(param) floor(param+0.5)
bool isClose(T a, T b, T tolerance)
const unsigned long LN2BYTES
bool almostEqual(float x, float y, float epsilon=FLT_EPSILON)