\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}{x \cdot x + y \cdot \left(2 \cdot x + y\right)} \cdot y}{\left(x + y\right) + 1}double f(double x, double y) {
double r268678 = x;
double r268679 = y;
double r268680 = r268678 * r268679;
double r268681 = r268678 + r268679;
double r268682 = r268681 * r268681;
double r268683 = 1.0;
double r268684 = r268681 + r268683;
double r268685 = r268682 * r268684;
double r268686 = r268680 / r268685;
return r268686;
}
double f(double x, double y) {
double r268687 = x;
double r268688 = r268687 * r268687;
double r268689 = y;
double r268690 = 2.0;
double r268691 = r268690 * r268687;
double r268692 = r268691 + r268689;
double r268693 = r268689 * r268692;
double r268694 = r268688 + r268693;
double r268695 = r268687 / r268694;
double r268696 = r268695 * r268689;
double r268697 = r268687 + r268689;
double r268698 = 1.0;
double r268699 = r268697 + r268698;
double r268700 = r268696 / r268699;
return r268700;
}




Bits error versus x




Bits error versus y
Results
| Original | 20.1 |
|---|---|
| Target | 0.1 |
| Herbie | 9.4 |
Initial program 20.1
Taylor expanded around 0 20.1
Simplified20.1
rmApplied times-frac9.4
rmApplied associate-*r/9.4
Final simplification9.4
herbie shell --seed 2019304
(FPCore (x y)
:name "Numeric.SpecFunctions:incompleteBetaApprox from math-functions-0.1.5.2, A"
:precision binary64
:herbie-target
(/ (/ (/ x (+ (+ y 1) x)) (+ y x)) (/ 1 (/ y (+ y x))))
(/ (* x y) (* (* (+ x y) (+ x y)) (+ (+ x y) 1))))