Herbie can generate HTML reports which give its output expression and also how Herbie found it.
First, a brief summary of the results. For most uses, the “Average Error” number, which summarizes how accurate the input and output expressions are, is the most important number in this section. The other numbers list time Herbie took to improve the program and the precision of floating-point operations.
Second, the input and output programs themselves. These are printed in standard mathematical syntax. In the top-right corner, the drop-down can be used to change to C syntax or raw TeX.
Third, under Error, a graph of floating-point error
versus input value. This is helpful for understanding the sorts of
inputs Herbie is improving accuracy on. Sometimes, Herbie improved
accuracy on some inputs at the cost of accuracy on other inputs
that you care more about. In these cases, you can add
a :pre
condition
to restrict the inputs Herbie reasons about.
On these graphs, the red line is the error of the input program,
while the blue line is the error of the output program
(both can be toggled).
For expressions with multiple variables,
the variable on the horizontal axis can be selected.
If Herbie decided to insert
an if
statement into the program,
the locations of those if
statements
will be marked with vertical bars.
Fourth, a form where you can try out specific inputs on the input program and Herbie's output program. Enter the argument values on the left, and the input and output programs will be evaulated on those arguments and the results printed on the right.
Fifth, a derivation of the output from the input. For complex or unexpected programs, these can be helpful. Each substantive step in the derivation also lists the error, in bits, of that step's output.
The derivations may name rules built into Herbie, or may claim derivation steps are done by simplification, series expansion, or other Herbie strategies. The derivation will also call out splits of the input into regimes, and strategies Herbie is invoking. When one part of the term is colored blue, that is the only part of the term modified by the operation.
Sixth, a command you can use to reproduce this Herbie result. If you find a bug, include the code snippet in this section when filing the bug. Please also include the debug log linked at the top of the page.
The top of the page has a right-hand menu bar with additional
links. “Log” you to a detailed debug log. “Profile” gives
a gprof
-style profile. and “Metrics” gives detailed
internal metrics on Herbie's results.
We expect the report to grow more informative with future versions. Please get in touch if there is more information you'd like to see.