\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 + y} \cdot \frac{y}{\left(x + y\right) + 1}}{x + y} \cdot \left(\sqrt[3]{1} \cdot \sqrt[3]{1}\right)double f(double x, double y) {
double r603985 = x;
double r603986 = y;
double r603987 = r603985 * r603986;
double r603988 = r603985 + r603986;
double r603989 = r603988 * r603988;
double r603990 = 1.0;
double r603991 = r603988 + r603990;
double r603992 = r603989 * r603991;
double r603993 = r603987 / r603992;
return r603993;
}
double f(double x, double y) {
double r603994 = x;
double r603995 = y;
double r603996 = r603994 + r603995;
double r603997 = r603994 / r603996;
double r603998 = 1.0;
double r603999 = r603996 + r603998;
double r604000 = r603995 / r603999;
double r604001 = r603997 * r604000;
double r604002 = r604001 / r603996;
double r604003 = 1.0;
double r604004 = cbrt(r604003);
double r604005 = r604004 * r604004;
double r604006 = r604002 * r604005;
return r604006;
}




Bits error versus x




Bits error versus y
Results
| Original | 20.0 |
|---|---|
| Target | 0.1 |
| Herbie | 0.1 |
Initial program 20.0
rmApplied times-frac8.2
rmApplied *-un-lft-identity8.2
Applied times-frac0.2
Applied associate-*l*0.2
rmApplied *-un-lft-identity0.2
Applied add-cube-cbrt0.2
Applied times-frac0.2
Applied associate-*l*0.2
Simplified0.1
Final simplification0.1
herbie shell --seed 2020046
(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))))