\frac{\left(x \cdot y\right) \cdot z}{\sqrt{z \cdot z - t \cdot a}}\begin{array}{l}
\mathbf{if}\;z \le -5.979373433067621707384015273322967579969 \cdot 10^{153}:\\
\;\;\;\;y \cdot \left(-x\right)\\
\mathbf{elif}\;z \le 3.280936158314262078662177353861886074421 \cdot 10^{107}:\\
\;\;\;\;\left(\frac{z}{\sqrt{z \cdot z - t \cdot a}} \cdot y\right) \cdot x\\
\mathbf{else}:\\
\;\;\;\;y \cdot x\\
\end{array}double f(double x, double y, double z, double t, double a) {
double r16019604 = x;
double r16019605 = y;
double r16019606 = r16019604 * r16019605;
double r16019607 = z;
double r16019608 = r16019606 * r16019607;
double r16019609 = r16019607 * r16019607;
double r16019610 = t;
double r16019611 = a;
double r16019612 = r16019610 * r16019611;
double r16019613 = r16019609 - r16019612;
double r16019614 = sqrt(r16019613);
double r16019615 = r16019608 / r16019614;
return r16019615;
}
double f(double x, double y, double z, double t, double a) {
double r16019616 = z;
double r16019617 = -5.979373433067622e+153;
bool r16019618 = r16019616 <= r16019617;
double r16019619 = y;
double r16019620 = x;
double r16019621 = -r16019620;
double r16019622 = r16019619 * r16019621;
double r16019623 = 3.280936158314262e+107;
bool r16019624 = r16019616 <= r16019623;
double r16019625 = r16019616 * r16019616;
double r16019626 = t;
double r16019627 = a;
double r16019628 = r16019626 * r16019627;
double r16019629 = r16019625 - r16019628;
double r16019630 = sqrt(r16019629);
double r16019631 = r16019616 / r16019630;
double r16019632 = r16019631 * r16019619;
double r16019633 = r16019632 * r16019620;
double r16019634 = r16019619 * r16019620;
double r16019635 = r16019624 ? r16019633 : r16019634;
double r16019636 = r16019618 ? r16019622 : r16019635;
return r16019636;
}




Bits error versus x




Bits error versus y




Bits error versus z




Bits error versus t




Bits error versus a
Results
| Original | 24.8 |
|---|---|
| Target | 7.7 |
| Herbie | 5.8 |
if z < -5.979373433067622e+153Initial program 54.0
rmApplied associate-/l*53.6
Taylor expanded around -inf 1.7
Simplified1.7
if -5.979373433067622e+153 < z < 3.280936158314262e+107Initial program 10.6
rmApplied associate-/l*8.5
rmApplied *-un-lft-identity8.5
Applied *-un-lft-identity8.5
Applied sqrt-prod8.5
Applied times-frac8.5
Applied times-frac8.0
Simplified8.0
rmApplied div-inv8.0
Simplified7.9
if 3.280936158314262e+107 < z Initial program 45.3
Taylor expanded around inf 2.5
Final simplification5.8
herbie shell --seed 2019169
(FPCore (x y z t a)
:name "Statistics.Math.RootFinding:ridders from math-functions-0.1.5.2"
:herbie-target
(if (< z -3.1921305903852764e+46) (- (* y x)) (if (< z 5.976268120920894e+90) (/ (* x z) (/ (sqrt (- (* z z) (* a t))) y)) (* y x)))
(/ (* (* x y) z) (sqrt (- (* z z) (* t a)))))