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

Equality constraints \(c(x) = 0\). More...

#include <proxsuite-nlp/modelling/constraints/equality-constraint.hpp>

Inheritance diagram for proxsuite::nlp::EqualityConstraintTpl< _Scalar >:
[legend]
Collaboration diagram for proxsuite::nlp::EqualityConstraintTpl< _Scalar >:
[legend]

Public Types

using Scalar = _Scalar
 
using Base = ConstraintSetTpl<Scalar>
 
using ActiveType = typename Base::ActiveType
 
- Public Types inherited from proxsuite::nlp::ConstraintSetTpl< _Scalar >
using Scalar
 
using ActiveType
 

Public Member Functions

 EqualityConstraintTpl ()=default
 
 EqualityConstraintTpl (const EqualityConstraintTpl &)=default
 
EqualityConstraintTploperator= (const EqualityConstraintTpl &)=default
 
 EqualityConstraintTpl (EqualityConstraintTpl &&)=default
 
EqualityConstraintTploperator= (EqualityConstraintTpl &&)=default
 
bool disableGaussNewton () const
 
void projection (const ConstVectorRef &, VectorRef zout) const
 Compute projection of variable z onto the constraint set.
 
void normalConeProjection (const ConstVectorRef &z, VectorRef zout) const
 Compute projection of z onto the normal cone to the set. The default implementation is just \( \mathrm{id} - P\).
 
void applyProjectionJacobian (const ConstVectorRef &, MatrixRef Jout) const
 Apply a jacobian of the projection/proximal operator to a matrix.
 
void applyNormalConeProjectionJacobian (const ConstVectorRef &, MatrixRef) const
 Apply the jacobian of the projection on the normal cone.
 
void computeActiveSet (const ConstVectorRef &, Eigen::Ref< ActiveType > out) const
 
- Public Member Functions inherited from proxsuite::nlp::ConstraintSetTpl< _Scalar >
 ConstraintSetTpl ()=default
 
virtual _Scalar evaluate (const ConstVectorRef &) const
 
void setProxParameter (const _Scalar mu) const
 Update proximal parameter; this applies to when this class is a proximal operator that isn't a projection (e.g. \( \ell_1 \)).
 
virtual ~ConstraintSetTpl ()=default
 
bool operator== (const ConstraintSetTpl< _Scalar > &rhs)
 
_Scalar evaluateMoreauEnvelope (const ConstVectorRef &zin, const ConstVectorRef &zproj) const
 Evaluate the Moreau envelope with parameter mu for the given contraint set or nonsmooth penalty \(g\) at point zin.
 
_Scalar computeMoreauEnvelope (const ConstVectorRef &zin, VectorRef zprojout) const
 Evaluate the Moreau envelope with parameter mu for the given contraint set or nonsmooth penalty \(g\) at point zin. This variant evaluates the prox map.
 
_Scalar mu () const
 
_Scalar mu_inv () const
 

Public Attributes

 Scalar
 
- Public Attributes inherited from proxsuite::nlp::ConstraintSetTpl< _Scalar >
 Scalar
 

Additional Inherited Members

- Protected Attributes inherited from proxsuite::nlp::ConstraintSetTpl< _Scalar >
_Scalar mu_
 
_Scalar mu_inv_
 

Detailed Description

template<typename _Scalar>
struct proxsuite::nlp::EqualityConstraintTpl< _Scalar >

Equality constraints \(c(x) = 0\).

This class implements the set associated with equality constraints \( c(x) = 0 \), where \(c : \calX \to \RR^p\) is a residual function.

Definition at line 18 of file equality-constraint.hpp.

Member Typedef Documentation

◆ Scalar

template<typename _Scalar >
using proxsuite::nlp::EqualityConstraintTpl< _Scalar >::Scalar = _Scalar

Definition at line 20 of file equality-constraint.hpp.

◆ Base

template<typename _Scalar >
using proxsuite::nlp::EqualityConstraintTpl< _Scalar >::Base = ConstraintSetTpl<Scalar>

Definition at line 29 of file equality-constraint.hpp.

◆ ActiveType

template<typename _Scalar >
using proxsuite::nlp::EqualityConstraintTpl< _Scalar >::ActiveType = typename Base::ActiveType

Definition at line 30 of file equality-constraint.hpp.

Constructor & Destructor Documentation

◆ EqualityConstraintTpl() [1/3]

template<typename _Scalar >
proxsuite::nlp::EqualityConstraintTpl< _Scalar >::EqualityConstraintTpl ( )
default

