\left(1 - \frac{1}{x \cdot 9}\right) - \frac{y}{3 \cdot \sqrt{x}}\left(1 - \frac{\frac{1}{x}}{9}\right) - y \cdot \frac{\frac{1}{\sqrt[3]{3} \cdot \sqrt[3]{3}}}{\sqrt{x} \cdot \sqrt[3]{3}}double f(double x, double y) {
double r28066329 = 1.0;
double r28066330 = x;
double r28066331 = 9.0;
double r28066332 = r28066330 * r28066331;
double r28066333 = r28066329 / r28066332;
double r28066334 = r28066329 - r28066333;
double r28066335 = y;
double r28066336 = 3.0;
double r28066337 = sqrt(r28066330);
double r28066338 = r28066336 * r28066337;
double r28066339 = r28066335 / r28066338;
double r28066340 = r28066334 - r28066339;
return r28066340;
}
double f(double x, double y) {
double r28066341 = 1.0;
double r28066342 = x;
double r28066343 = r28066341 / r28066342;
double r28066344 = 9.0;
double r28066345 = r28066343 / r28066344;
double r28066346 = r28066341 - r28066345;
double r28066347 = y;
double r28066348 = 1.0;
double r28066349 = 3.0;
double r28066350 = cbrt(r28066349);
double r28066351 = r28066350 * r28066350;
double r28066352 = r28066348 / r28066351;
double r28066353 = sqrt(r28066342);
double r28066354 = r28066353 * r28066350;
double r28066355 = r28066352 / r28066354;
double r28066356 = r28066347 * r28066355;
double r28066357 = r28066346 - r28066356;
return r28066357;
}




Bits error versus x




Bits error versus y
Results
| Original | 0.2 |
|---|---|
| Target | 0.3 |
| Herbie | 0.3 |
Initial program 0.2
rmApplied associate-/r*0.3
rmApplied associate-/r*0.2
rmApplied *-un-lft-identity0.2
Applied sqrt-prod0.2
Applied div-inv0.3
Applied times-frac0.3
Simplified0.3
rmApplied add-cube-cbrt0.3
Applied *-un-lft-identity0.3
Applied times-frac0.4
Applied associate-/l*0.3
Simplified0.3
Final simplification0.3
herbie shell --seed 2019174 +o rules:numerics
(FPCore (x y)
:name "Numeric.SpecFunctions:invIncompleteGamma from math-functions-0.1.5.2, D"
:herbie-target
(- (- 1.0 (/ (/ 1.0 x) 9.0)) (/ y (* 3.0 (sqrt x))))
(- (- 1.0 (/ 1.0 (* x 9.0))) (/ y (* 3.0 (sqrt x)))))