\frac{\left(x \cdot y\right) \cdot z}{\sqrt{z \cdot z - t \cdot a}}\begin{array}{l}
\mathbf{if}\;z \le -1.247998335336759758701020951372634983578 \cdot 10^{154}:\\
\;\;\;\;-x \cdot y\\
\mathbf{elif}\;z \le 1.646281250791699550996089440074228287346 \cdot 10^{140}:\\
\;\;\;\;x \cdot \left(\frac{y}{\frac{\sqrt[3]{\sqrt{z \cdot z - a \cdot t}}}{\sqrt[3]{z}}} \cdot \frac{\sqrt[3]{z} \cdot \sqrt[3]{z}}{\sqrt[3]{\sqrt{z \cdot z - a \cdot t}} \cdot \sqrt[3]{\sqrt{z \cdot z - a \cdot t}}}\right)\\
\mathbf{else}:\\
\;\;\;\;x \cdot y\\
\end{array}double f(double x, double y, double z, double t, double a) {
double r17203638 = x;
double r17203639 = y;
double r17203640 = r17203638 * r17203639;
double r17203641 = z;
double r17203642 = r17203640 * r17203641;
double r17203643 = r17203641 * r17203641;
double r17203644 = t;
double r17203645 = a;
double r17203646 = r17203644 * r17203645;
double r17203647 = r17203643 - r17203646;
double r17203648 = sqrt(r17203647);
double r17203649 = r17203642 / r17203648;
return r17203649;
}
double f(double x, double y, double z, double t, double a) {
double r17203650 = z;
double r17203651 = -1.2479983353367598e+154;
bool r17203652 = r17203650 <= r17203651;
double r17203653 = x;
double r17203654 = y;
double r17203655 = r17203653 * r17203654;
double r17203656 = -r17203655;
double r17203657 = 1.6462812507916996e+140;
bool r17203658 = r17203650 <= r17203657;
double r17203659 = r17203650 * r17203650;
double r17203660 = a;
double r17203661 = t;
double r17203662 = r17203660 * r17203661;
double r17203663 = r17203659 - r17203662;
double r17203664 = sqrt(r17203663);
double r17203665 = cbrt(r17203664);
double r17203666 = cbrt(r17203650);
double r17203667 = r17203665 / r17203666;
double r17203668 = r17203654 / r17203667;
double r17203669 = r17203666 * r17203666;
double r17203670 = r17203665 * r17203665;
double r17203671 = r17203669 / r17203670;
double r17203672 = r17203668 * r17203671;
double r17203673 = r17203653 * r17203672;
double r17203674 = r17203658 ? r17203673 : r17203655;
double r17203675 = r17203652 ? r17203656 : r17203674;
return r17203675;
}




Bits error versus x




Bits error versus y




Bits error versus z




Bits error versus t




Bits error versus a
Results
| Original | 24.4 |
|---|---|
| Target | 7.5 |
| Herbie | 5.7 |
if z < -1.2479983353367598e+154Initial program 54.1
rmApplied associate-/l*53.7
rmApplied *-un-lft-identity53.7
Applied *-un-lft-identity53.7
Applied sqrt-prod53.7
Applied times-frac53.7
Applied times-frac53.7
Simplified53.7
Taylor expanded around -inf 1.5
Simplified1.5
if -1.2479983353367598e+154 < z < 1.6462812507916996e+140Initial program 10.9
rmApplied associate-/l*8.7
rmApplied *-un-lft-identity8.7
Applied *-un-lft-identity8.7
Applied sqrt-prod8.7
Applied times-frac8.7
Applied times-frac8.3
Simplified8.3
rmApplied add-cube-cbrt9.0
Applied add-cube-cbrt8.6
Applied times-frac8.6
Applied *-un-lft-identity8.6
Applied times-frac7.7
Simplified7.7
if 1.6462812507916996e+140 < z Initial program 51.9
Taylor expanded around inf 1.4
Final simplification5.7
herbie shell --seed 2019170
(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)))))