Not a true answer, but IF it were going to happen, you would see it here:
[Q,R,X] = qr(rand(3000));
Y = randn(3000);
Y = Y + Y';
Z = X'*Y*X;
all(all((Z-Z') == 0))
ans =
logical
1
Often a simple test is worth a lot, just to verify intuition.
So X is a random permutation matrix. Y a random symmetric matrix. Z is perfectly symmetrical. I chose a large enough matrix so that it had 4 CPUs running on the problem, so the BLAS will be kicking in. Usually when there are problems on something like this, it is the BLAS that are claimed to be the culprit.
I think the important point is (I see David made this in his comment) that there are NO adds involved between two non-zero numbers. All of the adds will always end up being of the form u+0 or 0+u, where there can never be any kind of error introduced into the least significant bits.
So I'll claim that this operation, where Y is symmetric and X a permutation matrix will never introduce an asymmetry into the result.
Best Answer