proxsuite-nlp  0.10.0
A primal-dual augmented Lagrangian-type solver for nonlinear programming on manifolds.
Loading...
Searching...
No Matches
proxsuite::nlp::linalg Namespace Reference

Specific linear algebra routines. More...

Namespaces

namespace  backend
 

Classes

struct  BlockLDLT
 Block sparsity-aware LDLT factorization algorithm. More...
 
struct  DenseLDLT
 A fast, recursive divide-and-conquer LDLT algorithm. More...
 
struct  ldlt_base
 Base interface for LDLT solvers. More...
 
struct  ProxSuiteLDLTWrapper
 Use the LDLT from proxsuite. More...
 
struct  SymbolicBlockMatrix
 Symbolic representation of the sparsity structure of a (square) block matrix. More...
 
struct  TriangularBlockMatrix
 Representation for triangular block matrices. More...
 

Typedefs

using isize = Eigen::Index
 
using usize = std::make_unsigned<isize>::type
 

Enumerations

enum  BlockKind {
  Zero , Diag , TriL , TriU ,
  Dense
}
 Kind of matrix block: zeros, diagonal, lower/upper triangular or dense. More...
 

Functions

PROXSUITE_NLP_DLLAPI BlockKind trans (BlockKind a) noexcept
 BlockKind of the transpose of a matrix.
 
PROXSUITE_NLP_DLLAPI BlockKind add (BlockKind a, BlockKind b) noexcept
 BlockKind of the addition of two matrices - given by their BlockKind.
 
PROXSUITE_NLP_DLLAPI BlockKind mul (BlockKind a, BlockKind b) noexcept
 BlockKind of the product of two matrices.
 
PROXSUITE_NLP_DLLAPI void print_sparsity_pattern (const SymbolicBlockMatrix &smat) noexcept
 
PROXSUITE_NLP_DLLAPI void symbolic_deep_copy (const SymbolicBlockMatrix &in, SymbolicBlockMatrix &out, isize const *perm=nullptr) noexcept
 Deep copy of a SymbolicBlockMatrix, possibily with a permutation.
 

Detailed Description

Specific linear algebra routines.

Block-wise Cholesky and LDLT factorisation routines.

Typedef Documentation

◆ isize

typedef Eigen::Index proxsuite::nlp::linalg::isize = Eigen::Index

Definition at line 18 of file block-kind.hpp.

◆ usize

using proxsuite::nlp::linalg::usize = std::make_unsigned<isize>::type

Definition at line 19 of file block-kind.hpp.

Enumeration Type Documentation

◆ BlockKind

Kind of matrix block: zeros, diagonal, lower/upper triangular or dense.

Enumerator
Zero 

All entries in the block are zero.

Diag 

The block is diagonal.

TriL 

The block is lower-triangular.

TriU 

The block is upper-triangular.

Dense 

There is no known prior structure; assume a dense block.

Definition at line 22 of file block-kind.hpp.

Function Documentation

◆ trans()

PROXSUITE_NLP_DLLAPI BlockKind proxsuite::nlp::linalg::trans ( BlockKind a)
noexcept

BlockKind of the transpose of a matrix.

◆ add()

PROXSUITE_NLP_DLLAPI BlockKind proxsuite::nlp::linalg::add ( BlockKind a,
BlockKind b )
noexcept

BlockKind of the addition of two matrices - given by their BlockKind.

◆ mul()

PROXSUITE_NLP_DLLAPI BlockKind proxsuite::nlp::linalg::mul ( BlockKind a,
BlockKind b )
noexcept

BlockKind of the product of two matrices.

◆ print_sparsity_pattern()

PROXSUITE_NLP_DLLAPI void proxsuite::nlp::linalg::print_sparsity_pattern ( const SymbolicBlockMatrix & smat)
noexcept

◆ symbolic_deep_copy()

PROXSUITE_NLP_DLLAPI void proxsuite::nlp::linalg::symbolic_deep_copy ( const SymbolicBlockMatrix & in,
SymbolicBlockMatrix & out,
isize const * perm = nullptr )
noexcept

Deep copy of a SymbolicBlockMatrix, possibily with a permutation.