\frac{\left(x \cdot y\right) \cdot z}{\sqrt{z \cdot z - t \cdot a}}\begin{array}{l}
\mathbf{if}\;z \le -6.56669606928412226714024442258344220631 \cdot 10^{139}:\\
\;\;\;\;-1 \cdot \left(x \cdot y\right)\\
\mathbf{elif}\;z \le 3.933727440559583419850245795816023246332 \cdot 10^{69}:\\
\;\;\;\;x \cdot \left(y \cdot \frac{z}{\sqrt{z \cdot z - t \cdot a}}\right)\\
\mathbf{else}:\\
\;\;\;\;x \cdot \left(y \cdot 1\right)\\
\end{array}double f(double x, double y, double z, double t, double a) {
double r259666 = x;
double r259667 = y;
double r259668 = r259666 * r259667;
double r259669 = z;
double r259670 = r259668 * r259669;
double r259671 = r259669 * r259669;
double r259672 = t;
double r259673 = a;
double r259674 = r259672 * r259673;
double r259675 = r259671 - r259674;
double r259676 = sqrt(r259675);
double r259677 = r259670 / r259676;
return r259677;
}
double f(double x, double y, double z, double t, double a) {
double r259678 = z;
double r259679 = -6.566696069284122e+139;
bool r259680 = r259678 <= r259679;
double r259681 = -1.0;
double r259682 = x;
double r259683 = y;
double r259684 = r259682 * r259683;
double r259685 = r259681 * r259684;
double r259686 = 3.9337274405595834e+69;
bool r259687 = r259678 <= r259686;
double r259688 = r259678 * r259678;
double r259689 = t;
double r259690 = a;
double r259691 = r259689 * r259690;
double r259692 = r259688 - r259691;
double r259693 = sqrt(r259692);
double r259694 = r259678 / r259693;
double r259695 = r259683 * r259694;
double r259696 = r259682 * r259695;
double r259697 = 1.0;
double r259698 = r259683 * r259697;
double r259699 = r259682 * r259698;
double r259700 = r259687 ? r259696 : r259699;
double r259701 = r259680 ? r259685 : r259700;
return r259701;
}




Bits error versus x




Bits error versus y




Bits error versus z




Bits error versus t




Bits error versus a
Results
| Original | 24.5 |
|---|---|
| Target | 7.7 |
| Herbie | 6.2 |
if z < -6.566696069284122e+139Initial program 50.2
Taylor expanded around -inf 1.5
if -6.566696069284122e+139 < z < 3.9337274405595834e+69Initial program 11.2
rmApplied *-un-lft-identity11.2
Applied times-frac9.3
Simplified9.3
rmApplied associate-*l*8.9
if 3.9337274405595834e+69 < z Initial program 38.7
rmApplied *-un-lft-identity38.7
Applied times-frac35.8
Simplified35.8
rmApplied associate-*l*35.7
Taylor expanded around inf 2.8
Final simplification6.2
herbie shell --seed 2019298
(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)))))