\left(1 - \frac{1}{x \cdot 9}\right) - \frac{y}{3 \cdot \sqrt{x}}\left(\frac{1}{3} + \frac{-1}{3}\right) \cdot \frac{y}{\sqrt{x}} + \left(\left(1 - \frac{\frac{\frac{1}{x}}{\sqrt{9}}}{\sqrt{9}}\right) - \frac{\frac{y}{\sqrt{x}}}{3}\right)double f(double x, double y) {
double r389747 = 1.0;
double r389748 = x;
double r389749 = 9.0;
double r389750 = r389748 * r389749;
double r389751 = r389747 / r389750;
double r389752 = r389747 - r389751;
double r389753 = y;
double r389754 = 3.0;
double r389755 = sqrt(r389748);
double r389756 = r389754 * r389755;
double r389757 = r389753 / r389756;
double r389758 = r389752 - r389757;
return r389758;
}
double f(double x, double y) {
double r389759 = 1.0;
double r389760 = 3.0;
double r389761 = r389759 / r389760;
double r389762 = -1.0;
double r389763 = r389762 / r389760;
double r389764 = r389761 + r389763;
double r389765 = y;
double r389766 = x;
double r389767 = sqrt(r389766);
double r389768 = r389765 / r389767;
double r389769 = r389764 * r389768;
double r389770 = 1.0;
double r389771 = r389770 / r389766;
double r389772 = 9.0;
double r389773 = sqrt(r389772);
double r389774 = r389771 / r389773;
double r389775 = r389774 / r389773;
double r389776 = r389770 - r389775;
double r389777 = r389768 / r389760;
double r389778 = r389776 - r389777;
double r389779 = r389769 + r389778;
return r389779;
}




Bits error versus x




Bits error versus y
Results
| Original | 0.2 |
|---|---|
| Target | 0.2 |
| Herbie | 0.3 |
Initial program 0.2
rmApplied *-un-lft-identity0.2
Applied times-frac0.3
Applied add-sqr-sqrt29.9
Applied prod-diff29.9
Simplified0.2
Simplified0.2
rmApplied associate-/r*0.2
rmApplied add-sqr-sqrt0.2
Applied associate-/r*0.3
Final simplification0.3
herbie shell --seed 2019179 +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)))))