Указания к алгоритму
В методичке по вычислительной математике описывается метод половинного деления (aka дихотомии). Описывается, описывается, и дальше идут очень ценные «Указания к алгоритму». Одно из них:
Чтобы проверить, имеет ли функция F(x) в точках a и b одинаковые или разные знаки, необходимо воспользоваться произведением F(a)×F(b). Если F(a)×F(b)<0, то F(a) и F(b) имеют разные знаки и наоборот.
Ценность указания в том, что оно позволяет сделать так, чтобы программа работала в сто раз (гипербола) медленнее. Зачем умножать два числа с плавающей точкой, когда можно просто проверить знаки обеих функций?
signs_differ := (f(a) > 0) xor (f(b) > 0);
Эх... везёт людям... для них сравнение сложнее чем умножение.