\frac{x \cdot y}{\left(\left(x + y\right) \cdot \left(x + y\right)\right) \cdot \left(\left(x + y\right) + 1.0\right)}\left(\left(\frac{1}{\sqrt[3]{x + y} \cdot \sqrt[3]{x + y}} \cdot \frac{\sqrt[3]{x}}{\frac{\sqrt[3]{x + y}}{\sqrt[3]{y}}}\right) \cdot \frac{\sqrt[3]{x}}{\frac{x + y}{\sqrt[3]{y}}}\right) \cdot \frac{\sqrt[3]{x}}{\frac{1.0 + \left(x + y\right)}{\sqrt[3]{y}}}double f(double x, double y) {
double r25122288 = x;
double r25122289 = y;
double r25122290 = r25122288 * r25122289;
double r25122291 = r25122288 + r25122289;
double r25122292 = r25122291 * r25122291;
double r25122293 = 1.0;
double r25122294 = r25122291 + r25122293;
double r25122295 = r25122292 * r25122294;
double r25122296 = r25122290 / r25122295;
return r25122296;
}
double f(double x, double y) {
double r25122297 = 1.0;
double r25122298 = x;
double r25122299 = y;
double r25122300 = r25122298 + r25122299;
double r25122301 = cbrt(r25122300);
double r25122302 = r25122301 * r25122301;
double r25122303 = r25122297 / r25122302;
double r25122304 = cbrt(r25122298);
double r25122305 = cbrt(r25122299);
double r25122306 = r25122301 / r25122305;
double r25122307 = r25122304 / r25122306;
double r25122308 = r25122303 * r25122307;
double r25122309 = r25122300 / r25122305;
double r25122310 = r25122304 / r25122309;
double r25122311 = r25122308 * r25122310;
double r25122312 = 1.0;
double r25122313 = r25122312 + r25122300;
double r25122314 = r25122313 / r25122305;
double r25122315 = r25122304 / r25122314;
double r25122316 = r25122311 * r25122315;
return r25122316;
}




Bits error versus x




Bits error versus y
Results
| Original | 19.9 |
|---|---|
| Target | 0.1 |
| Herbie | 0.8 |
Initial program 19.9
rmApplied associate-/l*11.7
rmApplied add-cube-cbrt12.1
Applied times-frac10.1
Applied add-cube-cbrt10.2
Applied times-frac8.4
Simplified0.9
rmApplied *-un-lft-identity0.9
Applied add-cube-cbrt0.8
Applied times-frac0.8
Applied *-un-lft-identity0.8
Applied times-frac0.8
Final simplification0.8
herbie shell --seed 2019165
(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))))