\frac{x \cdot y - \left(z \cdot 9\right) \cdot t}{a \cdot 2}\frac{x \cdot y - 9 \cdot \left(t \cdot z\right)}{a \cdot 2}double f(double x, double y, double z, double t, double a) {
double r754599 = x;
double r754600 = y;
double r754601 = r754599 * r754600;
double r754602 = z;
double r754603 = 9.0;
double r754604 = r754602 * r754603;
double r754605 = t;
double r754606 = r754604 * r754605;
double r754607 = r754601 - r754606;
double r754608 = a;
double r754609 = 2.0;
double r754610 = r754608 * r754609;
double r754611 = r754607 / r754610;
return r754611;
}
double f(double x, double y, double z, double t, double a) {
double r754612 = x;
double r754613 = y;
double r754614 = r754612 * r754613;
double r754615 = 9.0;
double r754616 = t;
double r754617 = z;
double r754618 = r754616 * r754617;
double r754619 = r754615 * r754618;
double r754620 = r754614 - r754619;
double r754621 = a;
double r754622 = 2.0;
double r754623 = r754621 * r754622;
double r754624 = r754620 / r754623;
return r754624;
}




Bits error versus x




Bits error versus y




Bits error versus z




Bits error versus t




Bits error versus a
Results
| Original | 7.7 |
|---|---|
| Target | 5.6 |
| Herbie | 7.6 |
Initial program 7.7
Taylor expanded around inf 7.6
Final simplification7.6
herbie shell --seed 2020060
(FPCore (x y z t a)
:name "Diagrams.Solve.Polynomial:cubForm from diagrams-solve-0.1, I"
:precision binary64
:herbie-target
(if (< a -2.090464557976709e+86) (- (* 0.5 (/ (* y x) a)) (* 4.5 (/ t (/ a z)))) (if (< a 2.144030707833976e+99) (/ (- (* x y) (* z (* 9 t))) (* a 2)) (- (* (/ y a) (* x 0.5)) (* (/ t a) (* z 4.5)))))
(/ (- (* x y) (* (* z 9) t)) (* a 2)))