Собственный решатель для разреженного матричного произведения - PullRequest
0 голосов
/ 14 ноября 2018

Я хочу использовать Eigen для вычисления L_1 ^ {- 1} L_2, где и L_1, и L_2 являются нижними треугольными матрицами и хранятся как ориентированные на столбцы разреженные матрицы в Eigen. Я попробовал Eigen треугольный решатель. Однако для этого требуется, чтобы L_2 был плотным.

1 Ответ

0 голосов
/ 15 ноября 2018

Метод solve фактически не перегружен для разреженных rhs, однако вы можете использовать метод solveInPlace следующим образом (я на самом деле не пробовал это):

Eigen::SparseMatrix<double> foo(Eigen::SparseMatrix<double> const& L1, Eigen::SparseMatrix<double> const& L2)
{
    Eigen::SparseMatrix<double> res = L2;
    L1.triangularView<Eigen::Lower>().solveInPlace(res);
    return res;
}

Тем не менее, вам следует подумать, нужна ли вам полная матрица.

...