The Herbie project provides Herbie and HerbGrind, complementary tools for finding and fixing floating point problems:
rewrites floating point expressions to make them more accurate.
Herbie supports all commonly-used floating point functions,
and uses a cutting-edge search
to identify more-accurate rearrangements of a floating point computation.
analyzes binaries to catch floating point inaccuracies as they occur and extract them for analysis.
HerbGrind analyzes binaries directly,
detecting problems on realistic workloads
and extracting them in a standard format.
The Herbie tools have been used on large numerical computations,
mathematical libraries, graphics programs, and embedded systems.
It regularly finds subtle floating point issues and produces fixes.
Herbie Project News
In preparation for the Version 1.0 release, we've renamed the pi and e constants to upper case. This matches libm and should make it a little harder to cause bugs. Herbie will now optimize expressions like (exp 1) to E.