◆ EqualityConstraintTpl() [2/3]

template<typename _Scalar >
proxsuite::nlp::EqualityConstraintTpl< _Scalar >::EqualityConstraintTpl ( const EqualityConstraintTpl< _Scalar > & )
default

◆ EqualityConstraintTpl() [3/3]

template<typename _Scalar >
proxsuite::nlp::EqualityConstraintTpl< _Scalar >::EqualityConstraintTpl ( EqualityConstraintTpl< _Scalar > && )
default

Member Function Documentation

◆ operator=() [1/2]

template<typename _Scalar >
EqualityConstraintTpl & proxsuite::nlp::EqualityConstraintTpl< _Scalar >::operator= ( const EqualityConstraintTpl< _Scalar > & )
default

◆ operator=() [2/2]

template<typename _Scalar >
EqualityConstraintTpl & proxsuite::nlp::EqualityConstraintTpl< _Scalar >::operator= ( EqualityConstraintTpl< _Scalar > && )
default

◆ disableGaussNewton()

template<typename _Scalar >
bool proxsuite::nlp::EqualityConstraintTpl< _Scalar >::disableGaussNewton ( ) const
inlinevirtual

Do not use the vector-Hessian product in the Hessian for Gauss Newton.

Reimplemented from proxsuite::nlp::ConstraintSetTpl< _Scalar >.

Definition at line 32 of file equality-constraint.hpp.

◆ projection()

template<typename _Scalar >
void proxsuite::nlp::EqualityConstraintTpl< _Scalar >::projection ( const ConstVectorRef & z,
VectorRef zout ) const
inlinevirtual

Compute projection of variable z onto the constraint set.

Parameters
[in]zInput vector
[out]zoutOutput projection

Implements proxsuite::nlp::ConstraintSetTpl< _Scalar >.

Definition at line 34 of file equality-constraint.hpp.

◆ normalConeProjection()

template<typename _Scalar >
void proxsuite::nlp::EqualityConstraintTpl< _Scalar >::normalConeProjection ( const ConstVectorRef & z,
VectorRef zout ) const
inlinevirtual

Compute projection of z onto the normal cone to the set. The default implementation is just \( \mathrm{id} - P\).

Parameters
[in]zInput vector
[out]zoutOutput projection on the normal projection

Implements proxsuite::nlp::ConstraintSetTpl< _Scalar >.

Definition at line 38 of file equality-constraint.hpp.

◆ applyProjectionJacobian()

template<typename _Scalar >
void proxsuite::nlp::EqualityConstraintTpl< _Scalar >::applyProjectionJacobian ( const ConstVectorRef & z,
MatrixRef Jout ) const
inlinevirtual

Apply a jacobian of the projection/proximal operator to a matrix.

This carries out the product \(PJ\), where \( P \in\partial_B\prox(z)\).

Parameters
[in]zInput vector (multiplier estimate)
[out]JoutOutput Jacobian matrix, which will be modifed in-place and returned.

Reimplemented from proxsuite::nlp::ConstraintSetTpl< _Scalar >.

Definition at line 43 of file equality-constraint.hpp.

◆ applyNormalConeProjectionJacobian()

template<typename _Scalar >
void proxsuite::nlp::EqualityConstraintTpl< _Scalar >::applyNormalConeProjectionJacobian ( const ConstVectorRef & z,
MatrixRef Jout ) const
inlinevirtual

Apply the jacobian of the projection on the normal cone.

Parameters
[in]zInput vector
[out]JoutOutput Jacobian matrix of shape \((nr, ndx)\), which will be modified in place. The modification should be a row-wise operation.

Reimplemented from proxsuite::nlp::ConstraintSetTpl< _Scalar >.

Definition at line 48 of file equality-constraint.hpp.

◆ computeActiveSet()

template<typename _Scalar >
void proxsuite::nlp::EqualityConstraintTpl< _Scalar >::computeActiveSet ( const ConstVectorRef & z,
Eigen::Ref< ActiveType > out ) const
inlinevirtual

Compute the active set of the constraint. Active means the Jacobian of the proximal operator is nonzero.

Implements proxsuite::nlp::ConstraintSetTpl< _Scalar >.

Definition at line 53 of file equality-constraint.hpp.

Member Data Documentation

◆ Scalar

template<typename _Scalar >
proxsuite::nlp::EqualityConstraintTpl< _Scalar >::Scalar

Definition at line 21 of file equality-constraint.hpp.


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