proxsuite-nlp  0.11.0
A primal-dual augmented Lagrangian-type solver for nonlinear programming on manifolds.
 
Loading...
Searching...
No Matches
ldlt-allocator.hpp File Reference

Utility function to allocate an LDLT solver for the Newton iterations. More...

#include "proxsuite-nlp/linalg/block-ldlt.hpp"
#include "proxsuite-nlp/linalg/bunchkaufman.hpp"
#include <boost/variant.hpp>
#include <array>
Include dependency graph for ldlt-allocator.hpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  proxsuite::nlp::ComputeSignatureVisitor
 

Namespaces

namespace  proxsuite
 Main package namespace.
 

Typedefs

template<typename Scalar, class MatrixType = typename math_types<Scalar>::MatrixXs>
using proxsuite::nlp::LDLTVariant
 
using proxsuite::nlp::isize
 

Enumerations

enum class  proxsuite::nlp::LDLTChoice {
  DENSE , BUNCHKAUFMAN , BLOCKSPARSE , EIGEN ,
  PROXSUITE
}
 

Functions

linalg::SymbolicBlockMatrix proxsuite::nlp::create_default_block_structure (const std::vector< isize > &dims_primal, const std::vector< isize > &dims_dual)
 
isize proxsuite::nlp::get_total_dim_helper (const std::vector< isize > &nprims, const std::vector< isize > &nduals)
 
template<typename Scalar>
LDLTVariant< Scalar > proxsuite::nlp::allocate_ldlt_from_sizes (const std::vector< isize > &nprims, const std::vector< isize > &nduals, LDLTChoice choice)
 
std::array< int, 3 > proxsuite::nlp::computeInertiaTuple (const Eigen::Ref< Eigen::VectorXi const > &signature)
 

Detailed Description

Utility function to allocate an LDLT solver for the Newton iterations.

Definition in file ldlt-allocator.hpp.

Typedef Documentation

◆ LDLTVariant

template<typename Scalar, class MatrixType = typename math_types<Scalar>::MatrixXs>
using proxsuite::nlp::LDLTVariant
Initial value:
boost::variant<linalg::DenseLDLT<Scalar>, linalg::BlockLDLT<Scalar>,
Eigen::LDLT<MatrixType>, BunchKaufman<MatrixType>
>
Block sparsity-aware LDLT factorization algorithm.

Definition at line 37 of file ldlt-allocator.hpp.

◆ isize

using proxsuite::nlp::linalg::isize

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

Enumeration Type Documentation

◆ LDLTChoice

enum class proxsuite::nlp::LDLTChoice
strong
Enumerator
DENSE 

Use our dense LDLT.

BUNCHKAUFMAN 

Use Bunch-Kaufman factorization.

BLOCKSPARSE 

Use blocked LDLT.

EIGEN 

Use Eigen's implementation.

PROXSUITE 

Use Proxsuite's LDLT.

Definition at line 22 of file ldlt-allocator.hpp.

Function Documentation

◆ create_default_block_structure()

linalg::SymbolicBlockMatrix proxsuite::nlp::create_default_block_structure ( const std::vector< isize > & dims_primal,
const std::vector< isize > & dims_dual )
inline

Definition at line 47 of file ldlt-allocator.hpp.

◆ get_total_dim_helper()

isize proxsuite::nlp::get_total_dim_helper ( const std::vector< isize > & nprims,
const std::vector< isize > & nduals )
inline

Definition at line 95 of file ldlt-allocator.hpp.

◆ allocate_ldlt_from_sizes()

template<typename Scalar>
LDLTVariant< Scalar > proxsuite::nlp::allocate_ldlt_from_sizes ( const std::vector< isize > & nprims,
const std::vector< isize > & nduals,
LDLTChoice choice )

Definition at line 102 of file ldlt-allocator.hpp.

◆ computeInertiaTuple()

std::array< int, 3 > proxsuite::nlp::computeInertiaTuple ( const Eigen::Ref< Eigen::VectorXi const > & signature)
inline

Definition at line 197 of file ldlt-allocator.hpp.