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

Standard Euclidean vector space. More...

#include <proxsuite-nlp/modelling/spaces/vector-space.hpp>

Inheritance diagram for proxsuite::nlp::VectorSpaceTpl< _Scalar, _Dim, _Options >:
[legend]
Collaboration diagram for proxsuite::nlp::VectorSpaceTpl< _Scalar, _Dim, _Options >:
[legend]

Public Types

enum  { Dim = _Dim , Options = _Options }
 
using Scalar = _Scalar
 
using Base = ManifoldAbstractTpl<Scalar, Options>
 
- Public Types inherited from proxsuite::nlp::ManifoldAbstractTpl< _Scalar, _Options >
using Scalar = _Scalar
 
using TangentSpaceType = VectorSpaceTpl<Scalar, Eigen::Dynamic, Options>
 Typedef for the tangent space, as a manifold.
 

Public Member Functions

template<int N = Dim, typename = typename std::enable_if_t<N == Eigen::Dynamic>>
 VectorSpaceTpl (const int dim)
 Default constructor where the dimension is supplied.
 
template<int N = Dim, typename = typename std::enable_if_t<N != Eigen::Dynamic>>
 VectorSpaceTpl ()
 Default constructor without arguments.
 
int nx () const
 Get manifold representation dimension.
 
int ndx () const
 Get manifold tangent space dimension.
 
implementations
void integrate_impl (const ConstVectorRef &x, const ConstVectorRef &v, VectorRef out) const
 Perform the manifold integration operation.
 
void Jintegrate_impl (const ConstVectorRef &, const ConstVectorRef &, MatrixRef Jout, int) const
 
void JintegrateTransport (const ConstVectorRef &, const ConstVectorRef &, MatrixRef, int) const
 Perform the parallel transport operation.
 
void difference_impl (const ConstVectorRef &x0, const ConstVectorRef &x1, VectorRef out) const
 Implementation of the manifold retraction operation.
 
void Jdifference_impl (const ConstVectorRef &, const ConstVectorRef &, MatrixRef Jout, int arg) const
 
void interpolate_impl (const ConstVectorRef &x0, const ConstVectorRef &x1, const Scalar &u, VectorRef out) const
 Interpolation operation.
 
- Public Member Functions inherited from proxsuite::nlp::ManifoldAbstractTpl< _Scalar, _Options >
virtual ~ManifoldAbstractTpl ()=default
 
virtual VectorXs neutral () const
 Get the neutral element \(e \in M\) from the manifold (if this makes sense).
 
virtual VectorXs rand () const
 Sample a random point \(x \in M\) on the manifold.
 
virtual bool isNormalized (const ConstVectorRef &) const
 Check if the input vector x is a viable element of the manifold.
 
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
 
int dim_
 
- Public Attributes inherited from proxsuite::nlp::ManifoldAbstractTpl< _Scalar, _Options >
 Scalar
 

Additional Inherited Members

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

Detailed Description

template<typename _Scalar, int _Dim, int _Options>
struct proxsuite::nlp::VectorSpaceTpl< _Scalar, _Dim, _Options >

Standard Euclidean vector space.

Definition at line 12 of file vector-space.hpp.

Member Typedef Documentation

◆ Scalar

template<typename _Scalar , int _Dim, int _Options>
using proxsuite::nlp::VectorSpaceTpl< _Scalar, _Dim, _Options >::Scalar = _Scalar

Definition at line 13 of file vector-space.hpp.

◆ Base

template<typename _Scalar , int _Dim, int _Options>
using proxsuite::nlp::VectorSpaceTpl< _Scalar, _Dim, _Options >::Base = ManifoldAbstractTpl<Scalar, Options>

Definition at line 15 of file vector-space.hpp.

Member Enumeration Documentation

◆ anonymous enum

template<typename _Scalar , int _Dim, int _Options>
anonymous enum
Enumerator
Dim 
Options 

Definition at line 14 of file vector-space.hpp.

Constructor & Destructor Documentation

◆ VectorSpaceTpl() [1/2]

template<typename _Scalar , int _Dim, int _Options>
template<int N = Dim, typename = typename std::enable_if_t<N == Eigen::Dynamic>>
proxsuite::nlp::VectorSpaceTpl< _Scalar, _Dim, _Options >::VectorSpaceTpl ( const int dim)
inline

Default constructor where the dimension is supplied.

Definition at line 23 of file vector-space.hpp.

◆ VectorSpaceTpl() [2/2]

