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

Weighted quadratic distance \(\frac{1}{2}\|x\ominus \bar{x}\|^2_W\) on a space. More...

#include <proxsuite-nlp/modelling/costs/squared-distance.hpp>

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

Public Types

using Scalar = _Scalar
 
using StateResidual = ManifoldDifferenceToPoint<Scalar>
 
using Manifold = ManifoldAbstractTpl<Scalar>
 
using Base = QuadraticResidualCostTpl<Scalar>
 
- Public Types inherited from proxsuite::nlp::QuadraticResidualCostTpl< _Scalar >
using Scalar = _Scalar
 
using FunctionType = C2FunctionTpl<Scalar>
 
using RowMatrixXs = Eigen::Matrix<Scalar, -1, -1, Eigen::RowMajor>
 
using Base = CostFunctionBaseTpl<Scalar>
 
using FunctionPtr = shared_ptr<FunctionType>
 
- Public Types inherited from proxsuite::nlp::CostFunctionBaseTpl< _Scalar >
using Scalar
 
using Base
 
- Public Types inherited from proxsuite::nlp::C2FunctionTpl< _Scalar >
using Scalar
 
using Base
 
- Public Types inherited from proxsuite::nlp::C1FunctionTpl< _Scalar >
using Scalar
 
using Base
 
- Public Types inherited from proxsuite::nlp::BaseFunctionTpl< _Scalar >
using Scalar
 
- Public Types inherited from proxsuite::nlp::math_types< _Scalar >
using Scalar = _Scalar
 

Public Member Functions

 QuadraticDistanceCostTpl (const polymorphic< Manifold > &space, const ConstVectorRef &target, const ConstMatrixRef &weights)
 
 QuadraticDistanceCostTpl (const polymorphic< Manifold > &space, const ConstVectorRef &target)
 
 QuadraticDistanceCostTpl (const polymorphic< Manifold > &space)
 
ConstVectorRef getTarget () const
 
void updateTarget (const ConstVectorRef &x)
 
- Public Member Functions inherited from proxsuite::nlp::QuadraticResidualCostTpl< _Scalar >
 QuadraticResidualCostTpl (FunctionPtr residual, const ConstMatrixRef &weights, const ConstVectorRef &slope, const Scalar constant=Scalar(0.))
 
 QuadraticResidualCostTpl (FunctionPtr residual, const ConstMatrixRef &weights, const Scalar constant=Scalar(0.))
 
template<typename Underlying , typename... ResidualArgs>
 QuadraticResidualCostTpl (const ConstMatrixRef &weights, const ConstVectorRef &slope, const Scalar constant, ResidualArgs &...args)
 Constructor using the template parameter as the underlying type of the residual.
 
Scalar call (const ConstVectorRef &x) const
 Evaluate the cost function.
 
void computeGradient (const ConstVectorRef &x, VectorRef out) const
 
void computeHessian (const ConstVectorRef &x, MatrixRef out) const
 
VectorXs computeGradient (const ConstVectorRef &x) const
 
MatrixXs computeHessian (const ConstVectorRef &x) const
 
- Public Member Functions inherited from proxsuite::nlp::CostFunctionBaseTpl< _Scalar >
 CostFunctionBaseTpl (const int nx, const int ndx)
 
 CostFunctionBaseTpl (const ManifoldAbstractTpl< _Scalar > &manifold)
 
VectorXs computeGradient (const ConstVectorRef &x) const
 
MatrixXs computeHessian (const ConstVectorRef &x) const
 
VectorXs operator() (const ConstVectorRef &x) const
 Evaluate the residual at a given point x.
 
void computeJacobian (const ConstVectorRef &x, MatrixRef Jout) const
 Jacobian matrix of the constraint function.
 
void vectorHessianProduct (const ConstVectorRef &x, const ConstVectorRef &v, MatrixRef Hout) const
 Vector-hessian product.
 
virtual ~CostFunctionBaseTpl ()=default
 
- Public Member Functions inherited from proxsuite::nlp::C2FunctionTpl< _Scalar >
 C2FunctionTpl (const int nx, const int ndx, const int nr)
 
 C2FunctionTpl (const ManifoldAbstractTpl< _Scalar > &manifold, const int nr)
 
- Public Member Functions inherited from proxsuite::nlp::C1FunctionTpl< _Scalar >
 C1FunctionTpl (const int nx, const int ndx, const int nr)
 
 C1FunctionTpl (const ManifoldAbstractTpl< _Scalar > &manifold, const int nr)
 
