32 lines
1.2 KiB
C++
32 lines
1.2 KiB
C++
#ifndef MYX_MATH_ALMOST_EQUAL_RELATIVE_HPP_
|
|
#define MYX_MATH_ALMOST_EQUAL_RELATIVE_HPP_
|
|
|
|
#include <cfloat>
|
|
|
|
// https://randomascii.wordpress.com/2012/02/25/comparing-floating-point-numbers-2012-edition/
|
|
|
|
namespace myx {
|
|
|
|
namespace math {
|
|
|
|
/**
|
|
* @brief Проверка на равенство двух аргументов типа float.
|
|
* Параметр maxRelDiff определяет максимальную относительную допустимую разницу,
|
|
* при которой аргументы считаются равными.
|
|
*/
|
|
bool almost_equal_relative( float a, float b,
|
|
const float maxRelDiff = FLT_EPSILON );
|
|
/**
|
|
* @brief Проверка на равенство двух аргументов типа double.
|
|
* Параметр maxRelDiff определяет максимальную относительную допустимую разницу,
|
|
* при которой аргументы считаются равными.
|
|
*/
|
|
bool almost_equal_relative( double a, double b,
|
|
const double maxRelDiff = DBL_EPSILON );
|
|
|
|
} // namespace math
|
|
|
|
} // namespace myx
|
|
|
|
#endif // MYX_MATH_ALMOST_EQUAL_RELATIVE_HPP_
|