\left(1 - \frac{1}{x \cdot 9}\right) - \frac{y}{3 \cdot \sqrt{x}}\left(1 - \frac{\frac{1}{x}}{9}\right) - \frac{y}{\left(\sqrt[3]{3} \cdot \sqrt{x}\right) \cdot \left(\sqrt[3]{3} \cdot \sqrt[3]{3}\right)}double f(double x, double y) {
double r14943791 = 1.0;
double r14943792 = x;
double r14943793 = 9.0;
double r14943794 = r14943792 * r14943793;
double r14943795 = r14943791 / r14943794;
double r14943796 = r14943791 - r14943795;
double r14943797 = y;
double r14943798 = 3.0;
double r14943799 = sqrt(r14943792);
double r14943800 = r14943798 * r14943799;
double r14943801 = r14943797 / r14943800;
double r14943802 = r14943796 - r14943801;
return r14943802;
}
double f(double x, double y) {
double r14943803 = 1.0;
double r14943804 = x;
double r14943805 = r14943803 / r14943804;
double r14943806 = 9.0;
double r14943807 = r14943805 / r14943806;
double r14943808 = r14943803 - r14943807;
double r14943809 = y;
double r14943810 = 3.0;
double r14943811 = cbrt(r14943810);
double r14943812 = sqrt(r14943804);
double r14943813 = r14943811 * r14943812;
double r14943814 = r14943811 * r14943811;
double r14943815 = r14943813 * r14943814;
double r14943816 = r14943809 / r14943815;
double r14943817 = r14943808 - r14943816;
return r14943817;
}




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 add-cube-cbrt0.3
Applied associate-*l*0.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)))))