
This by the way was the very motivation behind Boost.interval library. And it's used to guarantee consistent floating-point driven logic (with overlapping intervals triggering exact computation) with the cost (in most cases) of floating point additions (well, a bit more, for the interval bounds, and a bit more yet for changing the rounding mode).
Absolutely, and I would love to get Boost.Interval and Boost.Math to work well together, I put quite a bit of effort into making that happen actually, but my patches (and not to mention bug reports) for Boost.Interval went unattended to, so I basically gave up...
I forgot to mention - it's not so easy to set a breakpoint in Boost.Interval so that you break (or only print debugging info to std::cerr) once the epsilon error reaches a certain threshold. I'm probably missing something though... John.