Разница между приблизительно равными и по существу равными в искусстве компьютерного программирования

Я получил этот фрагмент кода где-то еще. По словам веб-мастера, код взят из Искусство компьютерного программирования Кнута

Поскольку у меня нет экземпляра этой книги, могу ли я узнать, в чем разница между двумя функциями?

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);
}

11
задан palswim 16 September 2010 в 17:17
поделиться