x \cdot \left(1 + y \cdot y\right)
\mathsf{fma}\left(y, y, 1\right) \cdot xdouble f(double x, double y) {
double r298221 = x;
double r298222 = 1.0;
double r298223 = y;
double r298224 = r298223 * r298223;
double r298225 = r298222 + r298224;
double r298226 = r298221 * r298225;
return r298226;
}
double f(double x, double y) {
double r298227 = y;
double r298228 = 1.0;
double r298229 = fma(r298227, r298227, r298228);
double r298230 = x;
double r298231 = r298229 * r298230;
return r298231;
}




Bits error versus x




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