\left(3.0 \cdot \sqrt{x}\right) \cdot \left(\left(y + \frac{1.0}{x \cdot 9.0}\right) - 1.0\right)\sqrt{x} \cdot \left(3.0 \cdot y\right) + \left(\sqrt{x} \cdot \left(\frac{\frac{1.0}{x}}{9.0} - 1.0\right)\right) \cdot 3.0double f(double x, double y) {
double r24385740 = 3.0;
double r24385741 = x;
double r24385742 = sqrt(r24385741);
double r24385743 = r24385740 * r24385742;
double r24385744 = y;
double r24385745 = 1.0;
double r24385746 = 9.0;
double r24385747 = r24385741 * r24385746;
double r24385748 = r24385745 / r24385747;
double r24385749 = r24385744 + r24385748;
double r24385750 = r24385749 - r24385745;
double r24385751 = r24385743 * r24385750;
return r24385751;
}
double f(double x, double y) {
double r24385752 = x;
double r24385753 = sqrt(r24385752);
double r24385754 = 3.0;
double r24385755 = y;
double r24385756 = r24385754 * r24385755;
double r24385757 = r24385753 * r24385756;
double r24385758 = 1.0;
double r24385759 = r24385758 / r24385752;
double r24385760 = 9.0;
double r24385761 = r24385759 / r24385760;
double r24385762 = r24385761 - r24385758;
double r24385763 = r24385753 * r24385762;
double r24385764 = r24385763 * r24385754;
double r24385765 = r24385757 + r24385764;
return r24385765;
}




Bits error versus x




Bits error versus y
Results
| Original | 0.4 |
|---|---|
| Target | 0.4 |
| Herbie | 0.5 |
Initial program 0.4
rmApplied associate-*l*0.4
rmApplied add-cube-cbrt0.4
Applied associate-*l*0.6
rmApplied associate--l+0.6
Applied distribute-lft-in0.6
Applied distribute-lft-in0.6
Applied distribute-lft-in0.6
Simplified0.5
Simplified0.5
Final simplification0.5
herbie shell --seed 2019163 +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)))