\left(1 - \frac{1}{x \cdot 9}\right) - \frac{y}{3 \cdot \sqrt{x}}\left(\mathsf{fma}\left(\sqrt[3]{1} \cdot \sqrt[3]{1}, \sqrt[3]{1}, \frac{-\frac{1}{x \cdot \sqrt{9}}}{\sqrt{9}}\right) + \frac{1}{\sqrt{9}} \cdot \left(\left(-\frac{\frac{1}{x}}{\sqrt{9}}\right) + \frac{\frac{1}{x}}{\sqrt{9}}\right)\right) - \frac{y}{3 \cdot \sqrt{x}}double f(double x, double y) {
double r309674 = 1.0;
double r309675 = x;
double r309676 = 9.0;
double r309677 = r309675 * r309676;
double r309678 = r309674 / r309677;
double r309679 = r309674 - r309678;
double r309680 = y;
double r309681 = 3.0;
double r309682 = sqrt(r309675);
double r309683 = r309681 * r309682;
double r309684 = r309680 / r309683;
double r309685 = r309679 - r309684;
return r309685;
}
double f(double x, double y) {
double r309686 = 1.0;
double r309687 = cbrt(r309686);
double r309688 = r309687 * r309687;
double r309689 = x;
double r309690 = 9.0;
double r309691 = sqrt(r309690);
double r309692 = r309689 * r309691;
double r309693 = r309686 / r309692;
double r309694 = -r309693;
double r309695 = r309694 / r309691;
double r309696 = fma(r309688, r309687, r309695);
double r309697 = 1.0;
double r309698 = r309697 / r309691;
double r309699 = r309686 / r309689;
double r309700 = r309699 / r309691;
double r309701 = -r309700;
double r309702 = r309701 + r309700;
double r309703 = r309698 * r309702;
double r309704 = r309696 + r309703;
double r309705 = y;
double r309706 = 3.0;
double r309707 = sqrt(r309689);
double r309708 = r309706 * r309707;
double r309709 = r309705 / r309708;
double r309710 = r309704 - r309709;
return r309710;
}




Bits error versus x




Bits error versus y
| Original | 0.2 |
|---|---|
| Target | 0.2 |
| Herbie | 0.3 |
Initial program 0.2
Simplified0.2
rmApplied add-sqr-sqrt0.2
Applied *-un-lft-identity0.2
Applied *-un-lft-identity0.2
Applied times-frac0.2
Applied times-frac0.3
Applied add-cube-cbrt0.3
Applied prod-diff0.3
Simplified0.3
Simplified0.3
rmApplied div-inv0.3
Applied associate-/l*0.3
Simplified0.3
Final simplification0.3
herbie shell --seed 2019305 +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)))))