\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(y + \frac{\frac{1}{\sqrt{x}} \cdot \frac{1}{\sqrt{9} \cdot \sqrt{x}}}{\sqrt{9}}\right) - 1\right)double f(double x, double y) {
double r331288 = 3.0;
double r331289 = x;
double r331290 = sqrt(r331289);
double r331291 = r331288 * r331290;
double r331292 = y;
double r331293 = 1.0;
double r331294 = 9.0;
double r331295 = r331289 * r331294;
double r331296 = r331293 / r331295;
double r331297 = r331292 + r331296;
double r331298 = r331297 - r331293;
double r331299 = r331291 * r331298;
return r331299;
}
double f(double x, double y) {
double r331300 = 3.0;
double r331301 = x;
double r331302 = sqrt(r331301);
double r331303 = r331300 * r331302;
double r331304 = y;
double r331305 = 1.0;
double r331306 = r331305 / r331302;
double r331307 = 1.0;
double r331308 = 9.0;
double r331309 = sqrt(r331308);
double r331310 = r331309 * r331302;
double r331311 = r331307 / r331310;
double r331312 = r331306 * r331311;
double r331313 = r331312 / r331309;
double r331314 = r331304 + r331313;
double r331315 = r331314 - r331307;
double r331316 = r331303 * r331315;
return r331316;
}




Bits error versus x




Bits error versus y
Results
| Original | 0.4 |
|---|---|
| Target | 0.4 |
| Herbie | 0.4 |
Initial program 0.4
rmApplied associate-/r*0.4
rmApplied add-sqr-sqrt0.4
Applied associate-/r*0.4
rmApplied *-un-lft-identity0.4
Applied sqrt-prod0.4
Applied add-sqr-sqrt0.4
Applied *-un-lft-identity0.4
Applied times-frac0.5
Applied times-frac0.5
Simplified0.5
Simplified0.4
Final simplification0.4
herbie shell --seed 2019199 +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)))