\frac{\left(x \cdot y\right) \cdot z}{\sqrt{z \cdot z - t \cdot a}}\begin{array}{l}
\mathbf{if}\;z \le -2.908907423900699709629920238106677680786 \cdot 10^{153}:\\
\;\;\;\;-1 \cdot \left(x \cdot y\right)\\
\mathbf{elif}\;z \le 7.526056547081696508068725299857229016339 \cdot 10^{111}:\\
\;\;\;\;\frac{x}{\sqrt{1}} \cdot \frac{y}{\frac{\sqrt{z \cdot z - t \cdot a}}{z}}\\
\mathbf{else}:\\
\;\;\;\;\frac{x}{\sqrt{1}} \cdot y\\
\end{array}double f(double x, double y, double z, double t, double a) {
double r224094 = x;
double r224095 = y;
double r224096 = r224094 * r224095;
double r224097 = z;
double r224098 = r224096 * r224097;
double r224099 = r224097 * r224097;
double r224100 = t;
double r224101 = a;
double r224102 = r224100 * r224101;
double r224103 = r224099 - r224102;
double r224104 = sqrt(r224103);
double r224105 = r224098 / r224104;
return r224105;
}
double f(double x, double y, double z, double t, double a) {
double r224106 = z;
double r224107 = -2.9089074239006997e+153;
bool r224108 = r224106 <= r224107;
double r224109 = -1.0;
double r224110 = x;
double r224111 = y;
double r224112 = r224110 * r224111;
double r224113 = r224109 * r224112;
double r224114 = 7.526056547081697e+111;
bool r224115 = r224106 <= r224114;
double r224116 = 1.0;
double r224117 = sqrt(r224116);
double r224118 = r224110 / r224117;
double r224119 = r224106 * r224106;
double r224120 = t;
double r224121 = a;
double r224122 = r224120 * r224121;
double r224123 = r224119 - r224122;
double r224124 = sqrt(r224123);
double r224125 = r224124 / r224106;
double r224126 = r224111 / r224125;
double r224127 = r224118 * r224126;
double r224128 = r224118 * r224111;
double r224129 = r224115 ? r224127 : r224128;
double r224130 = r224108 ? r224113 : r224129;
return r224130;
}




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 | 8.3 |
| Herbie | 6.8 |
if z < -2.9089074239006997e+153Initial program 52.7
rmApplied associate-/l*52.3
rmApplied clear-num52.3
Taylor expanded around -inf 1.3
if -2.9089074239006997e+153 < z < 7.526056547081697e+111Initial program 11.4
rmApplied associate-/l*9.6
rmApplied *-un-lft-identity9.6
Applied *-un-lft-identity9.6
Applied sqrt-prod9.6
Applied times-frac9.6
Applied times-frac9.5
Simplified9.5
if 7.526056547081697e+111 < z Initial program 45.6
rmApplied associate-/l*43.6
rmApplied *-un-lft-identity43.6
Applied *-un-lft-identity43.6
Applied sqrt-prod43.6
Applied times-frac43.6
Applied times-frac43.6
Simplified43.6
Taylor expanded around inf 2.3
Final simplification6.8
herbie shell --seed 1978988140
(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)))))