#ifndef MYX_MATH_ALMOST_EQUAL_RELATIVE_AND_ABS_HPP_ #define MYX_MATH_ALMOST_EQUAL_RELATIVE_AND_ABS_HPP_ #pragma once #include #include namespace myx { namespace math { /** * @brief Проверка на равенство двух аргументов типа float. * Параметр maxAbsDiff определяет максимальную абсолютную допустимую разницу. * Параметр maxRelDiff определяет максимальную относительную допустимую разницу, * при которой аргументы считаются равными. */ bool almost_equal_relative_and_abs( float a, float b, float maxAbsDiff, float maxRelDiff = FLT_EPSILON ); /** * @brief Проверка на равенство двух аргументов типа double. * Параметр maxAbsDiff определяет максимальную абсолютную допустимую разницу. * Параметр maxRelDiff определяет максимальную относительную допустимую разницу, * при которой аргументы считаются равными. */ bool almost_equal_relative_and_abs( double a, double b, double maxAbsDiff, double maxRelDiff = DBL_EPSILON ); } // namespace math } // namespace myx #ifdef MYXLIB_HEADER_ONLY #include "almost_equal_relative_and_abs-inl.hpp" #endif #endif // MYX_MATH_ALMOST_EQUAL_RELATIVE_AND_ABS_HPP_