I'm calculating a SVD of a matrix using Eigen library.
Eigen::Matrix<double, Eigen::Dynamic, 6> A(points*2, 6);
Eigen::Matrix<double, Eigen::Dynamic, 1> b(points*2);
// fill the matrices
// ...
Eigen::Matrix<double, 6, 1> hVec;
hVec = A.bdcSvd(Eigen::ComputeThinU | Eigen::ComputeThinV).solve(b);
However, the following assertion fires:
SVDBase: thin U and V are only available when your matrix has a dynamic number of columns.
What is the reason of disallowing compile-time known parameters in this case? Am I not seeing something in the maths behind the SVD problem? Or is it a limitation / bug in Eigen?
Surely, I could convert the matrix to be have a run-time number of columns, but that would disallow possible optimizations achieved by specifying compile-time constants, when they are known.