\left(1 - \frac{1}{x \cdot 9}\right) - \frac{y}{3 \cdot \sqrt{x}}\left(1 - \frac{\sqrt[3]{1} \cdot \sqrt[3]{1}}{x} \cdot \frac{\sqrt[3]{1}}{9}\right) - y \cdot \frac{1}{3 \cdot \sqrt{x}}double f(double x, double y) {
double r382736 = 1.0;
double r382737 = x;
double r382738 = 9.0;
double r382739 = r382737 * r382738;
double r382740 = r382736 / r382739;
double r382741 = r382736 - r382740;
double r382742 = y;
double r382743 = 3.0;
double r382744 = sqrt(r382737);
double r382745 = r382743 * r382744;
double r382746 = r382742 / r382745;
double r382747 = r382741 - r382746;
return r382747;
}
double f(double x, double y) {
double r382748 = 1.0;
double r382749 = cbrt(r382748);
double r382750 = r382749 * r382749;
double r382751 = x;
double r382752 = r382750 / r382751;
double r382753 = 9.0;
double r382754 = r382749 / r382753;
double r382755 = r382752 * r382754;
double r382756 = r382748 - r382755;
double r382757 = y;
double r382758 = 1.0;
double r382759 = 3.0;
double r382760 = sqrt(r382751);
double r382761 = r382759 * r382760;
double r382762 = r382758 / r382761;
double r382763 = r382757 * r382762;
double r382764 = r382756 - r382763;
return r382764;
}




Bits error versus x




Bits error versus y
Results
| Original | 0.2 |
|---|---|
| Target | 0.2 |
| Herbie | 0.3 |
Initial program 0.2
rmApplied add-cube-cbrt0.2
Applied times-frac0.3
rmApplied div-inv0.3
Final simplification0.3
herbie shell --seed 2020083 +o rules:numerics
(FPCore (x y)
:name "Numeric.SpecFunctions:invIncompleteGamma from math-functions-0.1.5.2, D"
:precision binary64
:herbie-target
(- (- 1 (/ (/ 1 x) 9)) (/ y (* 3 (sqrt x))))
(- (- 1 (/ 1 (* x 9))) (/ y (* 3 (sqrt x)))))