\left(3 \cdot \sqrt{x}\right) \cdot \left(\left(y + \frac{1}{x \cdot 9}\right) - 1\right)\left(\sqrt{x} \cdot \left(\left(y + \frac{\frac{1}{x}}{9}\right) - 1\right)\right) \cdot 3 + \sqrt{x} \cdot \left(3 \cdot \left(1 - 1\right)\right)double f(double x, double y) {
double r391096 = 3.0;
double r391097 = x;
double r391098 = sqrt(r391097);
double r391099 = r391096 * r391098;
double r391100 = y;
double r391101 = 1.0;
double r391102 = 9.0;
double r391103 = r391097 * r391102;
double r391104 = r391101 / r391103;
double r391105 = r391100 + r391104;
double r391106 = r391105 - r391101;
double r391107 = r391099 * r391106;
return r391107;
}
double f(double x, double y) {
double r391108 = x;
double r391109 = sqrt(r391108);
double r391110 = y;
double r391111 = 1.0;
double r391112 = r391111 / r391108;
double r391113 = 9.0;
double r391114 = r391112 / r391113;
double r391115 = r391110 + r391114;
double r391116 = r391115 - r391111;
double r391117 = r391109 * r391116;
double r391118 = 3.0;
double r391119 = r391117 * r391118;
double r391120 = r391111 - r391111;
double r391121 = r391118 * r391120;
double r391122 = r391109 * r391121;
double r391123 = r391119 + r391122;
return r391123;
}




Bits error versus x




Bits error versus y
Results
| Original | 0.4 |
|---|---|
| Target | 0.4 |
| Herbie | 0.4 |
Initial program 0.4
rmApplied add-cube-cbrt0.4
Applied add-sqr-sqrt15.5
Applied prod-diff15.5
Applied distribute-lft-in15.5
Simplified0.4
Simplified0.4
rmApplied associate-/r*0.4
Final simplification0.4
herbie shell --seed 2020047 +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)))