\left(3 \cdot \sqrt{x}\right) \cdot \left(\left(y + \frac{1}{x \cdot 9}\right) - 1\right)3 \cdot \left(\left(\left(\frac{\frac{\frac{1}{x}}{\sqrt[3]{9} \cdot \sqrt[3]{9}}}{\sqrt[3]{9}} - 1\right) + y\right) \cdot \sqrt{x}\right)double f(double x, double y) {
double r289949 = 3.0;
double r289950 = x;
double r289951 = sqrt(r289950);
double r289952 = r289949 * r289951;
double r289953 = y;
double r289954 = 1.0;
double r289955 = 9.0;
double r289956 = r289950 * r289955;
double r289957 = r289954 / r289956;
double r289958 = r289953 + r289957;
double r289959 = r289958 - r289954;
double r289960 = r289952 * r289959;
return r289960;
}
double f(double x, double y) {
double r289961 = 3.0;
double r289962 = 1.0;
double r289963 = x;
double r289964 = r289962 / r289963;
double r289965 = 9.0;
double r289966 = cbrt(r289965);
double r289967 = r289966 * r289966;
double r289968 = r289964 / r289967;
double r289969 = r289968 / r289966;
double r289970 = r289969 - r289962;
double r289971 = y;
double r289972 = r289970 + r289971;
double r289973 = sqrt(r289963);
double r289974 = r289972 * r289973;
double r289975 = r289961 * r289974;
return r289975;
}




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 associate-*l*0.4
Simplified0.4
rmApplied add-cube-cbrt0.4
Applied associate-/r*0.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)))