\frac{\left(x \cdot y\right) \cdot z}{\sqrt{z \cdot z - t \cdot a}}\begin{array}{l}
\mathbf{if}\;z \le -6395336884503866936309996195044608815661000:\\
\;\;\;\;x \cdot \left(-y\right)\\
\mathbf{elif}\;z \le 7.643275720107879512063854532156486714456 \cdot 10^{117}:\\
\;\;\;\;\frac{x}{\sqrt{\sqrt{z \cdot z - a \cdot t}}} \cdot \frac{y \cdot z}{\sqrt{\sqrt{z \cdot z - a \cdot t}}}\\
\mathbf{else}:\\
\;\;\;\;x \cdot y\\
\end{array}double f(double x, double y, double z, double t, double a) {
double r264521 = x;
double r264522 = y;
double r264523 = r264521 * r264522;
double r264524 = z;
double r264525 = r264523 * r264524;
double r264526 = r264524 * r264524;
double r264527 = t;
double r264528 = a;
double r264529 = r264527 * r264528;
double r264530 = r264526 - r264529;
double r264531 = sqrt(r264530);
double r264532 = r264525 / r264531;
return r264532;
}
double f(double x, double y, double z, double t, double a) {
double r264533 = z;
double r264534 = -6.395336884503867e+42;
bool r264535 = r264533 <= r264534;
double r264536 = x;
double r264537 = y;
double r264538 = -r264537;
double r264539 = r264536 * r264538;
double r264540 = 7.64327572010788e+117;
bool r264541 = r264533 <= r264540;
double r264542 = r264533 * r264533;
double r264543 = a;
double r264544 = t;
double r264545 = r264543 * r264544;
double r264546 = r264542 - r264545;
double r264547 = sqrt(r264546);
double r264548 = sqrt(r264547);
double r264549 = r264536 / r264548;
double r264550 = r264537 * r264533;
double r264551 = r264550 / r264548;
double r264552 = r264549 * r264551;
double r264553 = r264536 * r264537;
double r264554 = r264541 ? r264552 : r264553;
double r264555 = r264535 ? r264539 : r264554;
return r264555;
}




Bits error versus x




Bits error versus y




Bits error versus z




Bits error versus t




Bits error versus a
Results
| Original | 24.9 |
|---|---|
| Target | 7.9 |
| Herbie | 7.8 |
if z < -6.395336884503867e+42Initial program 37.0
Simplified36.5
rmApplied div-inv36.6
Applied associate-*l*34.3
Simplified34.3
Taylor expanded around -inf 4.0
Simplified4.0
if -6.395336884503867e+42 < z < 7.64327572010788e+117Initial program 11.5
Simplified11.6
rmApplied add-sqr-sqrt11.6
Applied sqrt-prod11.8
Applied times-frac12.4
Applied associate-*l*11.4
Simplified11.7
if 7.64327572010788e+117 < z Initial program 46.6
Simplified46.2
rmApplied div-inv46.2
Applied associate-*l*44.6
Simplified44.5
Taylor expanded around inf 1.7
Final simplification7.8
herbie shell --seed 2019179
(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)))))