\left(x - \frac{y}{z \cdot 3.0}\right) + \frac{t}{\left(z \cdot 3.0\right) \cdot y}\frac{\frac{t}{z}}{y \cdot 3.0} + \left(x - \frac{\frac{y}{z}}{3.0}\right)double f(double x, double y, double z, double t) {
double r15063665 = x;
double r15063666 = y;
double r15063667 = z;
double r15063668 = 3.0;
double r15063669 = r15063667 * r15063668;
double r15063670 = r15063666 / r15063669;
double r15063671 = r15063665 - r15063670;
double r15063672 = t;
double r15063673 = r15063669 * r15063666;
double r15063674 = r15063672 / r15063673;
double r15063675 = r15063671 + r15063674;
return r15063675;
}
double f(double x, double y, double z, double t) {
double r15063676 = t;
double r15063677 = z;
double r15063678 = r15063676 / r15063677;
double r15063679 = y;
double r15063680 = 3.0;
double r15063681 = r15063679 * r15063680;
double r15063682 = r15063678 / r15063681;
double r15063683 = x;
double r15063684 = r15063679 / r15063677;
double r15063685 = r15063684 / r15063680;
double r15063686 = r15063683 - r15063685;
double r15063687 = r15063682 + r15063686;
return r15063687;
}




Bits error versus x




Bits error versus y




Bits error versus z




Bits error versus t
Results
| Original | 3.4 |
|---|---|
| Target | 1.6 |
| Herbie | 1.6 |
Initial program 3.4
rmApplied associate-/r*1.6
rmApplied associate-/r*1.6
rmApplied associate-/r*1.6
rmApplied div-inv1.6
Applied associate-/l*1.6
Simplified1.6
Final simplification1.6
herbie shell --seed 2019156
(FPCore (x y z t)
:name "Diagrams.Solve.Polynomial:cubForm from diagrams-solve-0.1, H"
:herbie-target
(+ (- x (/ y (* z 3.0))) (/ (/ t (* z 3.0)) y))
(+ (- x (/ y (* z 3.0))) (/ t (* (* z 3.0) y))))