After six months of work, the Herbie developers
are excited to announce Herbie 1.1! This release focuses on making
Herbie easier to use, including a web interface, clear syntax
errors, and detailed reports. This release also expands support
for trigonometric and hyperbolic functions, and speeds up
preconditions.
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.
Breaking Changes and Deprecations
In line
with FPCore
1.0, we have removed support for the cotan
function, renamed = to ==, and added
the != function.
In line with the new syntax for calling Herbie from the
command line, the old syntax is deprecated and will be removed in
the next version.
In line with the faster preconditions, we have deprecated
the :herbie-samplers property and will remove it in
the next release.
We have changed the syntax for
specifying search options for Herbie.
Instead of using -o to toggle options,
use -o to disable options and +o to
enable them.
Usability improvements
HTML reports. Herbie can
now generate reports that show graphs, describe how Herbie
achieved its result, and more.
Web shell. The
old web demo has been cleaned up and made
available to users, providing a graphical interface to
Herbie.
Batch mode. It's now
simpler to run Herbie on an FPCore file and save the results in
an output file.
The command-line shell
is also more user-friendly.
Easier installation using
the Racket package manager.
Simpler, clearer syntax errors. Instead of stack traces,
syntax errors now come with file, line, and column
information.
Improvement to core algorithm
Faster preconditions. A precondition like (< 10 x
12) now causes Herbie to only sample points in the
relevant range, significantly speeding up Herbie and obviating
many "cannot sample enough valid points" errors.
Better support for trigonometric and hyperbolic functions.
We've taught Herbie about many trigonometric identities, which
it can now use to improve expressions.
Better series expansion. We've taught Herbie to take series
expansions of many more functions.
Zero-argument expressions are now supported.
Code Cleanup
We have a new, right-facing logo!
We now have a complete syntax checker for inputs, giving the
Herbie core confidence that it's dealing with valid expressions.
The infrastructure for generating reports has been cleaned up.
The web demo has been rearchitected. It no longer needs to
output files, no longer uses continuations, and is now much more configurable.
The new command-line syntax unifies the mess of invokable
scripts in Herbie. We will continue the unification in future
releases.
More unit tests continue to be written, and including a test
that ensures that all our rules are valid.
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.