В моей собственной реализации на C ++ QR-разложения с помощью вращений Гивенса для установки матрицы вращения на единичную матрицу я пытаюсь использовать этот более универсальный класс Эйгена для разреженных матриц. Фактически, общий сжатый формат хранения строк / столбцов не поддерживает метод setIdentity, который требует алгоритм.
Фрагмент, который я добавил в свой код, не компилируется, и справка Eigen довольно неясна для мне по этому поводу:
#include <Eigen/Sparse>
SparseMatrix<double,ColMajor,int> G(m,m);
G = G.setIdentity(m,m);
Есть предложения? Как определить символ препроцессора EIGEN_SPARSEMATRIX_PLUGIN
?
[Кстати: есть ли готовая хорошая реализация? Ни Эйген, ни Армадилло, похоже, не предоставляют этого]