\left(x \cdot x + \left(x \cdot 2\right) \cdot y\right) + y \cdot y
\mathsf{fma}\left(\mathsf{fma}\left(y, 2, x\right), x, y \cdot y\right)double f(double x, double y) {
double r598245 = x;
double r598246 = r598245 * r598245;
double r598247 = 2.0;
double r598248 = r598245 * r598247;
double r598249 = y;
double r598250 = r598248 * r598249;
double r598251 = r598246 + r598250;
double r598252 = r598249 * r598249;
double r598253 = r598251 + r598252;
return r598253;
}
double f(double x, double y) {
double r598254 = y;
double r598255 = 2.0;
double r598256 = x;
double r598257 = fma(r598254, r598255, r598256);
double r598258 = r598254 * r598254;
double r598259 = fma(r598257, r598256, r598258);
return r598259;
}




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