\frac{\left(x \cdot y\right) \cdot z}{\sqrt{z \cdot z - t \cdot a}}\begin{array}{l}
\mathbf{if}\;z \le -1.145387718787729 \cdot 10^{27}:\\
\;\;\;\;\left(x \cdot y\right) \cdot -1\\
\mathbf{elif}\;z \le 1.68945971621676345 \cdot 10^{31}:\\
\;\;\;\;\frac{x \cdot \left(y \cdot z\right)}{\sqrt{z \cdot z - t \cdot a}}\\
\mathbf{else}:\\
\;\;\;\;\left(x \cdot y\right) \cdot 1\\
\end{array}double code(double x, double y, double z, double t, double a) {
return (((x * y) * z) / sqrt(((z * z) - (t * a))));
}
double code(double x, double y, double z, double t, double a) {
double temp;
if ((z <= -1.1453877187877288e+27)) {
temp = ((x * y) * -1.0);
} else {
double temp_1;
if ((z <= 1.6894597162167635e+31)) {
temp_1 = ((x * (y * z)) / sqrt(((z * z) - (t * a))));
} else {
temp_1 = ((x * y) * 1.0);
}
temp = temp_1;
}
return temp;
}




Bits error versus x




Bits error versus y




Bits error versus z




Bits error versus t




Bits error versus a
Results
| Original | 24.6 |
|---|---|
| Target | 7.6 |
| Herbie | 7.5 |
if z < -1.1453877187877288e+27Initial program 34.6
rmApplied *-un-lft-identity34.6
Applied sqrt-prod34.6
Applied times-frac32.4
Simplified32.4
rmApplied fma-neg32.4
Taylor expanded around -inf 3.9
if -1.1453877187877288e+27 < z < 1.6894597162167635e+31Initial program 11.8
rmApplied associate-*l*11.6
if 1.6894597162167635e+31 < z Initial program 35.6
rmApplied *-un-lft-identity35.6
Applied sqrt-prod35.6
Applied times-frac32.8
Simplified32.8
rmApplied fma-neg32.8
Taylor expanded around inf 4.3
Final simplification7.5
herbie shell --seed 2020056 +o rules:numerics
(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)))))