\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(y + \sqrt{\frac{\frac{1}{x}}{9}} \cdot \sqrt{\frac{\frac{1}{x}}{9}}\right)\right) + \left(-1\right) \cdot \left(3 \cdot \sqrt{x}\right)double f(double x, double y) {
double r338340 = 3.0;
double r338341 = x;
double r338342 = sqrt(r338341);
double r338343 = r338340 * r338342;
double r338344 = y;
double r338345 = 1.0;
double r338346 = 9.0;
double r338347 = r338341 * r338346;
double r338348 = r338345 / r338347;
double r338349 = r338344 + r338348;
double r338350 = r338349 - r338345;
double r338351 = r338343 * r338350;
return r338351;
}
double f(double x, double y) {
double r338352 = 3.0;
double r338353 = x;
double r338354 = sqrt(r338353);
double r338355 = y;
double r338356 = 1.0;
double r338357 = r338356 / r338353;
double r338358 = 9.0;
double r338359 = r338357 / r338358;
double r338360 = sqrt(r338359);
double r338361 = r338360 * r338360;
double r338362 = r338355 + r338361;
double r338363 = r338354 * r338362;
double r338364 = r338352 * r338363;
double r338365 = -r338356;
double r338366 = r338352 * r338354;
double r338367 = r338365 * r338366;
double r338368 = r338364 + r338367;
return r338368;
}




Bits error versus x




Bits error versus y
Results
| Original | 0.4 |
|---|---|
| Target | 0.4 |
| Herbie | 0.5 |
Initial program 0.4
rmApplied associate-/r*0.4
rmApplied sub-neg0.4
Applied distribute-lft-in0.4
Simplified0.4
rmApplied associate-*l*0.4
rmApplied add-sqr-sqrt0.5
Final simplification0.5
herbie shell --seed 2019326
(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)))