30 #include <wfmath/const.h>
55 bool Equal(
double x1,
double x2,
double epsilon)
60 return std::fabs(x1 - x2) <= _ScaleEpsilon(x1, x2, epsilon);
63 bool Equal(
float x1,
float x2,
float epsilon)
68 return std::fabs(x1 - x2) <= _ScaleEpsilon(x1, x2, epsilon);
71 double _ScaleEpsilon(
double x1,
double x2,
double epsilon)
76 (void) std::frexp(std::fabs(x1) < std::fabs(x2) ? x1 : x2, &exponent);
79 return std::ldexp(epsilon, exponent);
82 float _ScaleEpsilon(
float x1,
float x2,
float epsilon)
87 (void) std::frexp(std::fabs(x1) < std::fabs(x2) ? x1 : x2, &exponent);
90 return std::ldexp(epsilon, exponent);
100 for(
int i = 0; i < length; ++i) {
101 auto val1 = std::fabs(x1[i]), val2 = std::fabs(x2[i]);
108 return _ScaleEpsilon(max1, max2, epsilon);
Generic library namespace.
double CoordType
Basic floating point type.