|
HILA
|
Inversed diagnal + const. matrix using Sherman-Morrison formula. More...
Functions | |
| template<int N, typename T , typename C , std::enable_if_t< hila::is_complex_or_arithmetic< C >::value, int > = 0> | |
| auto | invert_diagonal_plus_constant_matrix (const DiagonalMatrix< N, T > &D, const C c) |
Inversed diagnal + const. matrix using Sherman-Morrison formula.
| auto hila::linalg::invert_diagonal_plus_constant_matrix | ( | const DiagonalMatrix< N, T > & | D, |
| const C | c | ||
| ) |
Sherman-Morrison formula (generalized to complex) is
\[ (A + u v^{\dagger})^{-1} = A^{-1} - \frac{A^{-1} u v^{\dagger} A^{-1}}{(1 + v^{\dagger} A^{-1} u)}, \]
where \(A\) is invertible matrix and \(u\), \(v\) are vectors with outer product \(u v^{\dagger}\). Let's specialize this here for the case where \(A\) is diagonal and
\[ u = v = \sqrt{c} [1, 1, 1, ...]^{T} \]
i.e. the inversed matrix \(M^{-1} = (A + C)^{-1}\), where \(C = c uv^{\dagger}\) is constant matrix. The inversed matrix \( M^{-1}\) exists iff \((1 + v^{\dagger} A^{-1} u) \neq 0\).
Definition at line 815 of file matrix_linalg.h.