\left(1 - \frac{1}{x \cdot 9}\right) - \frac{y}{3 \cdot \sqrt{x}}\left(\left(1 - \frac{\frac{1}{9}}{x}\right) - \frac{\frac{y}{3}}{\sqrt{x}}\right) + \frac{\frac{y}{3}}{\sqrt{x}} \cdot 0double f(double x, double y) {
double r417032 = 1.0;
double r417033 = x;
double r417034 = 9.0;
double r417035 = r417033 * r417034;
double r417036 = r417032 / r417035;
double r417037 = r417032 - r417036;
double r417038 = y;
double r417039 = 3.0;
double r417040 = sqrt(r417033);
double r417041 = r417039 * r417040;
double r417042 = r417038 / r417041;
double r417043 = r417037 - r417042;
return r417043;
}
double f(double x, double y) {
double r417044 = 1.0;
double r417045 = 9.0;
double r417046 = r417044 / r417045;
double r417047 = x;
double r417048 = r417046 / r417047;
double r417049 = r417044 - r417048;
double r417050 = y;
double r417051 = 3.0;
double r417052 = r417050 / r417051;
double r417053 = sqrt(r417047);
double r417054 = r417052 / r417053;
double r417055 = r417049 - r417054;
double r417056 = 0.0;
double r417057 = r417054 * r417056;
double r417058 = r417055 + r417057;
return r417058;
}




Bits error versus x




Bits error versus y
Results
| Original | 0.2 |
|---|---|
| Target | 0.3 |
| Herbie | 0.2 |
Initial program 0.2
rmApplied add-cube-cbrt0.5
Applied add-sqr-sqrt30.1
Applied prod-diff30.1
Simplified0.2
Simplified0.2
Final simplification0.2
herbie shell --seed 2020047 +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)))))