\left(3 \cdot \sqrt{x}\right) \cdot \left(\left(y + \frac{1}{x \cdot 9}\right) - 1\right)\left(3 \cdot \sqrt{x}\right) \cdot \left(\left(-1\right) + 1\right) + \left(1 \cdot \left(-3 \cdot \sqrt{x}\right) + \left(3 \cdot \sqrt{x}\right) \cdot \left(y + \frac{1}{9 \cdot x}\right)\right)double f(double x, double y) {
double r302958 = 3.0;
double r302959 = x;
double r302960 = sqrt(r302959);
double r302961 = r302958 * r302960;
double r302962 = y;
double r302963 = 1.0;
double r302964 = 9.0;
double r302965 = r302959 * r302964;
double r302966 = r302963 / r302965;
double r302967 = r302962 + r302966;
double r302968 = r302967 - r302963;
double r302969 = r302961 * r302968;
return r302969;
}
double f(double x, double y) {
double r302970 = 3.0;
double r302971 = x;
double r302972 = sqrt(r302971);
double r302973 = r302970 * r302972;
double r302974 = 1.0;
double r302975 = -r302974;
double r302976 = r302975 + r302974;
double r302977 = r302973 * r302976;
double r302978 = -r302973;
double r302979 = r302974 * r302978;
double r302980 = y;
double r302981 = 9.0;
double r302982 = r302981 * r302971;
double r302983 = r302974 / r302982;
double r302984 = r302980 + r302983;
double r302985 = r302973 * r302984;
double r302986 = r302979 + r302985;
double r302987 = r302977 + r302986;
return r302987;
}




Bits error versus x




Bits error versus y
Results
| Original | 0.4 |
|---|---|
| Target | 0.4 |
| Herbie | 0.4 |
Initial program 0.4
rmApplied add-sqr-sqrt0.4
Applied times-frac0.4
rmApplied add-cube-cbrt0.4
Applied add-sqr-sqrt15.7
Applied prod-diff15.7
Applied distribute-lft-in15.7
Simplified0.4
Simplified0.4
rmApplied distribute-lft-in0.4
Applied distribute-lft-in0.4
Simplified0.4
Simplified0.4
Final simplification0.4
herbie shell --seed 2019196 +o rules:numerics
(FPCore (x y)
:name "Numeric.SpecFunctions:incompleteGamma from math-functions-0.1.5.2, B"
:herbie-target
(* 3.0 (+ (* y (sqrt x)) (* (- (/ 1.0 (* x 9.0)) 1.0) (sqrt x))))
(* (* 3.0 (sqrt x)) (- (+ y (/ 1.0 (* x 9.0))) 1.0)))