\frac{x \cdot y - \left(z \cdot 9\right) \cdot t}{a \cdot 2}\frac{1}{2} \cdot \frac{x}{\frac{a}{y}} - \frac{9}{2} \cdot \frac{t}{\frac{a}{z}}double f(double x, double y, double z, double t, double a) {
double r465495 = x;
double r465496 = y;
double r465497 = r465495 * r465496;
double r465498 = z;
double r465499 = 9.0;
double r465500 = r465498 * r465499;
double r465501 = t;
double r465502 = r465500 * r465501;
double r465503 = r465497 - r465502;
double r465504 = a;
double r465505 = 2.0;
double r465506 = r465504 * r465505;
double r465507 = r465503 / r465506;
return r465507;
}
double f(double x, double y, double z, double t, double a) {
double r465508 = 1.0;
double r465509 = 2.0;
double r465510 = r465508 / r465509;
double r465511 = x;
double r465512 = a;
double r465513 = y;
double r465514 = r465512 / r465513;
double r465515 = r465511 / r465514;
double r465516 = r465510 * r465515;
double r465517 = 9.0;
double r465518 = r465517 / r465509;
double r465519 = t;
double r465520 = z;
double r465521 = r465512 / r465520;
double r465522 = r465519 / r465521;
double r465523 = r465518 * r465522;
double r465524 = r465516 - r465523;
return r465524;
}




Bits error versus x




Bits error versus y




Bits error versus z




Bits error versus t




Bits error versus a
Results
| Original | 7.9 |
|---|---|
| Target | 5.8 |
| Herbie | 8.1 |
if (* x y) < -3.2487071020495243e+187Initial program 27.4
Taylor expanded around 0 27.3
Simplified27.3
rmApplied associate-/l*24.6
rmApplied associate-/l*0.9
if -3.2487071020495243e+187 < (* x y) < 1.1649817974422874e+58Initial program 4.2
Taylor expanded around 0 4.1
Simplified4.1
rmApplied div-inv4.1
Applied associate-*r*4.1
if 1.1649817974422874e+58 < (* x y) Initial program 17.0
Taylor expanded around 0 16.8
Simplified16.8
rmApplied associate-/l*14.0
rmApplied *-un-lft-identity14.0
Applied times-frac5.0
Applied associate-*r*5.0
Simplified5.0
rmApplied add-sqr-sqrt5.7
Applied times-frac5.6
Applied associate-*l*5.5
Final simplification8.1
herbie shell --seed 2019303
(FPCore (x y z t a)
:name "Diagrams.Solve.Polynomial:cubForm from diagrams-solve-0.1, I"
:precision binary64
:herbie-target
(if (< a -2.090464557976709e86) (- (* 0.5 (/ (* y x) a)) (* 4.5 (/ t (/ a z)))) (if (< a 2.14403070783397609e99) (/ (- (* x y) (* z (* 9 t))) (* a 2)) (- (* (/ y a) (* x 0.5)) (* (/ t a) (* z 4.5)))))
(/ (- (* x y) (* (* z 9) t)) (* a 2)))