Subject: [Boost-users] math tools roots
From: Matwey V. Kornilov (matwey.kornilov_at_[hidden])
Date: 2011-10-09 09:47:54


Hi all,

I believe that there is a bug in eps_tolerance implementation. At line 34 of
toms748_solve.hpp one can see:

return (fabs(a - b) / (std::min)(fabs(a), fabs(b))) <= eps;

When both a and b equal zero this condition is evaluated to a false instead
of a true. Left hand of condition is NaN and the right one is a floating-
point number hence the result is false.

Well obviously, a user wants to see true here because the relative length of
interval in this case tend to zero.