\left(x - \frac{y}{z \cdot 3}\right) + \frac{t}{\left(z \cdot 3\right) \cdot y}\left(x - \frac{1}{\frac{z \cdot 3}{y}}\right) + \frac{\frac{t}{z \cdot 3}}{y}double f(double x, double y, double z, double t) {
double r724788 = x;
double r724789 = y;
double r724790 = z;
double r724791 = 3.0;
double r724792 = r724790 * r724791;
double r724793 = r724789 / r724792;
double r724794 = r724788 - r724793;
double r724795 = t;
double r724796 = r724792 * r724789;
double r724797 = r724795 / r724796;
double r724798 = r724794 + r724797;
return r724798;
}
double f(double x, double y, double z, double t) {
double r724799 = x;
double r724800 = 1.0;
double r724801 = z;
double r724802 = 3.0;
double r724803 = r724801 * r724802;
double r724804 = y;
double r724805 = r724803 / r724804;
double r724806 = r724800 / r724805;
double r724807 = r724799 - r724806;
double r724808 = t;
double r724809 = r724808 / r724803;
double r724810 = r724809 / r724804;
double r724811 = r724807 + r724810;
return r724811;
}




Bits error versus x




Bits error versus y




Bits error versus z




Bits error versus t
Results
| Original | 4.0 |
|---|---|
| Target | 1.7 |
| Herbie | 1.8 |
Initial program 4.0
rmApplied associate-/r*1.7
rmApplied clear-num1.8
Final simplification1.8
herbie shell --seed 2020045
(FPCore (x y z t)
:name "Diagrams.Solve.Polynomial:cubForm from diagrams-solve-0.1, H"
:precision binary64
:herbie-target
(+ (- x (/ y (* z 3))) (/ (/ t (* z 3)) y))
(+ (- x (/ y (* z 3))) (/ t (* (* z 3) y))))