\left(3 \cdot \sqrt{x}\right) \cdot \left(\left(y + \frac{1}{x \cdot 9}\right) - 1\right)3 \cdot \left(\sqrt{x} \cdot \left(\mathsf{fma}\left(0.1111111111111111049432054187491303309798, \frac{1}{x}, y\right) - 1\right)\right)double f(double x, double y) {
double r492712 = 3.0;
double r492713 = x;
double r492714 = sqrt(r492713);
double r492715 = r492712 * r492714;
double r492716 = y;
double r492717 = 1.0;
double r492718 = 9.0;
double r492719 = r492713 * r492718;
double r492720 = r492717 / r492719;
double r492721 = r492716 + r492720;
double r492722 = r492721 - r492717;
double r492723 = r492715 * r492722;
return r492723;
}
double f(double x, double y) {
double r492724 = 3.0;
double r492725 = x;
double r492726 = sqrt(r492725);
double r492727 = 0.1111111111111111;
double r492728 = 1.0;
double r492729 = r492728 / r492725;
double r492730 = y;
double r492731 = fma(r492727, r492729, r492730);
double r492732 = 1.0;
double r492733 = r492731 - r492732;
double r492734 = r492726 * r492733;
double r492735 = r492724 * r492734;
return r492735;
}




Bits error versus x




Bits error versus y
| Original | 0.4 |
|---|---|
| Target | 0.4 |
| Herbie | 0.4 |
Initial program 0.4
Taylor expanded around 0 0.4
Simplified0.4
rmApplied associate-*l*0.4
Final simplification0.4
herbie shell --seed 2019362 +o rules:numerics
(FPCore (x y)
:name "Numeric.SpecFunctions:incompleteGamma from math-functions-0.1.5.2, B"
:precision binary64
:herbie-target
(* 3 (+ (* y (sqrt x)) (* (- (/ 1 (* x 9)) 1) (sqrt x))))
(* (* 3 (sqrt x)) (- (+ y (/ 1 (* x 9))) 1)))