\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{1}{x + y} \cdot \frac{x}{x + y}\right) \cdot \frac{y}{\left(x + y\right) + 1}double f(double x, double y) {
double r24851151 = x;
double r24851152 = y;
double r24851153 = r24851151 * r24851152;
double r24851154 = r24851151 + r24851152;
double r24851155 = r24851154 * r24851154;
double r24851156 = 1.0;
double r24851157 = r24851154 + r24851156;
double r24851158 = r24851155 * r24851157;
double r24851159 = r24851153 / r24851158;
return r24851159;
}
double f(double x, double y) {
double r24851160 = 1.0;
double r24851161 = x;
double r24851162 = y;
double r24851163 = r24851161 + r24851162;
double r24851164 = r24851160 / r24851163;
double r24851165 = r24851161 / r24851163;
double r24851166 = r24851164 * r24851165;
double r24851167 = 1.0;
double r24851168 = r24851163 + r24851167;
double r24851169 = r24851162 / r24851168;
double r24851170 = r24851166 * r24851169;
return r24851170;
}




Bits error versus x




Bits error versus y
Results
| Original | 19.6 |
|---|---|
| Target | 0.1 |
| Herbie | 0.2 |
Initial program 19.6
rmApplied times-frac7.8
rmApplied *-un-lft-identity7.8
Applied times-frac0.2
Final simplification0.2
herbie shell --seed 2019174 +o rules:numerics
(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))))