\left(3 \cdot \sqrt{x}\right) \cdot \left(\left(y + \frac{1}{x \cdot 9}\right) - 1\right)\left(3 \cdot \left(\left(y + \frac{\frac{1}{x}}{9}\right) - 1\right)\right) \cdot \sqrt{x} + \left(3 \cdot \sqrt{x}\right) \cdot \left(1 \cdot 0\right)double f(double x, double y) {
double r540884 = 3.0;
double r540885 = x;
double r540886 = sqrt(r540885);
double r540887 = r540884 * r540886;
double r540888 = y;
double r540889 = 1.0;
double r540890 = 9.0;
double r540891 = r540885 * r540890;
double r540892 = r540889 / r540891;
double r540893 = r540888 + r540892;
double r540894 = r540893 - r540889;
double r540895 = r540887 * r540894;
return r540895;
}
double f(double x, double y) {
double r540896 = 3.0;
double r540897 = y;
double r540898 = 1.0;
double r540899 = x;
double r540900 = r540898 / r540899;
double r540901 = 9.0;
double r540902 = r540900 / r540901;
double r540903 = r540897 + r540902;
double r540904 = r540903 - r540898;
double r540905 = r540896 * r540904;
double r540906 = sqrt(r540899);
double r540907 = r540905 * r540906;
double r540908 = r540896 * r540906;
double r540909 = 0.0;
double r540910 = r540898 * r540909;
double r540911 = r540908 * r540910;
double r540912 = r540907 + r540911;
return r540912;
}




Bits error versus x




Bits error versus y
Results
| Original | 0.4 |
|---|---|
| Target | 0.4 |
| Herbie | 0.4 |
Initial program 0.4
rmApplied add-cube-cbrt0.4
Applied add-sqr-sqrt15.5
Applied prod-diff15.5
Applied distribute-lft-in15.5
Simplified0.4
Simplified0.4
rmApplied associate-/r*0.4
Final simplification0.4
herbie shell --seed 2020047 +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)))