Symbolic representation of the sparsity structure of a (square) block matrix. More...
#include <proxsuite-nlp/linalg/block-kind.hpp>
Public Member Functions | |
| 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.
|
inline |
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.
|
inline |
Definition at line 77 of file block-kind.hpp.
|
inlinenoexcept |
Definition at line 90 of file block-kind.hpp.
|
inlinenoexcept |
Definition at line 91 of file block-kind.hpp.
|
inlinenoexcept |
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 |
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.