Я получил этот фрагмент кода где-то еще. По словам веб-мастера, код взят из Искусство компьютерного программирования Кнута
Поскольку у меня нет экземпляра этой книги, могу ли я узнать, в чем разница между двумя функциями?
bool approximatelyEqual(float a, float b, float epsilon)
{
return fabs(a - b) <= ( (fabs(a) < fabs(b) ? fabs(b) : fabs(a)) * epsilon);
}
bool essentiallyEqual(float a, float b, float epsilon)
{
return fabs(a - b) <= ( (fabs(a) > fabs(b) ? fabs(b) : fabs(a)) * epsilon);
}