\frac{x \cdot y}{\left(\left(x + y\right) \cdot \left(x + y\right)\right) \cdot \left(\left(x + y\right) + 1\right)}\left(\frac{\frac{x}{x + y}}{x + y} \cdot y\right) \cdot \frac{1}{\left(x + y\right) + 1}double f(double x, double y) {
double r485368 = x;
double r485369 = y;
double r485370 = r485368 * r485369;
double r485371 = r485368 + r485369;
double r485372 = r485371 * r485371;
double r485373 = 1.0;
double r485374 = r485371 + r485373;
double r485375 = r485372 * r485374;
double r485376 = r485370 / r485375;
return r485376;
}
double f(double x, double y) {
double r485377 = x;
double r485378 = y;
double r485379 = r485377 + r485378;
double r485380 = r485377 / r485379;
double r485381 = r485380 / r485379;
double r485382 = r485381 * r485378;
double r485383 = 1.0;
double r485384 = 1.0;
double r485385 = r485379 + r485384;
double r485386 = r485383 / r485385;
double r485387 = r485382 * r485386;
return r485387;
}




Bits error versus x




Bits error versus y
Results
| Original | 19.2 |
|---|---|
| Target | 0.1 |
| Herbie | 0.2 |
Initial program 19.2
rmApplied times-frac7.6
rmApplied associate-/r*0.1
rmApplied div-inv0.2
Applied associate-*r*0.2
Final simplification0.2
herbie shell --seed 2020003
(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))))