\left(1.0 - \frac{1.0}{x \cdot 9.0}\right) - \frac{y}{3.0 \cdot \sqrt{x}}\left(1.0 - \frac{\frac{1.0}{x}}{9.0}\right) - \frac{y}{\left(\sqrt[3]{3.0} \cdot \sqrt{x}\right) \cdot \left(\sqrt[3]{3.0} \cdot \sqrt[3]{3.0}\right)}double f(double x, double y) {
double r15903779 = 1.0;
double r15903780 = x;
double r15903781 = 9.0;
double r15903782 = r15903780 * r15903781;
double r15903783 = r15903779 / r15903782;
double r15903784 = r15903779 - r15903783;
double r15903785 = y;
double r15903786 = 3.0;
double r15903787 = sqrt(r15903780);
double r15903788 = r15903786 * r15903787;
double r15903789 = r15903785 / r15903788;
double r15903790 = r15903784 - r15903789;
return r15903790;
}
double f(double x, double y) {
double r15903791 = 1.0;
double r15903792 = x;
double r15903793 = r15903791 / r15903792;
double r15903794 = 9.0;
double r15903795 = r15903793 / r15903794;
double r15903796 = r15903791 - r15903795;
double r15903797 = y;
double r15903798 = 3.0;
double r15903799 = cbrt(r15903798);
double r15903800 = sqrt(r15903792);
double r15903801 = r15903799 * r15903800;
double r15903802 = r15903799 * r15903799;
double r15903803 = r15903801 * r15903802;
double r15903804 = r15903797 / r15903803;
double r15903805 = r15903796 - r15903804;
return r15903805;
}




Bits error versus x




Bits error versus y
Results
| Original | 0.2 |
|---|---|
| Target | 0.2 |
| Herbie | 0.3 |
Initial program 0.2
rmApplied associate-/r*0.2
rmApplied add-cube-cbrt0.2
Applied associate-*l*0.3
Final simplification0.3
herbie shell --seed 2019165 +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)))))