\frac{x \cdot y}{\left(\left(x + y\right) \cdot \left(x + y\right)\right) \cdot \left(\left(x + y\right) + 1.0\right)}\frac{\frac{y}{\left(y + x\right) + 1.0}}{y + x} \cdot \frac{x}{y + x}double f(double x, double y) {
double r21843522 = x;
double r21843523 = y;
double r21843524 = r21843522 * r21843523;
double r21843525 = r21843522 + r21843523;
double r21843526 = r21843525 * r21843525;
double r21843527 = 1.0;
double r21843528 = r21843525 + r21843527;
double r21843529 = r21843526 * r21843528;
double r21843530 = r21843524 / r21843529;
return r21843530;
}
double f(double x, double y) {
double r21843531 = y;
double r21843532 = x;
double r21843533 = r21843531 + r21843532;
double r21843534 = 1.0;
double r21843535 = r21843533 + r21843534;
double r21843536 = r21843531 / r21843535;
double r21843537 = r21843536 / r21843533;
double r21843538 = r21843532 / r21843533;
double r21843539 = r21843537 * r21843538;
return r21843539;
}




Bits error versus x




Bits error versus y
Results
| Original | 19.7 |
|---|---|
| Target | 0.1 |
| Herbie | 0.1 |
Initial program 19.7
rmApplied times-frac8.1
rmApplied associate-/r*0.2
rmApplied div-inv0.2
Applied associate-*l*0.2
Simplified0.1
Final simplification0.1
herbie shell --seed 2019162
(FPCore (x y)
:name "Numeric.SpecFunctions:incompleteBetaApprox from math-functions-0.1.5.2, A"
:herbie-target
(/ (/ (/ x (+ (+ y 1) x)) (+ y x)) (/ 1 (/ y (+ y x))))
(/ (* x y) (* (* (+ x y) (+ x y)) (+ (+ x y) 1.0))))