\frac{\left(x \cdot y\right) \cdot z}{\sqrt{z \cdot z - t \cdot a}}\begin{array}{l}
\mathbf{if}\;z \le -440484499953959918458009527457306384531500:\\
\;\;\;\;\frac{x}{1} \cdot \left(-1 \cdot y\right)\\
\mathbf{elif}\;z \le 1.477826628139674547459276446730265213535 \cdot 10^{58}:\\
\;\;\;\;\frac{\frac{x \cdot y}{\sqrt{\sqrt{z \cdot z - t \cdot a}}} \cdot z}{\sqrt{\sqrt{z \cdot z - t \cdot a}}}\\
\mathbf{else}:\\
\;\;\;\;\frac{x}{1} \cdot y\\
\end{array}double f(double x, double y, double z, double t, double a) {
double r174781 = x;
double r174782 = y;
double r174783 = r174781 * r174782;
double r174784 = z;
double r174785 = r174783 * r174784;
double r174786 = r174784 * r174784;
double r174787 = t;
double r174788 = a;
double r174789 = r174787 * r174788;
double r174790 = r174786 - r174789;
double r174791 = sqrt(r174790);
double r174792 = r174785 / r174791;
return r174792;
}
double f(double x, double y, double z, double t, double a) {
double r174793 = z;
double r174794 = -4.404844999539599e+41;
bool r174795 = r174793 <= r174794;
double r174796 = x;
double r174797 = 1.0;
double r174798 = r174796 / r174797;
double r174799 = -1.0;
double r174800 = y;
double r174801 = r174799 * r174800;
double r174802 = r174798 * r174801;
double r174803 = 1.4778266281396745e+58;
bool r174804 = r174793 <= r174803;
double r174805 = r174796 * r174800;
double r174806 = r174793 * r174793;
double r174807 = t;
double r174808 = a;
double r174809 = r174807 * r174808;
double r174810 = r174806 - r174809;
double r174811 = sqrt(r174810);
double r174812 = sqrt(r174811);
double r174813 = r174805 / r174812;
double r174814 = r174813 * r174793;
double r174815 = r174814 / r174812;
double r174816 = r174798 * r174800;
double r174817 = r174804 ? r174815 : r174816;
double r174818 = r174795 ? r174802 : r174817;
return r174818;
}




Bits error versus x




Bits error versus y




Bits error versus z




Bits error versus t




Bits error versus a
Results
| Original | 25.1 |
|---|---|
| Target | 8.1 |
| Herbie | 7.8 |
if z < -4.404844999539599e+41Initial program 37.4
rmApplied add-sqr-sqrt37.4
Applied sqrt-prod37.6
Applied times-frac35.6
rmApplied *-un-lft-identity35.6
Applied times-frac36.4
Applied associate-*l*35.6
Taylor expanded around -inf 4.4
if -4.404844999539599e+41 < z < 1.4778266281396745e+58Initial program 12.1
rmApplied add-sqr-sqrt12.1
Applied sqrt-prod12.2
Applied times-frac11.6
rmApplied associate-*r/11.9
if 1.4778266281396745e+58 < z Initial program 38.5
rmApplied add-sqr-sqrt38.5
Applied sqrt-prod38.6
Applied times-frac36.7
rmApplied *-un-lft-identity36.7
Applied times-frac37.5
Applied associate-*l*36.4
Taylor expanded around inf 3.1
Final simplification7.8
herbie shell --seed 2019291
(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.1921305903852764e46) (- (* y x)) (if (< z 5.9762681209208942e90) (/ (* x z) (/ (sqrt (- (* z z) (* a t))) y)) (* y x)))
(/ (* (* x y) z) (sqrt (- (* z z) (* t a)))))