MatrixXs computeJacobian (const ConstVectorRef &x) const
 Jacobian matrix of the constraint function.
 
- Public Member Functions inherited from proxsuite::nlp::BaseFunctionTpl< _Scalar >
 BaseFunctionTpl (const int nx, const int ndx, const int nr)
 
 BaseFunctionTpl (const ManifoldAbstractTpl< _Scalar > &manifold, const int nr)
 
virtual ~BaseFunctionTpl ()=default
 
int nx () const
 Get function input vector size (representation of manifold).
 
int ndx () const
 Get input manifold's tangent space dimension.
 
int nr () const
 Get function codimension.
 

Public Attributes

 Scalar
 
- Public Attributes inherited from proxsuite::nlp::QuadraticResidualCostTpl< _Scalar >
 Scalar
 
FunctionPtr residual_
 Residual function \(r(x)\) the composite cost is constructed over.
 
MatrixXs weights_
 Weights \(Q\).
 
VectorXs slope_
 Slope \(b\).
 
Scalar constant_
 Constant term \(c\).
 
bool gauss_newton_
 
- Public Attributes inherited from proxsuite::nlp::CostFunctionBaseTpl< _Scalar >
 Scalar
 
- Public Attributes inherited from proxsuite::nlp::C2FunctionTpl< _Scalar >
 Scalar
 
- Public Attributes inherited from proxsuite::nlp::C1FunctionTpl< _Scalar >
 Scalar
 
- Public Attributes inherited from proxsuite::nlp::BaseFunctionTpl< _Scalar >
 Scalar
 
- Public Attributes inherited from proxsuite::nlp::math_types< _Scalar >
 _Scalar
 

Additional Inherited Members

- Protected Attributes inherited from proxsuite::nlp::QuadraticResidualCostTpl< _Scalar >
VectorXs err
 
VectorXs tmp_w_err
 
MatrixXs Jres
 
RowMatrixXs JtW
 
MatrixXs H
 
- Protected Attributes inherited from proxsuite::nlp::BaseFunctionTpl< _Scalar >
int nx_
 
int ndx_
 
int nr_
 

Detailed Description

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

Weighted quadratic distance \(\frac{1}{2}\|x\ominus \bar{x}\|^2_W\) on a space.

This function subclasses from QuadraticResidualCost and provides a convenient constructor. It uses ManifoldDifferenceToPoint under the hood as the input residual for the parent. This struct also exposes a method to update the target point.

Definition at line 18 of file squared-distance.hpp.

Member Typedef Documentation

◆ Scalar

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

Definition at line 19 of file squared-distance.hpp.

◆ StateResidual

Definition at line 21 of file squared-distance.hpp.

◆ Manifold

Definition at line 22 of file squared-distance.hpp.

◆ Base

Definition at line 23 of file squared-distance.hpp.

Constructor & Destructor Documentation

◆ QuadraticDistanceCostTpl() [1/3]

template<typename _Scalar >
proxsuite::nlp::QuadraticDistanceCostTpl< _Scalar >::QuadraticDistanceCostTpl ( const polymorphic< Manifold > & space,
const ConstVectorRef & target,
const ConstMatrixRef & weights )
inline

Definition at line 27 of file squared-distance.hpp.

◆ QuadraticDistanceCostTpl() [2/3]

template<typename _Scalar >
proxsuite::nlp::QuadraticDistanceCostTpl< _Scalar >::QuadraticDistanceCostTpl ( const polymorphic< Manifold > & space,
const ConstVectorRef & target )
inline

Definition at line 32 of file squared-distance.hpp.

◆ QuadraticDistanceCostTpl() [3/3]

template<typename _Scalar >
proxsuite::nlp::QuadraticDistanceCostTpl< _Scalar >::QuadraticDistanceCostTpl ( const polymorphic< Manifold > & space)
inline

Definition at line 37 of file squared-distance.hpp.

Member Function Documentation

◆ getTarget()

template<typename _Scalar >
ConstVectorRef proxsuite::nlp::QuadraticDistanceCostTpl< _Scalar >::getTarget ( ) const
inline

Definition at line 40 of file squared-distance.hpp.

◆ updateTarget()

template<typename _Scalar >
void proxsuite::nlp::QuadraticDistanceCostTpl< _Scalar >::updateTarget ( const ConstVectorRef & x)
inline

Definition at line 44 of file squared-distance.hpp.

Member Data Documentation

◆ Scalar

Definition at line 20 of file squared-distance.hpp.


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