xsum_dot() returns the correctly rounded value of the exact dot product
sum(x * y), products included: each product is split into its rounded
value and its exact rounding error with fma(), and both are added
exactly. One rounding.
Details
xsum_sqnorm() is xsum_dot(x, x), the exactly rounded squared
Euclidean norm. xsum_norm() is its square root, so it has two
roundings: the squared norm and the square root.
Limits
The product error is exact only while each product is above about
2^-970 in magnitude (about 1e-292). Below that, the low bits of the error
are lost to underflow, so a dot product made only of such tiny products
can be off in its last bits. A product whose magnitude exceeds the
largest double is Inf even if the exact dot product would be finite.