proxsuite-nlp  0.10.0
A primal-dual augmented Lagrangian-type solver for nonlinear programming on manifolds.
Loading...
Searching...
No Matches
proxsuite::nlp::WorkspaceTpl< Scalar > Struct Template Reference

#include <proxsuite-nlp/workspace.hpp>

Collaboration diagram for proxsuite::nlp::WorkspaceTpl< Scalar >:
[legend]

Public Types

using Problem = ProblemTpl<Scalar>
 

Public Member Functions

 WorkspaceTpl (const Problem &prob, LDLTChoice ldlt_choice=LDLTChoice::DENSE)
 
void init (const Problem &prob)
 

Public Attributes

 Scalar
 
long nx
 Newton iteration variables.
 
long ndx
 
std::size_t numblocks
 
long numdual
 
MatrixXs kkt_matrix
 KKT iteration matrix.
 
VectorXs kkt_rhs
 KKT iteration right-hand side.
 
VectorXs kkt_rhs_corr
 Correction for the kkt matrix.
 
VectorXs kkt_err
 KKT linear system error (for refinement)
 
VectorXs pd_step
 Primal-dual step \(\delta w = (\delta x, \delta\lambda)\).
 
VectorRef prim_step
 
VectorRef dual_step
 
Eigen::VectorXi signature
 Signature of the KKT matrix.
 
LDLTVariant< Scalarldlt_
 LDLT storage.
 
VectorXs x_prev
 
VectorXs x_trial
 
VectorXs data_lams_prev
 
VectorXs data_lams_trial
 
VectorOfRef lams_prev
 
VectorOfRef lams_trial
 
VectorXs prox_grad
 
MatrixXs prox_hess
 
VectorXs dual_residual
 Residuals.
 
VectorXs data_cstr_values
 
std::vector< VectorRef > cstr_values
 Values of each constraint.
 
Scalar objective_value
 Objective value.
 
VectorXs objective_gradient
 Objective function gradient.
 
MatrixXs objective_hessian
 Objective function Hessian.
 
VectorXs merit_gradient
 Merit function gradient.
 
VectorXs merit_dual_gradient
 Merit function gradient in the dual variables (if applicable)
 
MatrixXs data_jacobians
 
MatrixXs data_hessians
 
MatrixXs data_jacobians_proj
 
std::vector< MatrixRef > cstr_jacobians
 
std::vector< MatrixRef > cstr_vector_hessian_prod
 
std::vector< MatrixRef > cstr_jacobians_proj
 
VectorXs data_shift_cstr_values
 
VectorXs data_lams_plus
 
VectorXs data_lams_plus_reproj
 
VectorXs data_lams_pdal
 
VectorXs data_lams_pdal_reproj
 
VectorXs data_shift_cstr_pdal
 
std::vector< VectorRef > lams_plus
 First-order multipliers \(\mathrm{proj}(\lambda_e + c / \mu)\).
 
std::vector< VectorRef > lams_plus_reproj
 Product of the projector Jacobians with the first-order multipliers.
 
std::vector< VectorRef > shift_cstr_values
 Buffer for shifted constraints.
 
std::vector< VectorRef > lams_pdal
 Primal-dual multiplier estimates (from the pdBCL algorithm)
 
std::vector< VectorRef > lams_pdal_reproj
 
std::vector< VectorRef > shift_cstr_pdal
 
std::vector< Scalarls_alphas
 
std::vector< Scalarls_values
 
Scalar alpha_opt
 Optimal linesearch \(\alpha^\star\).
 
Scalar dmerit_dir = 0.
 Merit function derivative in descent direction.
 
VectorXs tmp_dx_scaled
 

Detailed Description

template<typename Scalar>
struct proxsuite::nlp::WorkspaceTpl< Scalar >

Workspace class, which holds the necessary intermediary data for the solver to function.

Definition at line 25 of file workspace.hpp.

Member Typedef Documentation

◆ Problem

template<typename Scalar >
using proxsuite::nlp::WorkspaceTpl< Scalar >::Problem = ProblemTpl<Scalar>

