У меня есть данные, которые хранятся в Eigen::MatrixXd
:
Eigen::MatrixXd hugeMat(n*n,c)
,
, где n
большой и c
(относительно) мал, и каждый столбец состоит из данных, соответствующих матрице симметрии c.
В столбцах oop над столбцами я хочу выполнить умножение матрицы на матрицу, используя карты
for(unsigned i = 0; i < hugeMat.cols(); ++i){
tmp += Eigen::Map<Eigen::MatrixXd>(hugeMat.data()+i*n*n,n,n) * ...
}
Поскольку матрицы симметричны c, это избыточно, поэтому я хотел бы сохранить только одну три angular часть матриц в каждом столбце, уменьшив их количество строк с n*n
до n*(n+1)/2
.
I знаю, что мне нужно использовать selfadjointView
, но я не могу заставить его работать.