\left(3 \cdot \sqrt{x}\right) \cdot \left(\left(y + \frac{1}{x \cdot 9}\right) - 1\right)\left(\left(\left(\frac{\frac{1}{x}}{9} - 1\right) + y\right) \cdot \sqrt{x}\right) \cdot 3 + \left(3 \cdot \sqrt{x}\right) \cdot \left(\left(-1\right) + 1\right)double f(double x, double y) {
double r379988 = 3.0;
double r379989 = x;
double r379990 = sqrt(r379989);
double r379991 = r379988 * r379990;
double r379992 = y;
double r379993 = 1.0;
double r379994 = 9.0;
double r379995 = r379989 * r379994;
double r379996 = r379993 / r379995;
double r379997 = r379992 + r379996;
double r379998 = r379997 - r379993;
double r379999 = r379991 * r379998;
return r379999;
}
double f(double x, double y) {
double r380000 = 1.0;
double r380001 = x;
double r380002 = r380000 / r380001;
double r380003 = 9.0;
double r380004 = r380002 / r380003;
double r380005 = r380004 - r380000;
double r380006 = y;
double r380007 = r380005 + r380006;
double r380008 = sqrt(r380001);
double r380009 = r380007 * r380008;
double r380010 = 3.0;
double r380011 = r380009 * r380010;
double r380012 = r380010 * r380008;
double r380013 = -r380000;
double r380014 = r380013 + r380000;
double r380015 = r380012 * r380014;
double r380016 = r380011 + r380015;
return r380016;
}




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-cube-cbrt0.4
Applied add-sqr-sqrt15.2
Applied prod-diff15.2
Applied distribute-lft-in15.2
Simplified0.4
Simplified0.4
Final simplification0.4
herbie shell --seed 2019326 +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)))