Definition at line 30 of file workspace.hpp.

Constructor & Destructor Documentation

◆ WorkspaceTpl()

template<typename Scalar >
proxsuite::nlp::WorkspaceTpl< Scalar >::WorkspaceTpl ( const Problem & prob,
LDLTChoice ldlt_choice = LDLTChoice::DENSE )
inline

Definition at line 123 of file workspace.hpp.

Member Function Documentation

◆ init()

template<typename Scalar >
void proxsuite::nlp::WorkspaceTpl< Scalar >::init ( const Problem & prob)
inline

Definition at line 143 of file workspace.hpp.

Member Data Documentation

◆ Scalar

template<typename Scalar >
proxsuite::nlp::WorkspaceTpl< Scalar >::Scalar

Definition at line 29 of file workspace.hpp.

◆ nx

template<typename Scalar >
long proxsuite::nlp::WorkspaceTpl< Scalar >::nx

Newton iteration variables.

Definition at line 34 of file workspace.hpp.

◆ ndx

template<typename Scalar >
long proxsuite::nlp::WorkspaceTpl< Scalar >::ndx

Definition at line 35 of file workspace.hpp.

◆ numblocks

template<typename Scalar >
std::size_t proxsuite::nlp::WorkspaceTpl< Scalar >::numblocks

Definition at line 36 of file workspace.hpp.

◆ numdual

template<typename Scalar >
long proxsuite::nlp::WorkspaceTpl< Scalar >::numdual

Definition at line 37 of file workspace.hpp.

◆ kkt_matrix

template<typename Scalar >
MatrixXs proxsuite::nlp::WorkspaceTpl< Scalar >::kkt_matrix

KKT iteration matrix.

Definition at line 40 of file workspace.hpp.

◆ kkt_rhs

template<typename Scalar >
VectorXs proxsuite::nlp::WorkspaceTpl< Scalar >::kkt_rhs

KKT iteration right-hand side.

Definition at line 42 of file workspace.hpp.

◆ kkt_rhs_corr

template<typename Scalar >
VectorXs proxsuite::nlp::WorkspaceTpl< Scalar >::kkt_rhs_corr

Correction for the kkt matrix.

Definition at line 44 of file workspace.hpp.

◆ kkt_err

template<typename Scalar >
VectorXs proxsuite::nlp::WorkspaceTpl< Scalar >::kkt_err

KKT linear system error (for refinement)

Definition at line 46 of file workspace.hpp.

◆ pd_step

template<typename Scalar >
VectorXs proxsuite::nlp::WorkspaceTpl< Scalar >::pd_step

Primal-dual step \(\delta w = (\delta x, \delta\lambda)\).

Definition at line 48 of file workspace.hpp.

◆ prim_step

template<typename Scalar >
VectorRef proxsuite::nlp::WorkspaceTpl< Scalar >::prim_step

Definition at line 49 of file workspace.hpp.

◆ dual_step

template<typename Scalar >
VectorRef proxsuite::nlp::WorkspaceTpl< Scalar >::dual_step

Definition at line 50 of file workspace.hpp.

◆ signature

template<typename Scalar >
Eigen::VectorXi proxsuite::nlp::WorkspaceTpl< Scalar >::signature

Signature of the KKT matrix.

Definition at line 52 of file workspace.hpp.

◆ ldlt_

LDLT storage.

Definition at line 55 of file workspace.hpp.

◆ x_prev

template<typename Scalar >
VectorXs proxsuite::nlp::WorkspaceTpl< Scalar >::x_prev

Definition at line 59 of file workspace.hpp.

◆ x_trial

template<typename Scalar >
VectorXs proxsuite::nlp::WorkspaceTpl< Scalar >::x_trial

Definition at line 60 of file workspace.hpp.

◆ data_lams_prev

template<typename Scalar >
VectorXs proxsuite::nlp::WorkspaceTpl< Scalar >::data_lams_prev

Definition at line 61 of file workspace.hpp.

◆ data_lams_trial

