proxsuite-nlp
0.10.0
A primal-dual augmented Lagrangian-type solver for nonlinear programming on manifolds.
|
Symbolic representation of the sparsity structure of a (square) block matrix. More...
#include <proxsuite-nlp/linalg/block-kind.hpp>
Public Member Functions | |
SymbolicBlockMatrix () | |
SymbolicBlockMatrix (isize nc, isize os) | |
Allocating constructor. | |
SymbolicBlockMatrix (BlockKind *data, isize *lens, isize nc, isize os) | |
Constructor from external data. | |
SymbolicBlockMatrix (SymbolicBlockMatrix const &other)=default | |
Shallow copy constructor. | |
SymbolicBlockMatrix & | operator= (SymbolicBlockMatrix const &other)=default |
SymbolicBlockMatrix (const std::vector< isize > &lens) | |
SymbolicBlockMatrix | copy () const |
Deep copy. | |
isize | nsegments () const noexcept |
isize | size () const noexcept |
BlockKind * | ptr (isize i, isize j) noexcept |
BlockKind const * | ptr (isize i, isize j) const noexcept |
SymbolicBlockMatrix | submatrix (isize i, isize n) noexcept |
BlockKind & | operator() (isize i, isize j) noexcept |
Get a reference to the block in position (i, j). | |
const BlockKind & | operator() (isize i, isize j) const noexcept |
Eigen::ComputationInfo | brute_force_best_permutation (SymbolicBlockMatrix const &in, isize *best_perm, isize *iwork) |
bool | check_if_symmetric () const noexcept |
isize | count_nnz () const noexcept |
bool | llt_in_place () noexcept |
SymbolicBlockMatrix | transpose () const |
Public Attributes | |
BlockKind * | m_data |
isize * | segment_lens |
isize | segments_count |
isize | outer_stride |
bool | performed_llt = false |
Symbolic representation of the sparsity structure of a (square) block matrix.
This struct describes the block-wise layout of a matrix, in row-major format.
Definition at line 48 of file block-kind.hpp.
|
inline |
Definition at line 64 of file block-kind.hpp.
Allocating constructor.
Definition at line 66 of file block-kind.hpp.
|
inline |
Constructor from external data.
Definition at line 71 of file block-kind.hpp.
|
default |
Shallow copy constructor.
|
inline |
Definition at line 77 of file block-kind.hpp.
|
default |
SymbolicBlockMatrix proxsuite::nlp::linalg::SymbolicBlockMatrix::copy | ( | ) | const |
Deep copy.
|
inlinenoexcept |
Definition at line 90 of file block-kind.hpp.
|
inlinenoexcept |
Definition at line 91 of file block-kind.hpp.
Definition at line 92 of file block-kind.hpp.
|
inlinenoexcept |
Definition at line 95 of file block-kind.hpp.
|
noexcept |
Get the lower-right submatrix of size (n, n) starting from the block in position (i, i). This is a view of the original data.
|
inlinenoexcept |
Get a reference to the block in position (i, j).
Definition at line 103 of file block-kind.hpp.
|
inlinenoexcept |
Definition at line 105 of file block-kind.hpp.
Eigen::ComputationInfo proxsuite::nlp::linalg::SymbolicBlockMatrix::brute_force_best_permutation | ( | SymbolicBlockMatrix const & | in, |
isize * | best_perm, | ||
isize * | iwork ) |
Brute-force search of the best permutation possible in the block matrix, with respect to the final sparsity of the LLT decomposition. The struct instance *this will be the result.
in | the input matrix to analyze. |
iwork | workspace; has length in.nsegments() . |
|
noexcept |
|
noexcept |
|
noexcept |
Perform symbolic block-wise LLT decomposition; the output sparsity pattern should be that of the matrix \(L\) of the Cholesky decomposition.
|
inline |
Definition at line 124 of file block-kind.hpp.
BlockKind* proxsuite::nlp::linalg::SymbolicBlockMatrix::m_data |
Definition at line 49 of file block-kind.hpp.
isize* proxsuite::nlp::linalg::SymbolicBlockMatrix::segment_lens |
Definition at line 50 of file block-kind.hpp.
isize proxsuite::nlp::linalg::SymbolicBlockMatrix::segments_count |
Definition at line 51 of file block-kind.hpp.
isize proxsuite::nlp::linalg::SymbolicBlockMatrix::outer_stride |
Definition at line 52 of file block-kind.hpp.
bool proxsuite::nlp::linalg::SymbolicBlockMatrix::performed_llt = false |
Flag stating whether the block structure was successfully analyzed. This should be checked when attempting to factorize.
Definition at line 55 of file block-kind.hpp.