x \cdot \left(1 + y \cdot y\right)
\mathsf{fma}\left(y, y, 1\right) \cdot xdouble f(double x, double y) {
double r18952332 = x;
double r18952333 = 1.0;
double r18952334 = y;
double r18952335 = r18952334 * r18952334;
double r18952336 = r18952333 + r18952335;
double r18952337 = r18952332 * r18952336;
return r18952337;
}
double f(double x, double y) {
double r18952338 = y;
double r18952339 = 1.0;
double r18952340 = fma(r18952338, r18952338, r18952339);
double r18952341 = x;
double r18952342 = r18952340 * r18952341;
return r18952342;
}




Bits error versus x




Bits error versus y
| Original | 5.1 |
|---|---|
| Target | 0.1 |
| Herbie | 5.1 |
Initial program 5.1
Simplified5.1
Final simplification5.1
herbie shell --seed 2019172 +o rules:numerics
(FPCore (x y)
:name "Numeric.Integration.TanhSinh:everywhere from integration-0.2.1"
:herbie-target
(+ x (* (* x y) y))
(* x (+ 1.0 (* y y))))