17template <
typename _Scalar>
18struct EqualityConstraintTpl : ConstraintSetTpl<_Scalar> {
20 using Scalar = _Scalar;
23 EqualityConstraintTpl() =
default;
24 EqualityConstraintTpl(
const EqualityConstraintTpl &) =
default;
25 EqualityConstraintTpl &operator=(
const EqualityConstraintTpl &) =
default;
26 EqualityConstraintTpl(EqualityConstraintTpl &&) =
default;
27 EqualityConstraintTpl &operator=(EqualityConstraintTpl &&) =
default;
29 using Base = ConstraintSetTpl<Scalar>;
30 using ActiveType =
typename Base::ActiveType;
34 inline void projection(
const ConstVectorRef &, VectorRef zout)
const {
39 VectorRef zout)
const {
44 MatrixRef Jout)
const {
54 Eigen::Ref<ActiveType> out)
const {
59template <
typename Scalar>
60using EqualityConstraint PROXSUITE_NLP_DEPRECATED_MESSAGE(
61 "Use EqualityConstraintTpl<T> instead") = EqualityConstraintTpl<Scalar>;
63#ifdef PROXSUITE_NLP_ENABLE_TEMPLATE_INSTANTIATION
64extern template struct PROXSUITE_NLP_EXPLICIT_INSTANTIATION_DECLARATION_DLLAPI
65 EqualityConstraintTpl<context::Scalar>;
#define PROXSUITE_NLP_DYNAMIC_TYPEDEFS(Scalar)
void projection(const ConstVectorRef &, VectorRef zout) const
Compute projection of variable z onto the constraint set.
void applyNormalConeProjectionJacobian(const ConstVectorRef &, MatrixRef) const
Apply the jacobian of the projection on the normal cone.
void applyProjectionJacobian(const ConstVectorRef &, MatrixRef Jout) const
Apply a jacobian of the projection/proximal operator to a matrix.
void normalConeProjection(const ConstVectorRef &z, VectorRef zout) const
Compute projection of z onto the normal cone to the set. The default implementation is just .
void computeActiveSet(const ConstVectorRef &, Eigen::Ref< ActiveType > out) const
bool disableGaussNewton() const