Fix -Wmaybe-uninitialized in SVD
Reference issue
What does this implement/fix?
Fixes a very subtle issue for fixed-size JacobiSVD/BDCSVD. Upon construction, the size of the solver is initialized as such:
m_rows(-1),
m_cols(-1),
m_diagSize(0),
regardless if these values are known at compile time. Apparently, the SVD code is not tight enough to preclude the possibility that m_workspace (possibly other members) is accessed even when RowsAtCompileTime == ColsAtCompileTime. (TODO: do we really need a copy of the matrix just to scale it? The QR preconditioner just makes a copy of the matrix anyway!) If we instead initialize these dimensions to the compile-time values (and treat them as const members), the warnings go away. Also saves a few bytes in the fixed-size case.
With this fix, the GCC 10 default full build is warning free! I also split up the SVD tests to reduce the number of failed tests due to lack of resources.