Отображение на симметричные c матрицы с использованием Eigen3 - PullRequest
0 голосов
/ 26 марта 2020

У меня есть данные, которые хранятся в 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, но я не могу заставить его работать.

...