Skip to content

num::inverse_principal_block

Defined in header <linear/factorization/inverse_diagonal.hpp>

void inverse_principal_block(const lu_result<real> &factor, view<const idx> indices,
                             mat<real> &result, inverse_diagonal_workspace &workspace);  // (1)

void inverse_principal_block(const cholesky_result &factor, view<const idx> indices,
                             mat<real> &result, inverse_diagonal_workspace &workspace);  // (2)

void inverse_principal_block(const klu_factorization &factor, view<const idx> indices,
                             mat<real> &result, inverse_diagonal_workspace &workspace);  // (3)

void inverse_principal_block(const auto_linear_solver &factor, view<const idx> indices,
                             mat<real> &result, inverse_diagonal_workspace &workspace);  // (4)

mat<real> inverse_principal_block(const auto_linear_solver &factor,
                                  view<const idx> indices);  // (5)

(1) Extract A^-1(indices, indices), preserving the requested index order.

(2) Extract a principal inverse block from a Cholesky factor.

(3) Extract a principal inverse block from a KLU factor.

(4) Extract a principal inverse block from an automatically selected factor.

(5) Convenience overload owning its result and workspace.

Allocates; prefer the workspace form in hot loops.