x \cdot x - y \cdot y
\mathsf{fma}\left(x, x, -y \cdot y\right)
(FPCore (x y) :precision binary64 (- (* x x) (* y y)))
(FPCore (x y) :precision binary64 (fma x x (- (* y y))))
double code(double x, double y) {
return (x * x) - (y * y);
}
double code(double x, double y) {
return fma(x, x, -(y * y));
}



Bits error versus x



Bits error versus y
Initial program 3.7
Applied fma-neg_binary641.8
Final simplification1.8
herbie shell --seed 2022088
(FPCore (x y)
:name "Examples.Basics.BasicTests:f2 from sbv-4.4"
:precision binary64
(- (* x x) (* y y)))