Я использую Eigen::SparseMatrix
для большой матрицы системы линейных уравнений, и в настоящее время я настраиваю ее с помощью setFromTriplets()
.
Моя проблема в том, что я не могу выяснить, возможно ли с помощью этого эффективно инициировать симметричную матрицу. Пока я должен хранить в памяти как верхнюю, так и нижнюю его части (в списке триплетов, что гораздо хуже, поскольку существует не только само значение, но и его индексы).
Было бы лучше, если бы эта функция могла немедленно скопировать недиагональные элементы при столкновении. Или уже есть такая функциональность?
Также может быть свойство матрицы быть симметричным, так что даже после инициализации она сохраняет в памяти только одну из частей, и все другие алгоритмы учитывают это свойство