\left(3 \cdot \sqrt{x}\right) \cdot \left(\left(y + \frac{1}{x \cdot 9}\right) - 1\right)\sqrt{x} \cdot \left(\left(\left(y + \frac{1}{x \cdot 9}\right) - 1\right) \cdot 3\right) + \left(3 \cdot \sqrt{x}\right) \cdot \left(1 \cdot 0\right)double f(double x, double y) {
double r397581 = 3.0;
double r397582 = x;
double r397583 = sqrt(r397582);
double r397584 = r397581 * r397583;
double r397585 = y;
double r397586 = 1.0;
double r397587 = 9.0;
double r397588 = r397582 * r397587;
double r397589 = r397586 / r397588;
double r397590 = r397585 + r397589;
double r397591 = r397590 - r397586;
double r397592 = r397584 * r397591;
return r397592;
}
double f(double x, double y) {
double r397593 = x;
double r397594 = sqrt(r397593);
double r397595 = y;
double r397596 = 1.0;
double r397597 = 9.0;
double r397598 = r397593 * r397597;
double r397599 = r397596 / r397598;
double r397600 = r397595 + r397599;
double r397601 = r397600 - r397596;
double r397602 = 3.0;
double r397603 = r397601 * r397602;
double r397604 = r397594 * r397603;
double r397605 = r397602 * r397594;
double r397606 = 0.0;
double r397607 = r397596 * r397606;
double r397608 = r397605 * r397607;
double r397609 = r397604 + r397608;
return r397609;
}




Bits error versus x




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