\frac{x \cdot y}{\left(\left(x + y\right) \cdot \left(x + y\right)\right) \cdot \left(\left(x + y\right) + 1\right)}\left(\left(\sqrt[3]{\frac{x}{y + x}} \cdot \sqrt[3]{\frac{x}{y + x}}\right) \cdot \frac{\sqrt[3]{\frac{x}{y + x}}}{y + x}\right) \cdot \frac{y}{1 + \left(y + x\right)}double f(double x, double y) {
double r23481222 = x;
double r23481223 = y;
double r23481224 = r23481222 * r23481223;
double r23481225 = r23481222 + r23481223;
double r23481226 = r23481225 * r23481225;
double r23481227 = 1.0;
double r23481228 = r23481225 + r23481227;
double r23481229 = r23481226 * r23481228;
double r23481230 = r23481224 / r23481229;
return r23481230;
}
double f(double x, double y) {
double r23481231 = x;
double r23481232 = y;
double r23481233 = r23481232 + r23481231;
double r23481234 = r23481231 / r23481233;
double r23481235 = cbrt(r23481234);
double r23481236 = r23481235 * r23481235;
double r23481237 = r23481235 / r23481233;
double r23481238 = r23481236 * r23481237;
double r23481239 = 1.0;
double r23481240 = r23481239 + r23481233;
double r23481241 = r23481232 / r23481240;
double r23481242 = r23481238 * r23481241;
return r23481242;
}




Bits error versus x




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