x + \frac{y \cdot \left(\left(z \cdot 0.0692910599291889 + 0.4917317610505968\right) \cdot z + 0.279195317918525\right)}{\left(z + 6.012459259764103\right) \cdot z + 3.350343815022304}\begin{array}{l}
\mathbf{if}\;z \le -3562211.514711785:\\
\;\;\;\;x + \left(0.0692910599291889 \cdot y + \left(0.07512208616047561 - \frac{0.40462203869992125}{z}\right) \cdot \frac{y}{z}\right)\\
\mathbf{elif}\;z \le 8.728612712058619 \cdot 10^{-20}:\\
\;\;\;\;x + \frac{z \cdot \left(0.0692910599291889 \cdot z + 0.4917317610505968\right) + 0.279195317918525}{z \cdot \left(6.012459259764103 + z\right) + 3.350343815022304} \cdot y\\
\mathbf{else}:\\
\;\;\;\;x + \left(0.0692910599291889 \cdot y + \left(0.07512208616047561 - \frac{0.40462203869992125}{z}\right) \cdot \frac{y}{z}\right)\\
\end{array}double f(double x, double y, double z) {
double r19551545 = x;
double r19551546 = y;
double r19551547 = z;
double r19551548 = 0.0692910599291889;
double r19551549 = r19551547 * r19551548;
double r19551550 = 0.4917317610505968;
double r19551551 = r19551549 + r19551550;
double r19551552 = r19551551 * r19551547;
double r19551553 = 0.279195317918525;
double r19551554 = r19551552 + r19551553;
double r19551555 = r19551546 * r19551554;
double r19551556 = 6.012459259764103;
double r19551557 = r19551547 + r19551556;
double r19551558 = r19551557 * r19551547;
double r19551559 = 3.350343815022304;
double r19551560 = r19551558 + r19551559;
double r19551561 = r19551555 / r19551560;
double r19551562 = r19551545 + r19551561;
return r19551562;
}
double f(double x, double y, double z) {
double r19551563 = z;
double r19551564 = -3562211.514711785;
bool r19551565 = r19551563 <= r19551564;
double r19551566 = x;
double r19551567 = 0.0692910599291889;
double r19551568 = y;
double r19551569 = r19551567 * r19551568;
double r19551570 = 0.07512208616047561;
double r19551571 = 0.40462203869992125;
double r19551572 = r19551571 / r19551563;
double r19551573 = r19551570 - r19551572;
double r19551574 = r19551568 / r19551563;
double r19551575 = r19551573 * r19551574;
double r19551576 = r19551569 + r19551575;
double r19551577 = r19551566 + r19551576;
double r19551578 = 8.728612712058619e-20;
bool r19551579 = r19551563 <= r19551578;
double r19551580 = r19551567 * r19551563;
double r19551581 = 0.4917317610505968;
double r19551582 = r19551580 + r19551581;
double r19551583 = r19551563 * r19551582;
double r19551584 = 0.279195317918525;
double r19551585 = r19551583 + r19551584;
double r19551586 = 6.012459259764103;
double r19551587 = r19551586 + r19551563;
double r19551588 = r19551563 * r19551587;
double r19551589 = 3.350343815022304;
double r19551590 = r19551588 + r19551589;
double r19551591 = r19551585 / r19551590;
double r19551592 = r19551591 * r19551568;
double r19551593 = r19551566 + r19551592;
double r19551594 = r19551579 ? r19551593 : r19551577;
double r19551595 = r19551565 ? r19551577 : r19551594;
return r19551595;
}




Bits error versus x




Bits error versus y




Bits error versus z
Results
| Original | 19.5 |
|---|---|
| Target | 0.2 |
| Herbie | 0.6 |
if z < -3562211.514711785 or 8.728612712058619e-20 < z Initial program 38.0
rmApplied *-un-lft-identity38.0
Applied times-frac30.6
Simplified30.6
Taylor expanded around inf 1.1
Simplified1.2
if -3562211.514711785 < z < 8.728612712058619e-20Initial program 0.1
rmApplied *-un-lft-identity0.1
Applied times-frac0.1
Simplified0.1
Final simplification0.6
herbie shell --seed 2019163
(FPCore (x y z)
:name "Numeric.SpecFunctions:logGamma from math-functions-0.1.5.2, B"
:herbie-target
(if (< z -8120153.652456675) (- (* (+ (/ 0.07512208616047561 z) 0.0692910599291889) y) (- (/ (* 0.40462203869992125 y) (* z z)) x)) (if (< z 6.576118972787377e+20) (+ x (* (* y (+ (* (+ (* z 0.0692910599291889) 0.4917317610505968) z) 0.279195317918525)) (/ 1 (+ (* (+ z 6.012459259764103) z) 3.350343815022304)))) (- (* (+ (/ 0.07512208616047561 z) 0.0692910599291889) y) (- (/ (* 0.40462203869992125 y) (* z z)) x))))
(+ x (/ (* y (+ (* (+ (* z 0.0692910599291889) 0.4917317610505968) z) 0.279195317918525)) (+ (* (+ z 6.012459259764103) z) 3.350343815022304))))