\frac{\left(x \cdot y\right) \cdot z}{\sqrt{z \cdot z - t \cdot a}}\begin{array}{l}
\mathbf{if}\;z \le -2.1890101961612443 \cdot 10^{88}:\\
\;\;\;\;-1 \cdot \left(x \cdot y\right)\\
\mathbf{elif}\;z \le 4.5181325422403336 \cdot 10^{112}:\\
\;\;\;\;\frac{x \cdot y}{\left|\sqrt[3]{z \cdot z - t \cdot a}\right|} \cdot \frac{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 r274267 = x;
double r274268 = y;
double r274269 = r274267 * r274268;
double r274270 = z;
double r274271 = r274269 * r274270;
double r274272 = r274270 * r274270;
double r274273 = t;
double r274274 = a;
double r274275 = r274273 * r274274;
double r274276 = r274272 - r274275;
double r274277 = sqrt(r274276);
double r274278 = r274271 / r274277;
return r274278;
}
double f(double x, double y, double z, double t, double a) {
double r274279 = z;
double r274280 = -2.1890101961612443e+88;
bool r274281 = r274279 <= r274280;
double r274282 = -1.0;
double r274283 = x;
double r274284 = y;
double r274285 = r274283 * r274284;
double r274286 = r274282 * r274285;
double r274287 = 4.518132542240334e+112;
bool r274288 = r274279 <= r274287;
double r274289 = r274279 * r274279;
double r274290 = t;
double r274291 = a;
double r274292 = r274290 * r274291;
double r274293 = r274289 - r274292;
double r274294 = cbrt(r274293);
double r274295 = fabs(r274294);
double r274296 = r274285 / r274295;
double r274297 = sqrt(r274294);
double r274298 = r274279 / r274297;
double r274299 = r274296 * r274298;
double r274300 = r274288 ? r274299 : r274285;
double r274301 = r274281 ? r274286 : r274300;
return r274301;
}




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.9 |
| Herbie | 7.1 |
if z < -2.1890101961612443e+88Initial program 41.5
Taylor expanded around -inf 2.4
if -2.1890101961612443e+88 < z < 4.518132542240334e+112Initial program 11.0
rmApplied *-un-lft-identity11.0
Applied sqrt-prod11.0
Applied times-frac9.4
Simplified9.4
rmApplied add-cube-cbrt9.8
Applied sqrt-prod9.8
Applied *-un-lft-identity9.8
Applied times-frac9.8
Applied associate-*r*10.6
Simplified10.6
if 4.518132542240334e+112 < z Initial program 45.6
Taylor expanded around inf 2.3
Final simplification7.1
herbie shell --seed 2020039 +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)))))