\frac{x \cdot y}{\left(\left(x + y\right) \cdot \left(x + y\right)\right) \cdot \left(\left(x + y\right) + 1\right)}\frac{\frac{x}{1 + \left(x + y\right)} \cdot \frac{y}{x + y}}{x + y}double f(double x, double y) {
double r427726 = x;
double r427727 = y;
double r427728 = r427726 * r427727;
double r427729 = r427726 + r427727;
double r427730 = r427729 * r427729;
double r427731 = 1.0;
double r427732 = r427729 + r427731;
double r427733 = r427730 * r427732;
double r427734 = r427728 / r427733;
return r427734;
}
double f(double x, double y) {
double r427735 = x;
double r427736 = 1.0;
double r427737 = y;
double r427738 = r427735 + r427737;
double r427739 = r427736 + r427738;
double r427740 = r427735 / r427739;
double r427741 = r427737 / r427738;
double r427742 = r427740 * r427741;
double r427743 = r427742 / r427738;
return r427743;
}




Bits error versus x




Bits error versus y
Results
| Original | 20.0 |
|---|---|
| Target | 0.1 |
| Herbie | 0.1 |
Initial program 20.0
Simplified20.0
rmApplied times-frac7.8
Simplified7.8
Simplified0.2
rmApplied associate-*r/0.1
Simplified0.1
Final simplification0.1
herbie shell --seed 2019194
(FPCore (x y)
:name "Numeric.SpecFunctions:incompleteBetaApprox from math-functions-0.1.5.2, A"
:herbie-target
(/ (/ (/ x (+ (+ y 1.0) x)) (+ y x)) (/ 1.0 (/ y (+ y x))))
(/ (* x y) (* (* (+ x y) (+ x y)) (+ (+ x y) 1.0))))