\left(3 \cdot \sqrt{x}\right) \cdot \left(\left(y + \frac{1}{x \cdot 9}\right) - 1\right)\left(\sqrt[3]{3} \cdot \sqrt[3]{3}\right) \cdot \left(\sqrt{\sqrt[3]{3}} \cdot \left(\sqrt{\sqrt[3]{3}} \cdot \left(\sqrt{x} \cdot \left(\left(y + \frac{\frac{1}{x}}{9}\right) - 1\right)\right)\right)\right)double f(double x, double y) {
double r293605 = 3.0;
double r293606 = x;
double r293607 = sqrt(r293606);
double r293608 = r293605 * r293607;
double r293609 = y;
double r293610 = 1.0;
double r293611 = 9.0;
double r293612 = r293606 * r293611;
double r293613 = r293610 / r293612;
double r293614 = r293609 + r293613;
double r293615 = r293614 - r293610;
double r293616 = r293608 * r293615;
return r293616;
}
double f(double x, double y) {
double r293617 = 3.0;
double r293618 = cbrt(r293617);
double r293619 = r293618 * r293618;
double r293620 = sqrt(r293618);
double r293621 = x;
double r293622 = sqrt(r293621);
double r293623 = y;
double r293624 = 1.0;
double r293625 = r293624 / r293621;
double r293626 = 9.0;
double r293627 = r293625 / r293626;
double r293628 = r293623 + r293627;
double r293629 = r293628 - r293624;
double r293630 = r293622 * r293629;
double r293631 = r293620 * r293630;
double r293632 = r293620 * r293631;
double r293633 = r293619 * r293632;
return r293633;
}




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-/r*0.6
rmApplied add-sqr-sqrt0.6
Applied associate-*l*0.5
Final simplification0.5
herbie shell --seed 2019208 +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)))