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.