\left(3 \cdot \sqrt{x}\right) \cdot \left(\left(y + \frac{1}{x \cdot 9}\right) - 1\right)\left(\sqrt{x} \cdot \left(\frac{\frac{\frac{1}{x}}{\sqrt{9}}}{\sqrt{9}} - 1\right) + \sqrt{x} \cdot y\right) \cdot 3double f(double x, double y) {
double r16751443 = 3.0;
double r16751444 = x;
double r16751445 = sqrt(r16751444);
double r16751446 = r16751443 * r16751445;
double r16751447 = y;
double r16751448 = 1.0;
double r16751449 = 9.0;
double r16751450 = r16751444 * r16751449;
double r16751451 = r16751448 / r16751450;
double r16751452 = r16751447 + r16751451;
double r16751453 = r16751452 - r16751448;
double r16751454 = r16751446 * r16751453;
return r16751454;
}
double f(double x, double y) {
double r16751455 = x;
double r16751456 = sqrt(r16751455);
double r16751457 = 1.0;
double r16751458 = r16751457 / r16751455;
double r16751459 = 9.0;
double r16751460 = sqrt(r16751459);
double r16751461 = r16751458 / r16751460;
double r16751462 = r16751461 / r16751460;
double r16751463 = r16751462 - r16751457;
double r16751464 = r16751456 * r16751463;
double r16751465 = y;
double r16751466 = r16751456 * r16751465;
double r16751467 = r16751464 + r16751466;
double r16751468 = 3.0;
double r16751469 = r16751467 * r16751468;
return r16751469;
}




Bits error versus x




Bits error versus y
Results
| Original | 0.4 |
|---|---|
| Target | 0.4 |
| Herbie | 0.4 |
Initial program 0.4
rmApplied associate-*l*0.4
rmApplied associate--l+0.4
Applied distribute-rgt-in0.4
rmApplied associate-/r*0.4
rmApplied add-sqr-sqrt0.4
Applied associate-/r*0.4
Final simplification0.4
herbie shell --seed 2019179 +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)))