Herbie 1.4 Release Notes

The Herbie developers are excited to announce Herbie 1.4! This release continues a focus on speed and predictability.

Herbie automatically improves the accuracy of floating point expressions. This avoids the bugs, errors, and surprises that so often occur when working with floating point. Since our PLDI'15 paper, we've been hard at work making Herbie more versatile and easier to use.

The Herbie team, working over Zoom to bring you Herbie 1.4

Major features of this release

Faster simplification: Herbie now uses the Egg library to simplify expressions. Egg is roughly a hundred times faster than Herbie's existing simplifier; Herbie with Egg is roughly twice as fast overall. Egg is packaged for Windows, macOS, and Linux, so it should be transparently usable on all platforms.

Input search: Herbie now uses interval arithmetic to more efficiently sample valid inputs. The "Cannot sample enough valid points" error message should now be rarer, because Herbie should be much better at finding valid inputs, whereever they are.

Herbie 1.4 is substantially faster at simplifying expressions than Herbie 1.3 and 1.2. With timeouts off, these two releases have made simplification almost 4000× faster. Figure from our arXiv submission.

Improvement to core algorithm

Usability improvements

Code Cleanup

Try it out!

We're want Herbie to be more useful to scientists, engineers, and programmers around the world. We've got a lot of features we're excited to work on in the coming months. Please report bugs, join the mailing list, or contribute.

If you find Herbie useful, let us know!