7 #ifndef RETDEC_UTILS_EQUALITY_H
8 #define RETDEC_UTILS_EQUALITY_H
28 inline bool areEqualFPWithEpsilon(
const T &x,
const T &y,
const T &epsilon) {
37 }
else if (std::isnan(y)) {
39 }
else if (std::isinf(x)) {
40 return std::isinf(x) == std::isinf(y);
41 }
else if (std::isinf(y)) {
44 return std::abs(x - y) <= epsilon * std::abs(x);
67 return areEqualFPWithEpsilon(x, y, 1e-5f);
73 return areEqualFPWithEpsilon(x, y, 1e-10);
79 return areEqualFPWithEpsilon(x, y, 1e-15L);
bool areEqual< float >(const float &x, const float &y)
Definition: equality.h:66
bool areEqual< double >(const double &x, const double &y)
Definition: equality.h:72
bool areEqual< long double >(const long double &x, const long double &y)
Definition: equality.h:78
bool areEqual(const T &x, const T &y)
Returns true if x is equal to y, false otherwise.
Definition: equality.h:60
Definition: archive_wrapper.h:19