Я вычисляю SVD матрицы, используя библиотеку Eigen.
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);
Однако, запускаются следующие утверждения:
SVDBase: доступны только тонкие U и Vкогда ваша матрица имеет динамическое число столбцов.
В чем причина запрета известных параметров времени компиляции в этом случае?Разве я не вижу что-то в математике за проблемой SVD?Или это ограничение / ошибка в Eigen?
Конечно, я мог бы преобразовать матрицу, чтобы иметь число столбцов во время выполнения, но это запретило бы возможные оптимизации, достигнутые путем указания констант времени компиляции, когда ониизвестны.