\frac{x \cdot \left(y + z\right)}{z}\begin{array}{l}
\mathbf{if}\;z \le -5104496756807823400959889660759009918976:\\
\;\;\;\;\frac{x}{\frac{z}{y}} + x\\
\mathbf{elif}\;z \le 1.097856366012339157215663859472876118082 \cdot 10^{-51}:\\
\;\;\;\;\left(x \cdot y\right) \cdot \frac{1}{z} + x\\
\mathbf{else}:\\
\;\;\;\;\frac{1}{\frac{\frac{z}{y}}{x}} + x\\
\end{array}double f(double x, double y, double z) {
double r332515 = x;
double r332516 = y;
double r332517 = z;
double r332518 = r332516 + r332517;
double r332519 = r332515 * r332518;
double r332520 = r332519 / r332517;
return r332520;
}
double f(double x, double y, double z) {
double r332521 = z;
double r332522 = -5.1044967568078234e+39;
bool r332523 = r332521 <= r332522;
double r332524 = x;
double r332525 = y;
double r332526 = r332521 / r332525;
double r332527 = r332524 / r332526;
double r332528 = r332527 + r332524;
double r332529 = 1.0978563660123392e-51;
bool r332530 = r332521 <= r332529;
double r332531 = r332524 * r332525;
double r332532 = 1.0;
double r332533 = r332532 / r332521;
double r332534 = r332531 * r332533;
double r332535 = r332534 + r332524;
double r332536 = r332526 / r332524;
double r332537 = r332532 / r332536;
double r332538 = r332537 + r332524;
double r332539 = r332530 ? r332535 : r332538;
double r332540 = r332523 ? r332528 : r332539;
return r332540;
}




Bits error versus x




Bits error versus y




Bits error versus z
Results
| Original | 12.3 |
|---|---|
| Target | 3.1 |
| Herbie | 1.7 |
if z < -5.1044967568078234e+39Initial program 18.4
Taylor expanded around 0 6.0
rmApplied associate-/l*0.0
if -5.1044967568078234e+39 < z < 1.0978563660123392e-51Initial program 7.1
Taylor expanded around 0 3.6
rmApplied div-inv3.7
if 1.0978563660123392e-51 < z Initial program 14.5
Taylor expanded around 0 4.8
rmApplied associate-/l*0.2
rmApplied clear-num0.3
Final simplification1.7
herbie shell --seed 2019212
(FPCore (x y z)
:name "Numeric.SpecFunctions:choose from math-functions-0.1.5.2"
:precision binary64
:herbie-target
(/ x (/ z (+ y z)))
(/ (* x (+ y z)) z))