\frac{x \cdot y - \left(z \cdot 9\right) \cdot t}{a \cdot 2}\begin{array}{l}
\mathbf{if}\;\left(z \cdot 9\right) \cdot t \le -4.160669233039557 \cdot 10^{306}:\\
\;\;\;\;\frac{x}{2 \cdot \frac{a}{y}} - \frac{z \cdot 9}{a} \cdot \frac{t}{2}\\
\mathbf{elif}\;\left(z \cdot 9\right) \cdot t \le -1.1575439955519718 \cdot 10^{-74}:\\
\;\;\;\;\frac{x}{2 \cdot \frac{a}{y}} - \frac{\left(z \cdot 9\right) \cdot t}{a \cdot 2}\\
\mathbf{elif}\;\left(z \cdot 9\right) \cdot t \le 1.06019818429476599 \cdot 10^{-116}:\\
\;\;\;\;\frac{x \cdot y}{a \cdot 2} - \left(\frac{9}{a} \cdot \frac{t}{2}\right) \cdot z\\
\mathbf{elif}\;\left(z \cdot 9\right) \cdot t \le 2.8684979825191242 \cdot 10^{241}:\\
\;\;\;\;\frac{x}{2 \cdot \frac{a}{y}} - \frac{\left(z \cdot 9\right) \cdot t}{a \cdot 2}\\
\mathbf{else}:\\
\;\;\;\;\frac{x}{2 \cdot \frac{a}{y}} - \frac{z \cdot 9}{a} \cdot \frac{t}{2}\\
\end{array}double f(double x, double y, double z, double t, double a) {
double r858659 = x;
double r858660 = y;
double r858661 = r858659 * r858660;
double r858662 = z;
double r858663 = 9.0;
double r858664 = r858662 * r858663;
double r858665 = t;
double r858666 = r858664 * r858665;
double r858667 = r858661 - r858666;
double r858668 = a;
double r858669 = 2.0;
double r858670 = r858668 * r858669;
double r858671 = r858667 / r858670;
return r858671;
}
double f(double x, double y, double z, double t, double a) {
double r858672 = z;
double r858673 = 9.0;
double r858674 = r858672 * r858673;
double r858675 = t;
double r858676 = r858674 * r858675;
double r858677 = -4.160669233039557e+306;
bool r858678 = r858676 <= r858677;
double r858679 = x;
double r858680 = 2.0;
double r858681 = a;
double r858682 = y;
double r858683 = r858681 / r858682;
double r858684 = r858680 * r858683;
double r858685 = r858679 / r858684;
double r858686 = r858674 / r858681;
double r858687 = r858675 / r858680;
double r858688 = r858686 * r858687;
double r858689 = r858685 - r858688;
double r858690 = -1.1575439955519718e-74;
bool r858691 = r858676 <= r858690;
double r858692 = r858681 * r858680;
double r858693 = r858676 / r858692;
double r858694 = r858685 - r858693;
double r858695 = 1.060198184294766e-116;
bool r858696 = r858676 <= r858695;
double r858697 = r858679 * r858682;
double r858698 = r858697 / r858692;
double r858699 = r858673 / r858681;
double r858700 = r858699 * r858687;
double r858701 = r858700 * r858672;
double r858702 = r858698 - r858701;
double r858703 = 2.868497982519124e+241;
bool r858704 = r858676 <= r858703;
double r858705 = r858704 ? r858694 : r858689;
double r858706 = r858696 ? r858702 : r858705;
double r858707 = r858691 ? r858694 : r858706;
double r858708 = r858678 ? r858689 : r858707;
return r858708;
}




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.8 |
| Herbie | 4.0 |
if (* (* z 9.0) t) < -4.160669233039557e+306 or 2.868497982519124e+241 < (* (* z 9.0) t) Initial program 46.1
rmApplied div-sub46.1
rmApplied times-frac8.0
rmApplied associate-/l*1.4
Simplified1.4
if -4.160669233039557e+306 < (* (* z 9.0) t) < -1.1575439955519718e-74 or 1.060198184294766e-116 < (* (* z 9.0) t) < 2.868497982519124e+241Initial program 4.0
rmApplied div-sub4.0
rmApplied associate-/l*3.3
Simplified3.3
if -1.1575439955519718e-74 < (* (* z 9.0) t) < 1.060198184294766e-116Initial program 4.6
rmApplied div-sub4.6
rmApplied times-frac5.3
rmApplied *-un-lft-identity5.3
Applied times-frac5.3
Applied associate-*l*5.4
Final simplification4.0
herbie shell --seed 2020046
(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)))