\left(x \cdot x + \left(x \cdot 2\right) \cdot y\right) + y \cdot y
\mathsf{fma}\left(x, x, \left(x \cdot 2\right) \cdot y\right) + y \cdot ydouble f(double x, double y) {
double r416974 = x;
double r416975 = r416974 * r416974;
double r416976 = 2.0;
double r416977 = r416974 * r416976;
double r416978 = y;
double r416979 = r416977 * r416978;
double r416980 = r416975 + r416979;
double r416981 = r416978 * r416978;
double r416982 = r416980 + r416981;
return r416982;
}
double f(double x, double y) {
double r416983 = x;
double r416984 = 2.0;
double r416985 = r416983 * r416984;
double r416986 = y;
double r416987 = r416985 * r416986;
double r416988 = fma(r416983, r416983, r416987);
double r416989 = r416986 * r416986;
double r416990 = r416988 + r416989;
return r416990;
}




Bits error versus x




Bits error versus y
| Original | 0.0 |
|---|---|
| Target | 0.0 |
| Herbie | 0.0 |
Initial program 0.0
rmApplied fma-def0.0
Final simplification0.0
herbie shell --seed 2019323 +o rules:numerics
(FPCore (x y)
:name "Examples.Basics.ProofTests:f4 from sbv-4.4"
:precision binary64
:herbie-target
(+ (* x x) (+ (* y y) (* (* x y) 2)))
(+ (+ (* x x) (* (* x 2) y)) (* y y)))