\left(x \cdot x + \left(x \cdot 2\right) \cdot y\right) + y \cdot y
\mathsf{fma}\left(x, \mathsf{fma}\left(y, 2, x\right), y \cdot y\right)double f(double x, double y) {
double r411584 = x;
double r411585 = r411584 * r411584;
double r411586 = 2.0;
double r411587 = r411584 * r411586;
double r411588 = y;
double r411589 = r411587 * r411588;
double r411590 = r411585 + r411589;
double r411591 = r411588 * r411588;
double r411592 = r411590 + r411591;
return r411592;
}
double f(double x, double y) {
double r411593 = x;
double r411594 = y;
double r411595 = 2.0;
double r411596 = fma(r411594, r411595, r411593);
double r411597 = r411594 * r411594;
double r411598 = fma(r411593, r411596, r411597);
return r411598;
}




Bits error versus x




Bits error versus y
| Original | 0.0 |
|---|---|
| Target | 0.0 |
| Herbie | 0.0 |
Initial program 0.0
Simplified0.0
Final simplification0.0
herbie shell --seed 2020043 +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)))