1#ifndef HYDROBRICKS_NUMERIC_CONSTANTS_H
2#define HYDROBRICKS_NUMERIC_CONSTANTS_H
15namespace NumericConstants {
21static const double EPSILON_D = std::numeric_limits<double>::epsilon();
27static const double EPSILON_F = std::numeric_limits<float>::epsilon();
34static const double PRECISION = 0.00000001;
41static const double TOLERANCE_LOOSE = 0.0001;
51inline bool NearlyEqual(
double a,
double b,
double tolerance = PRECISION) {
52 return std::fabs(a - b) <= tolerance;
62inline bool NearlyZero(
double value,
double tolerance = PRECISION) {
63 return std::fabs(value) <= tolerance;
74inline bool GreaterThan(
double a,
double b,
double tolerance = PRECISION) {
75 return a > b + tolerance;
86inline bool LessThan(
double a,
double b,
double tolerance = PRECISION) {
87 return a < b - tolerance;
98inline bool GreaterThanOrEqual(
double a,
double b,
double tolerance = PRECISION) {
99 return a >= b - tolerance;
110inline bool LessThanOrEqual(
double a,
double b,
double tolerance = PRECISION) {
111 return a <= b + tolerance;
117using NumericConstants::EPSILON_D;
118using NumericConstants::EPSILON_F;
119using NumericConstants::PRECISION;
120using NumericConstants::TOLERANCE_LOOSE;
bool NearlyZero(double value, double tolerance=PRECISION)
Definition NumericConstants.h:62
bool LessThan(double a, double b, double tolerance=PRECISION)
Definition NumericConstants.h:86
bool GreaterThan(double a, double b, double tolerance=PRECISION)
Definition NumericConstants.h:74
bool GreaterThanOrEqual(double a, double b, double tolerance=PRECISION)
Definition NumericConstants.h:98
bool LessThanOrEqual(double a, double b, double tolerance=PRECISION)
Definition NumericConstants.h:110
bool NearlyEqual(double a, double b, double tolerance=PRECISION)
Definition NumericConstants.h:51