template<typename Scalar >
VectorXs proxsuite::nlp::WorkspaceTpl< Scalar >::data_lams_trial

Definition at line 62 of file workspace.hpp.

◆ lams_prev

template<typename Scalar >
VectorOfRef proxsuite::nlp::WorkspaceTpl< Scalar >::lams_prev

Definition at line 63 of file workspace.hpp.

◆ lams_trial

template<typename Scalar >
VectorOfRef proxsuite::nlp::WorkspaceTpl< Scalar >::lams_trial

Definition at line 64 of file workspace.hpp.

◆ prox_grad

template<typename Scalar >
VectorXs proxsuite::nlp::WorkspaceTpl< Scalar >::prox_grad

Definition at line 66 of file workspace.hpp.

◆ prox_hess

template<typename Scalar >
MatrixXs proxsuite::nlp::WorkspaceTpl< Scalar >::prox_hess

Definition at line 67 of file workspace.hpp.

◆ dual_residual

template<typename Scalar >
VectorXs proxsuite::nlp::WorkspaceTpl< Scalar >::dual_residual

Residuals.

Dual residual: gradient of the Lagrangian function

Definition at line 72 of file workspace.hpp.

◆ data_cstr_values

template<typename Scalar >
VectorXs proxsuite::nlp::WorkspaceTpl< Scalar >::data_cstr_values

Definition at line 74 of file workspace.hpp.

◆ cstr_values

template<typename Scalar >
std::vector<VectorRef> proxsuite::nlp::WorkspaceTpl< Scalar >::cstr_values

Values of each constraint.

Definition at line 76 of file workspace.hpp.

◆ objective_value

template<typename Scalar >
Scalar proxsuite::nlp::WorkspaceTpl< Scalar >::objective_value

Objective value.

Definition at line 79 of file workspace.hpp.

◆ objective_gradient

template<typename Scalar >
VectorXs proxsuite::nlp::WorkspaceTpl< Scalar >::objective_gradient

Objective function gradient.

Definition at line 81 of file workspace.hpp.

◆ objective_hessian

template<typename Scalar >
MatrixXs proxsuite::nlp::WorkspaceTpl< Scalar >::objective_hessian

Objective function Hessian.

Definition at line 83 of file workspace.hpp.

◆ merit_gradient

template<typename Scalar >
VectorXs proxsuite::nlp::WorkspaceTpl< Scalar >::merit_gradient

Merit function gradient.

Definition at line 85 of file workspace.hpp.

◆ merit_dual_gradient

template<typename Scalar >
VectorXs proxsuite::nlp::WorkspaceTpl< Scalar >::merit_dual_gradient

Merit function gradient in the dual variables (if applicable)

Definition at line 87 of file workspace.hpp.

◆ data_jacobians

template<typename Scalar >
MatrixXs proxsuite::nlp::WorkspaceTpl< Scalar >::data_jacobians

Definition at line 89 of file workspace.hpp.

◆ data_hessians

template<typename Scalar >
MatrixXs proxsuite::nlp::WorkspaceTpl< Scalar >::data_hessians

Definition at line 90 of file workspace.hpp.

◆ data_jacobians_proj

template<typename Scalar >
MatrixXs proxsuite::nlp::WorkspaceTpl< Scalar >::data_jacobians_proj

Definition at line 91 of file workspace.hpp.

◆ cstr_jacobians

template<typename Scalar >
std::vector<MatrixRef> proxsuite::nlp::WorkspaceTpl< Scalar >::cstr_jacobians

Definition at line 92 of file workspace.hpp.

◆ cstr_vector_hessian_prod

template<typename Scalar >
std::vector<MatrixRef> proxsuite::nlp::WorkspaceTpl< Scalar >::cstr_vector_hessian_prod

Definition at line 93 of file workspace.hpp.

◆ cstr_jacobians_proj

template<typename Scalar >
std::vector<MatrixRef> proxsuite::nlp::WorkspaceTpl< Scalar >::cstr_jacobians_proj

