\left(3.0 \cdot \sqrt{x}\right) \cdot \left(\left(y + \frac{1.0}{x \cdot 9.0}\right) - 1.0\right)\left(\left(\sqrt{\sqrt[3]{3.0}} \cdot \left(\left(\left(\frac{1.0}{x \cdot 9.0} + y\right) - 1.0\right) \cdot \sqrt{x}\right)\right) \cdot \sqrt{\sqrt[3]{3.0}}\right) \cdot \left(\sqrt[3]{3.0} \cdot \sqrt[3]{3.0}\right)double f(double x, double y) {
double r17299341 = 3.0;
double r17299342 = x;
double r17299343 = sqrt(r17299342);
double r17299344 = r17299341 * r17299343;
double r17299345 = y;
double r17299346 = 1.0;
double r17299347 = 9.0;
double r17299348 = r17299342 * r17299347;
double r17299349 = r17299346 / r17299348;
double r17299350 = r17299345 + r17299349;
double r17299351 = r17299350 - r17299346;
double r17299352 = r17299344 * r17299351;
return r17299352;
}
double f(double x, double y) {
double r17299353 = 3.0;
double r17299354 = cbrt(r17299353);
double r17299355 = sqrt(r17299354);
double r17299356 = 1.0;
double r17299357 = x;
double r17299358 = 9.0;
double r17299359 = r17299357 * r17299358;
double r17299360 = r17299356 / r17299359;
double r17299361 = y;
double r17299362 = r17299360 + r17299361;
double r17299363 = r17299362 - r17299356;
double r17299364 = sqrt(r17299357);
double r17299365 = r17299363 * r17299364;
double r17299366 = r17299355 * r17299365;
double r17299367 = r17299366 * r17299355;
double r17299368 = r17299354 * r17299354;
double r17299369 = r17299367 * r17299368;
return r17299369;
}




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 add-sqr-sqrt0.6
Applied associate-*l*0.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)))