template<typename _Scalar , int _Dim, int _Options>
template<int N = Dim, typename = typename std::enable_if_t<N != Eigen::Dynamic>>
proxsuite::nlp::VectorSpaceTpl< _Scalar, _Dim, _Options >::VectorSpaceTpl ( )
inline

Default constructor without arguments.

This constructor is disabled for the dynamic-sized vectors.

Definition at line 30 of file vector-space.hpp.

Member Function Documentation

◆ nx()

template<typename _Scalar , int _Dim, int _Options>
int proxsuite::nlp::VectorSpaceTpl< _Scalar, _Dim, _Options >::nx ( ) const
inlinevirtual

Get manifold representation dimension.

Implements proxsuite::nlp::ManifoldAbstractTpl< _Scalar, _Options >.

Definition at line 32 of file vector-space.hpp.

◆ ndx()

template<typename _Scalar , int _Dim, int _Options>
int proxsuite::nlp::VectorSpaceTpl< _Scalar, _Dim, _Options >::ndx ( ) const
inlinevirtual

Get manifold tangent space dimension.

Implements proxsuite::nlp::ManifoldAbstractTpl< _Scalar, _Options >.

Definition at line 33 of file vector-space.hpp.

◆ integrate_impl()

template<typename _Scalar , int _Dim, int _Options>
void proxsuite::nlp::VectorSpaceTpl< _Scalar, _Dim, _Options >::integrate_impl ( const ConstVectorRef & x,
const ConstVectorRef & v,
VectorRef out ) const
inlinevirtual

Perform the manifold integration operation.

Implements proxsuite::nlp::ManifoldAbstractTpl< _Scalar, _Options >.

Definition at line 39 of file vector-space.hpp.

◆ Jintegrate_impl()

template<typename _Scalar , int _Dim, int _Options>
void proxsuite::nlp::VectorSpaceTpl< _Scalar, _Dim, _Options >::Jintegrate_impl ( const ConstVectorRef & ,
const ConstVectorRef & ,
MatrixRef Jout,
int  ) const
inlinevirtual

◆ JintegrateTransport()

template<typename _Scalar , int _Dim, int _Options>
void proxsuite::nlp::VectorSpaceTpl< _Scalar, _Dim, _Options >::JintegrateTransport ( const ConstVectorRef & x,
const ConstVectorRef & v,
MatrixRef Jout,
int arg ) const
inlinevirtual

Perform the parallel transport operation.

Implements proxsuite::nlp::ManifoldAbstractTpl< _Scalar, _Options >.

Definition at line 49 of file vector-space.hpp.

◆ difference_impl()

template<typename _Scalar , int _Dim, int _Options>
void proxsuite::nlp::VectorSpaceTpl< _Scalar, _Dim, _Options >::difference_impl ( const ConstVectorRef & x0,
const ConstVectorRef & x1,
VectorRef out ) const
inlinevirtual

Implementation of the manifold retraction operation.

Implements proxsuite::nlp::ManifoldAbstractTpl< _Scalar, _Options >.

Definition at line 54 of file vector-space.hpp.

◆ Jdifference_impl()

template<typename _Scalar , int _Dim, int _Options>
void proxsuite::nlp::VectorSpaceTpl< _Scalar, _Dim, _Options >::Jdifference_impl ( const ConstVectorRef & ,
const ConstVectorRef & ,
MatrixRef Jout,
int arg ) const
inlinevirtual

◆ interpolate_impl()

template<typename _Scalar , int _Dim, int _Options>
void proxsuite::nlp::VectorSpaceTpl< _Scalar, _Dim, _Options >::interpolate_impl ( const ConstVectorRef & x0,
const ConstVectorRef & x1,
const Scalar & u,
VectorRef out ) const
inlinevirtual

Interpolation operation.

Reimplemented from proxsuite::nlp::ManifoldAbstractTpl< _Scalar, _Options >.

Definition at line 73 of file vector-space.hpp.

Member Data Documentation

◆ Scalar

template<typename _Scalar , int _Dim, int _Options>
proxsuite::nlp::VectorSpaceTpl< _Scalar, _Dim, _Options >::Scalar

Definition at line 16 of file vector-space.hpp.

◆ dim_

template<typename _Scalar , int _Dim, int _Options>
int proxsuite::nlp::VectorSpaceTpl< _Scalar, _Dim, _Options >::dim_

Definition at line 18 of file vector-space.hpp.


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