Definition at line 94 of file workspace.hpp.

◆ data_shift_cstr_values

template<typename Scalar >
VectorXs proxsuite::nlp::WorkspaceTpl< Scalar >::data_shift_cstr_values

Definition at line 96 of file workspace.hpp.

◆ data_lams_plus

template<typename Scalar >
VectorXs proxsuite::nlp::WorkspaceTpl< Scalar >::data_lams_plus

Definition at line 97 of file workspace.hpp.

◆ data_lams_plus_reproj

template<typename Scalar >
VectorXs proxsuite::nlp::WorkspaceTpl< Scalar >::data_lams_plus_reproj

Definition at line 98 of file workspace.hpp.

◆ data_lams_pdal

template<typename Scalar >
VectorXs proxsuite::nlp::WorkspaceTpl< Scalar >::data_lams_pdal

Definition at line 99 of file workspace.hpp.

◆ data_lams_pdal_reproj

template<typename Scalar >
VectorXs proxsuite::nlp::WorkspaceTpl< Scalar >::data_lams_pdal_reproj

Definition at line 100 of file workspace.hpp.

◆ data_shift_cstr_pdal

template<typename Scalar >
VectorXs proxsuite::nlp::WorkspaceTpl< Scalar >::data_shift_cstr_pdal

Definition at line 101 of file workspace.hpp.

◆ lams_plus

template<typename Scalar >
std::vector<VectorRef> proxsuite::nlp::WorkspaceTpl< Scalar >::lams_plus

First-order multipliers \(\mathrm{proj}(\lambda_e + c / \mu)\).

Definition at line 104 of file workspace.hpp.

◆ lams_plus_reproj

template<typename Scalar >
std::vector<VectorRef> proxsuite::nlp::WorkspaceTpl< Scalar >::lams_plus_reproj

Product of the projector Jacobians with the first-order multipliers.

Definition at line 106 of file workspace.hpp.

◆ shift_cstr_values

template<typename Scalar >
std::vector<VectorRef> proxsuite::nlp::WorkspaceTpl< Scalar >::shift_cstr_values

Buffer for shifted constraints.

Definition at line 108 of file workspace.hpp.

◆ lams_pdal

template<typename Scalar >
std::vector<VectorRef> proxsuite::nlp::WorkspaceTpl< Scalar >::lams_pdal

Primal-dual multiplier estimates (from the pdBCL algorithm)

Definition at line 110 of file workspace.hpp.

◆ lams_pdal_reproj

template<typename Scalar >
std::vector<VectorRef> proxsuite::nlp::WorkspaceTpl< Scalar >::lams_pdal_reproj

Definition at line 111 of file workspace.hpp.

◆ shift_cstr_pdal

template<typename Scalar >
std::vector<VectorRef> proxsuite::nlp::WorkspaceTpl< Scalar >::shift_cstr_pdal

Definition at line 112 of file workspace.hpp.

◆ ls_alphas

template<typename Scalar >
std::vector<Scalar> proxsuite::nlp::WorkspaceTpl< Scalar >::ls_alphas

Definition at line 114 of file workspace.hpp.

◆ ls_values

template<typename Scalar >
std::vector<Scalar> proxsuite::nlp::WorkspaceTpl< Scalar >::ls_values

Definition at line 115 of file workspace.hpp.

◆ alpha_opt

template<typename Scalar >
Scalar proxsuite::nlp::WorkspaceTpl< Scalar >::alpha_opt

Optimal linesearch \(\alpha^\star\).

Definition at line 117 of file workspace.hpp.

◆ dmerit_dir

template<typename Scalar >
Scalar proxsuite::nlp::WorkspaceTpl< Scalar >::dmerit_dir = 0.

Merit function derivative in descent direction.

Definition at line 119 of file workspace.hpp.

◆ tmp_dx_scaled

template<typename Scalar >
VectorXs proxsuite::nlp::WorkspaceTpl< Scalar >::tmp_dx_scaled

Definition at line 121 of file workspace.hpp.


The documentation for this struct was generated from the following files: