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

Tangent bundle of a base manifold M. More...

#include <proxsuite-nlp/modelling/spaces/tangent-bundle.hpp>

Inheritance diagram for proxsuite::nlp::TangentBundleTpl< Base >:
[legend]
Collaboration diagram for proxsuite::nlp::TangentBundleTpl< Base >:
[legend]

Public Types

using Self = TangentBundleTpl<Base>
 
using Scalar = typename Base::Scalar
 
- Public Types inherited from proxsuite::nlp::ManifoldAbstractTpl< Base::Scalar >
using Scalar
 
using TangentSpaceType
 Typedef for the tangent space, as a manifold.
 

Public Member Functions

 TangentBundleTpl (Base base)
 Constructor using base space instance.
 
template<typename... BaseCtorArgs>
 TangentBundleTpl (BaseCtorArgs... args)
 Constructor using base space constructor.
 
int nx () const
 Declare implementations.
 
int ndx () const
 Get manifold tangent space dimension.
 
VectorXs neutral () const
 Get the neutral element \(e \in M\) from the manifold (if this makes sense).
 
VectorXs rand () const
 Sample a random point \(x \in M\) on the manifold.
 
bool isNormalized (const ConstVectorRef &x) const
 Check if the input vector x is a viable element of the manifold.
 
const Base & getBaseSpace () const
 
Implementations of operators
void integrate_impl (const ConstVectorRef &x, const ConstVectorRef &dx, VectorRef out) const
 Perform the manifold integration operation.
 
void difference_impl (const ConstVectorRef &x0, const ConstVectorRef &x1, VectorRef out) const
 Implementation of the manifold retraction operation.
 
void Jintegrate_impl (const ConstVectorRef &x, const ConstVectorRef &v, MatrixRef Jout, int arg) const
 
void JintegrateTransport (const ConstVectorRef &x, const ConstVectorRef &v, MatrixRef Jout, int arg) const
 Perform the parallel transport operation.
 
void Jdifference_impl (const ConstVectorRef &x0, const ConstVectorRef &x1, MatrixRef Jout, int arg) const
 
void interpolate_impl (const ConstVectorRef &x0, const ConstVectorRef &x1, const Scalar &u, VectorRef out) const
 Interpolation operation.
 
template<typename Point >
Point::ConstSegmentReturnType getBasePoint (const Point &x) const
 
template<typename Point >
Point::SegmentReturnType getBasePointWrite (const Point &x) const
 
template<typename Tangent >
Tangent::ConstSegmentReturnType getBaseTangent (const Tangent &v) const
 
template<typename Tangent >
Tangent::SegmentReturnType getTangentHeadWrite (const Tangent &v) const
 
template<typename Jac >
Eigen::Block< Jac, Eigen::Dynamic, Eigen::Dynamic > getBaseJacobian (const Jac &J) const
 
- Public Member Functions inherited from proxsuite::nlp::ManifoldAbstractTpl< Base::Scalar >
virtual ~ManifoldAbstractTpl ()=default
 
const TangentSpaceType tangentSpace () const
 Return an object representing the tangent space as a manifold.
 
void integrate (const ConstVectorRef &x, const ConstVectorRef &v, VectorRef out) const
 Manifold integration operation \(x \oplus v\).
 
void Jintegrate (const ConstVectorRef &x, const ConstVectorRef &v, MatrixRef Jout, int arg) const
 Jacobian of the integation operation.
 
void difference (const ConstVectorRef &x0, const ConstVectorRef &x1, VectorRef out) const
 Manifold difference/retraction operation \(x_1 \ominus x_0\).
 
void Jdifference (const ConstVectorRef &x0, const ConstVectorRef &x1, MatrixRef Jout, int arg) const
 Jacobian of the retraction operation.
 
void interpolate (const ConstVectorRef &x0, const ConstVectorRef &x1, const Scalar &u, VectorRef out) const
 
VectorXs integrate (const ConstVectorRef &x, const ConstVectorRef &v) const
 Manifold integration operation \(x \oplus v\).
 
VectorXs difference (const ConstVectorRef &x0, const ConstVectorRef &x1) const
 Manifold difference/retraction operation \(x_1 \ominus x_0\).
 
VectorXs interpolate (const ConstVectorRef &x0, const ConstVectorRef &x1, const Scalar &u) const
 Interpolation operation.
 

Public Attributes

 Scalar
 
- Public Attributes inherited from proxsuite::nlp::ManifoldAbstractTpl< Base::Scalar >
 Scalar
 

Static Public Attributes

static constexpr int Options = Base::Options
 
- Static Public Attributes inherited from proxsuite::nlp::ManifoldAbstractTpl< Base::Scalar >
static constexpr int Options
 Scalar type.
 

Protected Attributes

Base base_
 

Additional Inherited Members

Detailed Description

template<class Base>
struct proxsuite::nlp::TangentBundleTpl< Base >

Tangent bundle of a base manifold M.

Definition at line 12 of file tangent-bundle.hpp.

Member Typedef Documentation

◆ Self

template<class Base >
using proxsuite::nlp::TangentBundleTpl< Base >::Self = TangentBundleTpl<Base>

Definition at line 17 of file tangent-bundle.hpp.

◆ Scalar

template<class Base >
using proxsuite::nlp::TangentBundleTpl< Base >::Scalar = typename Base::Scalar

Definition at line 18 of file tangent-bundle.hpp.

Constructor & Destructor Documentation

◆ TangentBundleTpl() [1/2]

template<class Base >
proxsuite::nlp::TangentBundleTpl< Base >::TangentBundleTpl ( Base base)
inline

Constructor using base space instance.

Definition at line 23 of file tangent-bundle.hpp.

◆ TangentBundleTpl() [2/2]

template<class Base >
template<typename... BaseCtorArgs>
proxsuite::nlp::TangentBundleTpl< Base >::TangentBundleTpl ( BaseCtorArgs... args)
inline

Constructor using base space constructor.

Definition at line 26 of file tangent-bundle.hpp.

Member Function Documentation

◆ nx()

template<class Base >
int proxsuite::nlp::TangentBundleTpl< Base >::nx ( ) const
inlinevirtual

Declare implementations.

Implements proxsuite::nlp::ManifoldAbstractTpl< Base::Scalar >.

Definition at line 30 of file tangent-bundle.hpp.

◆ ndx()

template<class Base >
int proxsuite::nlp::TangentBundleTpl< Base >::ndx ( ) const
inlinevirtual

Get manifold tangent space dimension.

Implements proxsuite::nlp::ManifoldAbstractTpl< Base::Scalar >.

Definition at line 31 of file tangent-bundle.hpp.

◆ neutral()

template<class Base >
VectorXs proxsuite::nlp::TangentBundleTpl< Base >::neutral ( ) const
virtual

Get the neutral element \(e \in M\) from the manifold (if this makes sense).

Reimplemented from proxsuite::nlp::ManifoldAbstractTpl< Base::Scalar >.

◆ rand()

template<class Base >
VectorXs proxsuite::nlp::TangentBundleTpl< Base >::rand ( ) const
virtual

Sample a random point \(x \in M\) on the manifold.

Reimplemented from proxsuite::nlp::ManifoldAbstractTpl< Base::Scalar >.

◆ isNormalized()

template<class Base >
bool proxsuite::nlp::TangentBundleTpl< Base >::isNormalized ( const ConstVectorRef & ) const
inlinevirtual

Check if the input vector x is a viable element of the manifold.

Reimplemented from proxsuite::nlp::ManifoldAbstractTpl< Base::Scalar >.

Definition at line 35 of file tangent-bundle.hpp.

◆ getBaseSpace()

template<class Base >
const Base & proxsuite::nlp::TangentBundleTpl< Base >::getBaseSpace ( ) const
inline

Definition at line 40 of file tangent-bundle.hpp.

◆ integrate_impl()

template<class Base >
void proxsuite::nlp::TangentBundleTpl< Base >::integrate_impl ( const ConstVectorRef & x,
const ConstVectorRef & v,
VectorRef out ) const
virtual

Perform the manifold integration operation.

Implements proxsuite::nlp::ManifoldAbstractTpl< Base::Scalar >.

◆ difference_impl()

template<class Base >
void proxsuite::nlp::TangentBundleTpl< Base >::difference_impl ( const ConstVectorRef & x0,
const ConstVectorRef & x1,
VectorRef out ) const
virtual

Implementation of the manifold retraction operation.

Implements proxsuite::nlp::ManifoldAbstractTpl< Base::Scalar >.

◆ Jintegrate_impl()

template<class Base >
void proxsuite::nlp::TangentBundleTpl< Base >::Jintegrate_impl ( const ConstVectorRef & x,
const ConstVectorRef & v,
MatrixRef Jout,
int arg ) const
virtual

◆ JintegrateTransport()

template<class Base >
void proxsuite::nlp::TangentBundleTpl< Base >::JintegrateTransport ( const ConstVectorRef & x,
const ConstVectorRef & v,
MatrixRef Jout,
int arg ) const
virtual

Perform the parallel transport operation.

Implements proxsuite::nlp::ManifoldAbstractTpl< Base::Scalar >.

◆ Jdifference_impl()

template<class Base >
void proxsuite::nlp::TangentBundleTpl< Base >::Jdifference_impl ( const ConstVectorRef & x0,
const ConstVectorRef & x1,
MatrixRef Jout,
int arg ) const
virtual

◆ interpolate_impl()

template<class Base >
void proxsuite::nlp::TangentBundleTpl< Base >::interpolate_impl ( const ConstVectorRef & x0,
const ConstVectorRef & x1,
const Scalar & u,
VectorRef out ) const
virtual

Interpolation operation.

Reimplemented from proxsuite::nlp::ManifoldAbstractTpl< Base::Scalar >.

◆ getBasePoint()

template<class Base >
template<typename Point >
Point::ConstSegmentReturnType proxsuite::nlp::TangentBundleTpl< Base >::getBasePoint ( const Point & x) const
inline

Get base point of an element of the tangent bundle. This map is exactly the natural projection.

Definition at line 65 of file tangent-bundle.hpp.

◆ getBasePointWrite()

template<class Base >
template<typename Point >
Point::SegmentReturnType proxsuite::nlp::TangentBundleTpl< Base >::getBasePointWrite ( const Point & x) const
inline

Definition at line 70 of file tangent-bundle.hpp.

◆ getBaseTangent()

template<class Base >
template<typename Tangent >
Tangent::ConstSegmentReturnType proxsuite::nlp::TangentBundleTpl< Base >::getBaseTangent ( const Tangent & v) const
inline

Definition at line 76 of file tangent-bundle.hpp.

◆ getTangentHeadWrite()

template<class Base >
template<typename Tangent >
Tangent::SegmentReturnType proxsuite::nlp::TangentBundleTpl< Base >::getTangentHeadWrite ( const Tangent & v) const
inline

Definition at line 82 of file tangent-bundle.hpp.

◆ getBaseJacobian()

template<class Base >
template<typename Jac >
Eigen::Block< Jac, Eigen::Dynamic, Eigen::Dynamic > proxsuite::nlp::TangentBundleTpl< Base >::getBaseJacobian ( const Jac & J) const
inline

Definition at line 88 of file tangent-bundle.hpp.

Member Data Documentation

◆ base_

template<class Base >
Base proxsuite::nlp::TangentBundleTpl< Base >::base_
protected

Definition at line 14 of file tangent-bundle.hpp.

◆ Options

template<class Base >
int proxsuite::nlp::TangentBundleTpl< Base >::Options = Base::Options
staticconstexpr

Definition at line 19 of file tangent-bundle.hpp.

◆ Scalar

template<class Base >
proxsuite::nlp::TangentBundleTpl< Base >::Scalar

Definition at line 20 of file tangent-bundle.hpp.


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