On one occasion (I don't remember the exact circumstance), when was editiing a .m file, Matlab detected an expression whose effective result was X'*X. It helpfully suggested that I replace the expression by X'*X so that it could be guaranteed symmetric. I took this to mean that Matlab stores a flag in its internal matrix representation whose truth implies symmetry. Is there any Matlab documentation as to when an expression results in a matrix that is regarded by Matlab as symmetric?
If I know that the result (S) of a certain calculation must be symmetric (upto rounding error), then how should I tell Matlab that S is symmetric? For example, if I wrote: S = (S+S')/2 or S = max(S, S') would this be sufficient?