\frac{\left(x \cdot y\right) \cdot z}{\sqrt{z \cdot z - t \cdot a}}\begin{array}{l}
\mathbf{if}\;z \le -1.1055887578016406 \cdot 10^{87}:\\
\;\;\;\;-1 \cdot \left(x \cdot y\right)\\
\mathbf{elif}\;z \le 8.0013809758777307 \cdot 10^{126}:\\
\;\;\;\;\frac{\left(x \cdot y\right) \cdot \left(\sqrt[3]{z} \cdot \sqrt[3]{z}\right)}{\left|\sqrt[3]{z \cdot z - t \cdot a}\right|} \cdot \frac{\sqrt[3]{z}}{\sqrt{\sqrt[3]{z \cdot z - t \cdot a}}}\\
\mathbf{else}:\\
\;\;\;\;x \cdot y\\
\end{array}double f(double x, double y, double z, double t, double a) {
double r407799 = x;
double r407800 = y;
double r407801 = r407799 * r407800;
double r407802 = z;
double r407803 = r407801 * r407802;
double r407804 = r407802 * r407802;
double r407805 = t;
double r407806 = a;
double r407807 = r407805 * r407806;
double r407808 = r407804 - r407807;
double r407809 = sqrt(r407808);
double r407810 = r407803 / r407809;
return r407810;
}
double f(double x, double y, double z, double t, double a) {
double r407811 = z;
double r407812 = -1.1055887578016406e+87;
bool r407813 = r407811 <= r407812;
double r407814 = -1.0;
double r407815 = x;
double r407816 = y;
double r407817 = r407815 * r407816;
double r407818 = r407814 * r407817;
double r407819 = 8.001380975877731e+126;
bool r407820 = r407811 <= r407819;
double r407821 = cbrt(r407811);
double r407822 = r407821 * r407821;
double r407823 = r407817 * r407822;
double r407824 = r407811 * r407811;
double r407825 = t;
double r407826 = a;
double r407827 = r407825 * r407826;
double r407828 = r407824 - r407827;
double r407829 = cbrt(r407828);
double r407830 = fabs(r407829);
double r407831 = r407823 / r407830;
double r407832 = sqrt(r407829);
double r407833 = r407821 / r407832;
double r407834 = r407831 * r407833;
double r407835 = r407820 ? r407834 : r407817;
double r407836 = r407813 ? r407818 : r407835;
return r407836;
}




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.8 |
| Herbie | 7.2 |
if z < -1.1055887578016406e+87Initial program 40.6
Taylor expanded around -inf 3.1
if -1.1055887578016406e+87 < z < 8.001380975877731e+126Initial program 11.4
rmApplied *-un-lft-identity11.4
Applied sqrt-prod11.4
Applied times-frac9.6
Simplified9.6
rmApplied add-cube-cbrt10.0
Applied sqrt-prod10.0
Applied add-cube-cbrt10.3
Applied times-frac10.3
Applied associate-*r*9.5
Simplified10.6
if 8.001380975877731e+126 < z Initial program 47.2
Taylor expanded around inf 1.3
Final simplification7.2
herbie shell --seed 2020065
(FPCore (x y z t a)
:name "Statistics.Math.RootFinding:ridders from math-functions-0.1.5.2"
:precision binary64
: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)))))