Cartesian product of multiple constraint sets. This class makes computing multipliers and Jacobian matrix projections more convenient. More...
#include <proxsuite-nlp/modelling/constraints/constraint-set-product.hpp>
Public Types | |
| using | Base = ConstraintSetTpl<Scalar> |
| using | ActiveType = typename Base::ActiveType |
Public Types inherited from proxsuite::nlp::ConstraintSetTpl< Scalar > | |
| using | Scalar |
| using | ActiveType |
Public Member Functions | |
| ConstraintSetProductTpl (const std::vector< xyz::polymorphic< Base > > components, const std::vector< Eigen::Index > &blockSizes) | |
| ConstraintSetProductTpl (const ConstraintSetProductTpl &)=default | |
| ConstraintSetProductTpl & | operator= (const ConstraintSetProductTpl &)=default |
| ConstraintSetProductTpl (ConstraintSetProductTpl &&)=default | |
| ConstraintSetProductTpl & | operator= (ConstraintSetProductTpl &&)=default |
| Scalar | evaluate (const ConstVectorRef &zproj) const override |
| void | projection (const ConstVectorRef &z, VectorRef zout) const override |
Compute projection of variable z onto the constraint set. | |
| void | normalConeProjection (const ConstVectorRef &z, VectorRef zout) const override |
Compute projection of z onto the normal cone to the set. The default implementation is just \( \mathrm{id} - P\). | |
| void | applyProjectionJacobian (const ConstVectorRef &z, MatrixRef Jout) const override |
| Apply a jacobian of the projection/proximal operator to a matrix. | |
| void | applyNormalConeProjectionJacobian (const ConstVectorRef &z, MatrixRef Jout) const override |
| Apply the jacobian of the projection on the normal cone. | |
| void | computeActiveSet (const ConstVectorRef &z, Eigen::Ref< ActiveType > out) const override |
| const std::vector< xyz::polymorphic< Base > > & | components () const |
| const std::vector< Eigen::Index > & | blockSizes () const |
Public Member Functions inherited from proxsuite::nlp::ConstraintSetTpl< Scalar > | |
| virtual bool | disableGaussNewton () 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 \)). | |
| 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 |
| virtual bool | disableGaussNewton () 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 \)). | |
| 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 | |
| Scalar | |
Additional Inherited Members | |
Protected Attributes inherited from proxsuite::nlp::ConstraintSetTpl< Scalar > | |
| Scalar | mu_ |
| Scalar | mu_inv_ |
| Scalar | mu_ |
| Scalar | mu_inv_ |
Cartesian product of multiple constraint sets. This class makes computing multipliers and Jacobian matrix projections more convenient.
Definition at line 36 of file constraint-set-product.hpp.
| using proxsuite::nlp::ConstraintSetProductTpl< Scalar >::Base = ConstraintSetTpl<Scalar> |
Definition at line 38 of file constraint-set-product.hpp.
| using proxsuite::nlp::ConstraintSetProductTpl< Scalar >::ActiveType = typename Base::ActiveType |
Definition at line 39 of file constraint-set-product.hpp.
|
inline |
Definition at line 41 of file constraint-set-product.hpp.
|
inlineoverridevirtual |
Provided the image zproj by the proximal/projection map, evaluate the nonsmooth penalty or constraint set indicator function.
Reimplemented from proxsuite::nlp::ConstraintSetTpl< Scalar >.
Definition at line 55 of file constraint-set-product.hpp.
|
inlineoverridevirtual |
Compute projection of variable z onto the constraint set.
| [in] | z | Input vector |
| [out] | zout | Output projection |
Implements proxsuite::nlp::ConstraintSetTpl< Scalar >.
Definition at line 64 of file constraint-set-product.hpp.
|
inlineoverridevirtual |
Compute projection of z onto the normal cone to the set. The default implementation is just \( \mathrm{id} - P\).
| [in] | z | Input vector |
| [out] | zout | Output projection on the normal projection |
Implements proxsuite::nlp::ConstraintSetTpl< Scalar >.
Definition at line 72 of file constraint-set-product.hpp.
|
inlineoverridevirtual |
Apply a jacobian of the projection/proximal operator to a matrix.
This carries out the product \(PJ\), where \( P \in\partial_B\prox(z)\).
| [in] | z | Input vector (multiplier estimate) |
| [out] | Jout | Output Jacobian matrix, which will be modifed in-place and returned. |
Reimplemented from proxsuite::nlp::ConstraintSetTpl< Scalar >.
Definition at line 81 of file constraint-set-product.hpp.
|
inlineoverridevirtual |
Apply the jacobian of the projection on the normal cone.
| [in] | z | Input vector |
| [out] | Jout | Output 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 90 of file constraint-set-product.hpp.
|
inlineoverridevirtual |
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 99 of file constraint-set-product.hpp.
|
inline |
Definition at line 108 of file constraint-set-product.hpp.
|
inline |
Definition at line 111 of file constraint-set-product.hpp.
| proxsuite::nlp::ConstraintSetProductTpl< Scalar >::Scalar |
Definition at line 37 of file constraint-set-product.hpp.