I have a problem with the documentation of symmetric matrices: https://bitbucket.org/blaze-lib/blaze/wiki/Symmetric%20Matrices#!arithmetic-operations
The claim here is that you can perform usual matrix operations (addition, subtraction, multiplication) on a combination of symmetric and regular matrix and save results into a symmetric matrix, e.g.
E = A + B;
F = A * D;
where F and D are symmetric, A is not. I think it's incorrect and such operations do not preserve symmetry of a matrix. I checked if it may lead to incorrect results but it seems to be only a problem with documentation: https://github.com/mcopik/cpp_samples/blob/master/lin_alg/blaze_symmetric_mult.cpp#L55
In this particular example we can expect an exception notifying about invalid assignment to a symmetric matrix.
Hi Marcin!
Thanks a lot for pointing out this inaccuracy. The documentation is not wrong since in Blaze it is possible to assign any kind of matrix to a symmetric matrix. However, it unfortunately fails to mention that this assignment involves a runtime check, which in case the assigned matrix is not symmetric throws an exception. We will improve the examples to make it clear, which assignments involve a runtime check and which assignments only involve a compile time check.
Again, thanks a lot for your help,
Best regards,
Klaus!