\left(3 \cdot \sqrt{x}\right) \cdot \left(\left(y + \frac{1}{x \cdot 9}\right) - 1\right)\frac{\frac{1 \cdot \sqrt{x}}{\sqrt{9}}}{x} \cdot \frac{3}{\sqrt{9}} + \left(\left(3 \cdot \sqrt{x}\right) \cdot y + 1 \cdot \left(-3 \cdot \sqrt{x}\right)\right)double f(double x, double y) {
double r306560 = 3.0;
double r306561 = x;
double r306562 = sqrt(r306561);
double r306563 = r306560 * r306562;
double r306564 = y;
double r306565 = 1.0;
double r306566 = 9.0;
double r306567 = r306561 * r306566;
double r306568 = r306565 / r306567;
double r306569 = r306564 + r306568;
double r306570 = r306569 - r306565;
double r306571 = r306563 * r306570;
return r306571;
}
double f(double x, double y) {
double r306572 = 1.0;
double r306573 = x;
double r306574 = sqrt(r306573);
double r306575 = r306572 * r306574;
double r306576 = 9.0;
double r306577 = sqrt(r306576);
double r306578 = r306575 / r306577;
double r306579 = r306578 / r306573;
double r306580 = 3.0;
double r306581 = r306580 / r306577;
double r306582 = r306579 * r306581;
double r306583 = r306580 * r306574;
double r306584 = y;
double r306585 = r306583 * r306584;
double r306586 = -r306583;
double r306587 = r306572 * r306586;
double r306588 = r306585 + r306587;
double r306589 = r306582 + r306588;
return r306589;
}




Bits error versus x




Bits error versus y
Results
| Original | 0.4 |
|---|---|
| Target | 0.4 |
| Herbie | 0.3 |
Initial program 0.4
Simplified0.4
rmApplied distribute-lft-in0.4
Simplified0.4
Simplified0.4
rmApplied associate-*r/0.4
Simplified0.4
rmApplied add-sqr-sqrt0.4
Applied associate-/r/0.4
Applied times-frac0.3
Simplified0.3
rmApplied sub-neg0.3
Applied distribute-lft-in0.3
Applied distribute-lft-in0.3
Simplified0.3
Simplified0.3
Final simplification0.3
herbie shell --seed 2019195
(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)))