\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 r627623 = x;
double r627624 = r627623 * r627623;
double r627625 = 2.0;
double r627626 = r627623 * r627625;
double r627627 = y;
double r627628 = r627626 * r627627;
double r627629 = r627624 + r627628;
double r627630 = r627627 * r627627;
double r627631 = r627629 + r627630;
return r627631;
}
double f(double x, double y) {
double r627632 = x;
double r627633 = 2.0;
double r627634 = r627632 * r627633;
double r627635 = y;
double r627636 = r627634 * r627635;
double r627637 = fma(r627632, r627632, r627636);
double r627638 = r627635 * r627635;
double r627639 = r627637 + r627638;
return r627639;
}




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 2020036 +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)))