# Herbie 1.3 Release Notes

The Herbie developers are excited to announce Herbie 1.3! This release focuses on speed and transparency: Herbie 1.3 is nearly twice as fast as Herbie 1.2, and includes cleaner, more comprehensive HTML output.

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.

## Major features of this release

Speed: Herbie is roughly twice as fast as in previous releases. Making this happen has involved changes large and small: a clever change to how we use simplification, a new sampling algorithm, and also lots of work tracking down especially slow expressions.

Transparency: Herbie's web output has become cleaner and more comprehensive. Herbie can now show you its output in C and TeX as well as mathematical notation. You can now specify preconditions and precisions when inputting expressions. And Herbie has a new "Metrics" tab to show in-depth internal information, which will help us continue to improve Herbie.

## Beta features in this release

Windows support has graduated from beta. We intend to support Windows going forward; if you run into any bugs, please let us know.

Plugins can now define new number systems and then teach Herbie to use them. There's a new plugin to add support for posit arithmetic. Right now the plugin system is still in flux, so if you'd like to use it, please write to us.

## Improvement to core algorithm

• Careful performance work has made Herbie nearly three times faster than the 1.2 release.
• Herbie now uses interval arithmetic to compute "ground truth" values. This makes Herbie's accuracy estimate for a program more correct.
• Support for single-precision mode has been significantly improved.
• Series expansion of pows with constant exponents is now much faster.
• Complex numbers are now handled significantly more quickly.
• Various fixes have eliminated rare but large slowdowns.

## Usability improvements

• Herbie's web interface now allows you to change preconditions and precisions (click “additional options” below the formula bar).
• You can now see C code for Herbie's output—use the drop-down above and to the right of the program box.
• Herbie has a new website! Hopefully it's a little easier to learn about what Herbie is and how to use it.
• Herbie now shows preconditions in its HTML output.
• Herbie now produces somewhat simpler output, for example by simplifying exact constant expressions like (+ 2 2).
• You can now input if statements on the web using conditional-expression syntax.
• Herbie will now show warnings in its HTML output, including links to more documentation.
• Herbie now indents and breaks lines when it prints FPCores in the terminal.
• Herbie now uses KaTeX to render math in the browser, which is significantly faster than the previous MathJax library.
• Error and timeout pages now show the input program.

## Code Cleanup

• Reports now link to an extensive collection of quality and performance metrics. This should help improve Herbie's speed and accuracy over time.
• Documentation has been improved, with tables of content and explanations of preconditions and precisions.
• The new reproduce tool allows rerunning a report.
• The timebar on the metrics page now separates regime inference from binary search.
• Herbie's JavaScript code has been refactored, making it much easier to maintain.
• Lots of old, unused code has been deleted, including a lot of support code for the obsolete Herbie Visualizer.
• Glue code has been moved into a single file, clarifying responsibilities for a lot of modules.

## Try it out!

We're excited to continue to improve Herbie and make it 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!