\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{\frac{y}{y + x} \cdot x}{y + x}}{1 + \left(y + x\right)}double f(double x, double y) {
double r421210 = x;
double r421211 = y;
double r421212 = r421210 * r421211;
double r421213 = r421210 + r421211;
double r421214 = r421213 * r421213;
double r421215 = 1.0;
double r421216 = r421213 + r421215;
double r421217 = r421214 * r421216;
double r421218 = r421212 / r421217;
return r421218;
}
double f(double x, double y) {
double r421219 = y;
double r421220 = x;
double r421221 = r421219 + r421220;
double r421222 = r421219 / r421221;
double r421223 = r421222 * r421220;
double r421224 = r421223 / r421221;
double r421225 = 1.0;
double r421226 = r421225 + r421221;
double r421227 = r421224 / r421226;
return r421227;
}




Bits error versus x




Bits error versus y
Results
| Original | 19.6 |
|---|---|
| Target | 0.1 |
| Herbie | 0.1 |
Initial program 19.6
Simplified19.6
rmApplied times-frac7.8
Simplified7.8
Simplified0.2
rmApplied associate-*l/0.1
Simplified0.1
Final simplification0.1
herbie shell --seed 2019174
(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))))