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
After months of work, the Herbie developers are proud to announce the release of Herbie 1.0. This release transitions to the FPCore format from the FPBench initiative, and includes significant bug fixes, usability tweaks, and improvements. Read about all the changes in the release notes.
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.