|
| Ldlt ()=default |
|
void | reserve_uninit (isize cap) noexcept |
|
void | reserve (isize cap) noexcept |
|
void | delete_at (isize const *indices, isize r, proxsuite::linalg::veg::dynstack::DynStackMut stack) |
|
auto | choose_insertion_position (isize i, Eigen::Ref< Vec const > a) -> isize |
|
void | insert_block_at (isize i, Eigen::Ref< ColMat const > a, proxsuite::linalg::veg::dynstack::DynStackMut stack) |
|
void | diagonal_update_clobber_indices (isize *indices, isize r, Eigen::Ref< Vec const > alpha, proxsuite::linalg::veg::dynstack::DynStackMut stack) |
|
void | rank_r_update (Eigen::Ref< ColMat const > w, Eigen::Ref< Vec const > alpha, proxsuite::linalg::veg::dynstack::DynStackMut stack) |
|
auto | dim () const noexcept -> isize |
|
auto | ld_col () const noexcept -> Eigen::Map< ColMat const, Eigen::Unaligned, Eigen::OuterStride< DYN > > |
|
auto | ld_col_mut () noexcept -> Eigen::Map< ColMat, Eigen::Unaligned, Eigen::OuterStride< DYN > > |
|
auto | ld_row () const noexcept -> Eigen::Map< RowMat const, Eigen::Unaligned, Eigen::OuterStride< DYN > > |
|
auto | ld_row_mut () noexcept -> Eigen::Map< RowMat, Eigen::Unaligned, Eigen::OuterStride< DYN > > |
|
auto | l () const noexcept -> LView |
|
auto | l_mut () noexcept -> LViewMut |
|
auto | lt () const noexcept -> LTView |
|
auto | lt_mut () noexcept -> LTViewMut |
|
auto | d () const noexcept -> DView |
|
auto | d_mut () noexcept -> DViewMut |
|
auto | p () const -> Perm |
|
auto | pt () const -> Perm |
|
void | factorize (Eigen::Ref< ColMat const > mat, proxsuite::linalg::veg::dynstack::DynStackMut stack) |
|
void | solve_in_place (Eigen::Ref< Vec > rhs, proxsuite::linalg::veg::dynstack::DynStackMut stack) const |
|
void | dual_solve_in_place (Eigen::Ref< Vec > rhs, isize n, proxsuite::linalg::veg::dynstack::DynStackMut stack) const |
|
auto | dbg_reconstructed_matrix_internal () const -> ColMat |
|
auto | dbg_reconstructed_matrix () const -> ColMat |
|
template<typename T>
struct proxsuite::linalg::dense::Ldlt< T >
Wrapper class that handles an allocated LDLT decomposition, with an applied permutation. When provided with a matrix A
, this internally stores a lower triangular matrix with unit diagonal L
, a vector D
, and a permutation P
such that A = P.T L diag(D) L.T P
.
Example usage:
auto main() -> int {
constexpr auto DYN = Eigen::Dynamic;
using Matrix = Eigen::Matrix<double, DYN, DYN>;
using Vector = Eigen::Matrix<double, DYN, 1>;
auto a0 = Matrix{
2,
2,
};
auto req =
a0(0, 0) = 1.0;
a0(1, 0) = 2.0;
a0(1, 1) = 3.0;
auto c = Matrix{3, 1};
c(0, 0) = 4.0;
c(1, 0) = 5.0;
c(2, 0) = 6.0;
auto rhs = Vector{1};
rhs[0] = 5.0;
}
#define VEG_MAKE_STACK(stack,...)
_detail::_meta::make_signed< usize >::Type isize
static auto insert_block_at_req(isize n, isize r) noexcept -> proxsuite::linalg::veg::dynstack::StackReq
static auto delete_at_req(isize n, isize r) noexcept -> proxsuite::linalg::veg::dynstack::StackReq
auto dim() const noexcept -> isize
static auto factorize_req(isize n) -> proxsuite::linalg::veg::dynstack::StackReq
static auto solve_in_place_req(isize n) -> proxsuite::linalg::veg::dynstack::StackReq
void delete_at(isize const *indices, isize r, proxsuite::linalg::veg::dynstack::DynStackMut stack)
void solve_in_place(Eigen::Ref< Vec > rhs, proxsuite::linalg::veg::dynstack::DynStackMut stack) const
void insert_block_at(isize i, Eigen::Ref< ColMat const > a, proxsuite::linalg::veg::dynstack::DynStackMut stack)
void factorize(Eigen::Ref< ColMat const > mat, proxsuite::linalg::veg::dynstack::DynStackMut stack)
Definition at line 165 of file ldlt.hpp.