Public Types | Public Member Functions | Protected Member Functions | Private Attributes | List of all members
corbo::ConstControlCombinedCompressedCollocationEdge Class Reference

#include <collocation_edges.h>

Inheritance diagram for corbo::ConstControlCombinedCompressedCollocationEdge:
Inheritance graph
[legend]

Public Types

using Ptr = std::shared_ptr< ConstControlCombinedCompressedCollocationEdge >
 
using UPtr = std::unique_ptr< ConstControlCombinedCompressedCollocationEdge >
 
- Public Types inherited from corbo::MixedEdge< VectorVertex, VectorVertex, ScalarVertex, VectorVertex >
using ConstPtr = std::shared_ptr< const MixedEdge >
 
using Ptr = std::shared_ptr< MixedEdge >
 
using UPtr = std::unique_ptr< MixedEdge >
 
using VertexContainer = std::array< VertexInterface *, numVerticesCompileTime >
 Typedef to represent the vertex container. More...
 
- Public Types inherited from corbo::BaseMixedEdge
using Ptr = std::shared_ptr< BaseMixedEdge >
 
using UPtr = std::unique_ptr< BaseMixedEdge >
 
- Public Types inherited from corbo::EdgeInterface
using Ptr = std::shared_ptr< EdgeInterface >
 
using UPtr = std::unique_ptr< EdgeInterface >
 

Public Member Functions

void computeEqualityValues (Eigen::Ref< Eigen::VectorXd > eq_values) override
 
void computeInequalityValues (Eigen::Ref< Eigen::VectorXd > ineq_values) override
 
void computeObjectiveValues (Eigen::Ref< Eigen::VectorXd > obj_values) override
 
 ConstControlCombinedCompressedCollocationEdge (SystemDynamicsInterface::Ptr dynamics, StageCost::Ptr stage_cost, StageEqualityConstraint::Ptr stage_eq, StageInequalityConstraint::Ptr stage_ineq, bool eval_intermediate_constr, int k, VectorVertex &x1, VectorVertex &u1, ScalarVertex &dt, VectorVertex &x2)
 
int getEqualityDimension () const override
 
int getInequalityDimension () const override
 
int getObjectiveDimension () const override
 
bool isEqualityLinear () const override
 
bool isInequalityLinear () const override
 
bool isObjectiveLeastSquaresForm () const override
 
bool isObjectiveLinear () const override
 Return true if the edge is linear (and hence its Hessian is always zero) More...
 
void precompute () override
 
void setCollocationMethod (QuadratureCollocationInterface::Ptr quadrature)
 
virtual ~ConstControlCombinedCompressedCollocationEdge ()
 
- Public Member Functions inherited from corbo::MixedEdge< VectorVertex, VectorVertex, ScalarVertex, VectorVertex >
int getEqualityDimension () const override=0
 
int getInequalityDimension () const override=0
 
int getNumVertices () const override
 Return number of attached vertices. More...
 
int getObjectiveDimension () const override=0
 
const VertexInterfacegetVertex (int idx) const override
 
VertexInterfacegetVertexRaw (int idx) override
 Get access to vertex with index idx (0 <= idx < numVertices) More...
 
 MixedEdge ()=delete
 
int verticesDimension () const override
 Return the combined dimension of all attached vertices (excluding fixed vertex components) More...
 
- Public Member Functions inherited from corbo::BaseMixedEdge
virtual void computeConstraintHessians (int vtx_idx_i, int vtx_idx_j, const Eigen::Ref< const Eigen::MatrixXd > &eq_jacobian_i, const Eigen::Ref< const Eigen::MatrixXd > &ineq_jacobian_i, Eigen::Ref< Eigen::MatrixXd > eq_hessian_ij, Eigen::Ref< Eigen::MatrixXd > ineq_hessian_ij, const double *multipliers_eq=nullptr, const double *multipliers_ineq=nullptr)
 
virtual void computeConstraintHessiansInc (int vtx_idx_i, int vtx_idx_j, const Eigen::Ref< const Eigen::MatrixXd > &eq_jacobian_i, const Eigen::Ref< const Eigen::MatrixXd > &ineq_jacobian_i, Eigen::Ref< Eigen::MatrixXd > eq_hessian_ij, Eigen::Ref< Eigen::MatrixXd > ineq_hessian_ij, const double *multipliers_eq=nullptr, const double *multipliers_ineq=nullptr)
 
virtual void computeConstraintJacobians (int vtx_idx, Eigen::Ref< Eigen::MatrixXd > eq_jacobian, Eigen::Ref< Eigen::MatrixXd > ineq_jacobian, const double *eq_multipliers=nullptr, const double *ineq_multipliers=nullptr)
 
virtual void computeEqualityHessian (int vtx_idx_i, int vtx_idx_j, const Eigen::Ref< const Eigen::MatrixXd > &block_jacobian_i, Eigen::Ref< Eigen::MatrixXd > block_hessian_ij, const double *multipliers=nullptr, double weight=1.0)
 
virtual void computeEqualityHessianInc (int vtx_idx_i, int vtx_idx_j, const Eigen::Ref< const Eigen::MatrixXd > &block_jacobian_i, Eigen::Ref< Eigen::MatrixXd > block_hessian_ij, const double *multipliers=nullptr, double weight=1.0)
 
virtual void computeEqualityJacobian (int vtx_idx, Eigen::Ref< Eigen::MatrixXd > block_jacobian, const double *multipliers=nullptr)
 
virtual void computeHessians (int vtx_idx_i, int vtx_idx_j, const Eigen::Ref< const Eigen::MatrixXd > &obj_jacobian_i, const Eigen::Ref< const Eigen::MatrixXd > &eq_jacobian_i, const Eigen::Ref< const Eigen::MatrixXd > &ineq_jacobian_i, Eigen::Ref< Eigen::MatrixXd > obj_hessian_ij, Eigen::Ref< Eigen::MatrixXd > eq_hessian_ij, Eigen::Ref< Eigen::MatrixXd > ineq_hessian_ij, const double *multipliers_eq=nullptr, const double *multipliers_ineq=nullptr, double weight_obj=1.0)
 
virtual void computeHessiansInc (int vtx_idx_i, int vtx_idx_j, const Eigen::Ref< const Eigen::MatrixXd > &obj_jacobian_i, const Eigen::Ref< const Eigen::MatrixXd > &eq_jacobian_i, const Eigen::Ref< const Eigen::MatrixXd > &ineq_jacobian_i, Eigen::Ref< Eigen::MatrixXd > obj_hessian_ij, Eigen::Ref< Eigen::MatrixXd > eq_hessian_ij, Eigen::Ref< Eigen::MatrixXd > ineq_hessian_ij, const double *multipliers_eq=nullptr, const double *multipliers_ineq=nullptr, double weight_obj=1.0)
 
virtual void computeInequalityHessian (int vtx_idx_i, int vtx_idx_j, const Eigen::Ref< const Eigen::MatrixXd > &block_jacobian_i, Eigen::Ref< Eigen::MatrixXd > block_hessian_ij, const double *multipliers=nullptr, double weight=1.0)
 
virtual void computeInequalityHessianInc (int vtx_idx_i, int vtx_idx_j, const Eigen::Ref< const Eigen::MatrixXd > &block_jacobian_i, Eigen::Ref< Eigen::MatrixXd > block_hessian_ij, const double *multipliers=nullptr, double weight=1.0)
 
virtual void computeInequalityJacobian (int vtx_idx, Eigen::Ref< Eigen::MatrixXd > block_jacobian, const double *multipliers=nullptr)
 
virtual void computeJacobians (int vtx_idx, Eigen::Ref< Eigen::MatrixXd > obj_jacobian, Eigen::Ref< Eigen::MatrixXd > eq_jacobian, Eigen::Ref< Eigen::MatrixXd > ineq_jacobian, const double *obj_multipliers=nullptr, const double *eq_multipliers=nullptr, const double *ineq_multipliers=nullptr)
 
virtual void computeObjectiveHessian (int vtx_idx_i, int vtx_idx_j, const Eigen::Ref< const Eigen::MatrixXd > &block_jacobian_i, Eigen::Ref< Eigen::MatrixXd > block_hessian_ij, const double *multipliers=nullptr, double weight=1.0)
 
virtual void computeObjectiveHessianInc (int vtx_idx_i, int vtx_idx_j, const Eigen::Ref< const Eigen::MatrixXd > &block_jacobian_i, Eigen::Ref< Eigen::MatrixXd > block_hessian_ij, const double *multipliers=nullptr, double weight=1.0)
 
virtual void computeObjectiveJacobian (int vtx_idx, Eigen::Ref< Eigen::MatrixXd > block_jacobian, const double *multipliers=nullptr)
 
virtual double computeSquaredNormOfObjectiveValues ()
 
virtual double computeSumOfObjectiveValues ()
 
void computeValues (Eigen::Ref< Eigen::VectorXd > values) final
 Compute function values. More...
 
int getDimension () const override
 Get dimension of the edge (dimension of the cost-function/constraint value vector) More...
 
void reserveCacheMemory (int num_value_vectors, int num_jacobians)
 
void reserveValuesCacheMemory (int num_obj_values, int num_eq_values, int num_ineq_values)
 
void reserveJacobiansCacheMemory (int num_obj_jacobians, int num_eq_jacobians, int num_ineq_jacobians)
 
void computeObjectiveValuesCached ()
 Call computeObjectiveValues() and store result to the internal cache. More...
 
void computeSquaredNormOfObjectiveValuesCached ()
 compute the specialied squared-norm method for computing the values (note only the first element in the values cache is used) More...
 
void computeEqualityValuesCached ()
 Call computeEqualityValues() and store result to the internal cache. More...
 
void computeInequalityValuesCached ()
 Call computeInequalityValues() and store result to the internal cache. More...
 
EdgeCachegetObjectiveCache ()
 
const EdgeCachegetObjectiveCache () const
 
EdgeCachegetEqualityCache ()
 
const EdgeCachegetEqualityCache () const
 
EdgeCachegetInequalityCache ()
 
const EdgeCachegetInequalityCache () const
 
int getEdgeObjectiveIdx () const
 Retrieve current edge index (warning, this value is determined within the related HyperGraph) More...
 
int getEdgeEqualityIdx () const
 
int getEdgeInequalityIdx () const
 
- Public Member Functions inherited from corbo::EdgeInterface
virtual double computeSquaredNormOfValues ()
 
virtual double computeSumOfValues ()
 
int getNumFiniteVerticesLowerBounds () const
 
int getNumFiniteVerticesUpperBounds () const
 
virtual int getNumVertices () const =0
 Return number of attached vertices. More...
 
virtual int verticesDimension () const =0
 Return the combined dimension of all attached vertices (excluding fixed vertex components) More...
 
virtual ~EdgeInterface ()
 Virtual destructor. More...
 

Protected Member Functions

void activateIntermediateConstraints ()
 

Private Attributes

QuadratureCollocationInterface::Ptr _collocation
 
int _dim_dyn = 0
 
int _dim_eq = 0
 
int _dim_ineq = 0
 
int _dim_int_eq = 0
 
int _dim_int_ineq = 0
 
int _dim_lb_x = 0
 
int _dim_nonint_eq = 0
 
int _dim_nonint_ineq = 0
 
int _dim_obj = 1
 
int _dim_ub_x = 0
 
const ScalarVertex_dt = nullptr
 
SystemDynamicsInterface::Ptr _dynamics
 
Eigen::VectorXd _dynamics_quadrature
 
bool _eval_intermediate_constr = false
 
std::vector< Eigen::VectorXd * > _intermediate_x
 
int _k = 0
 
StageCost::Ptr _stage_cost
 
StageEqualityConstraint::Ptr _stage_eq
 
StageInequalityConstraint::Ptr _stage_ineq
 
const VectorVertex_u1 = nullptr
 
const VectorVertex_x1 = nullptr
 
const VectorVertex_x2 = nullptr
 

Additional Inherited Members

- Static Public Attributes inherited from corbo::MixedEdge< VectorVertex, VectorVertex, ScalarVertex, VectorVertex >
static constexpr const int numVerticesCompileTime
 Return number of vertices at compile-time. More...
 
- Protected Attributes inherited from corbo::MixedEdge< VectorVertex, VectorVertex, ScalarVertex, VectorVertex >
const VertexContainer _vertices
 Vertex container. More...
 
- Protected Attributes inherited from corbo::BaseMixedEdge
int _edge_idx_obj = 0
 
int _edge_idx_eq = 0
 
int _edge_idx_ineq = 0
 
EdgeCache _objective_cache
 
EdgeCache _equality_cache
 
EdgeCache _inequality_cache
 

Detailed Description

Definition at line 573 of file collocation_edges.h.

Member Typedef Documentation

◆ Ptr

Definition at line 576 of file collocation_edges.h.

◆ UPtr

Definition at line 577 of file collocation_edges.h.

Constructor & Destructor Documentation

◆ ConstControlCombinedCompressedCollocationEdge()

corbo::ConstControlCombinedCompressedCollocationEdge::ConstControlCombinedCompressedCollocationEdge ( SystemDynamicsInterface::Ptr  dynamics,
StageCost::Ptr  stage_cost,
StageEqualityConstraint::Ptr  stage_eq,
StageInequalityConstraint::Ptr  stage_ineq,
bool  eval_intermediate_constr,
int  k,
VectorVertex x1,
VectorVertex u1,
ScalarVertex dt,
VectorVertex x2 
)
inlineexplicit

Definition at line 579 of file collocation_edges.h.

◆ ~ConstControlCombinedCompressedCollocationEdge()

virtual corbo::ConstControlCombinedCompressedCollocationEdge::~ConstControlCombinedCompressedCollocationEdge ( )
inlinevirtual

Definition at line 607 of file collocation_edges.h.

Member Function Documentation

◆ activateIntermediateConstraints()

void corbo::ConstControlCombinedCompressedCollocationEdge::activateIntermediateConstraints ( )
inlineprotected

Definition at line 740 of file collocation_edges.h.

◆ computeEqualityValues()

void corbo::ConstControlCombinedCompressedCollocationEdge::computeEqualityValues ( Eigen::Ref< Eigen::VectorXd >  eq_values)
inlineoverridevirtual

◆ computeInequalityValues()

void corbo::ConstControlCombinedCompressedCollocationEdge::computeInequalityValues ( Eigen::Ref< Eigen::VectorXd >  ineq_values)
inlineoverridevirtual

◆ computeObjectiveValues()

void corbo::ConstControlCombinedCompressedCollocationEdge::computeObjectiveValues ( Eigen::Ref< Eigen::VectorXd >  obj_values)
inlineoverridevirtual

◆ getEqualityDimension()

int corbo::ConstControlCombinedCompressedCollocationEdge::getEqualityDimension ( ) const
inlineoverridevirtual

Implements corbo::BaseMixedEdge.

Definition at line 615 of file collocation_edges.h.

◆ getInequalityDimension()

int corbo::ConstControlCombinedCompressedCollocationEdge::getInequalityDimension ( ) const
inlineoverridevirtual

Implements corbo::BaseMixedEdge.

Definition at line 616 of file collocation_edges.h.

◆ getObjectiveDimension()

int corbo::ConstControlCombinedCompressedCollocationEdge::getObjectiveDimension ( ) const
inlineoverridevirtual

Implements corbo::BaseMixedEdge.

Definition at line 613 of file collocation_edges.h.

◆ isEqualityLinear()

bool corbo::ConstControlCombinedCompressedCollocationEdge::isEqualityLinear ( ) const
inlineoverridevirtual

Reimplemented from corbo::BaseMixedEdge.

Definition at line 620 of file collocation_edges.h.

◆ isInequalityLinear()

bool corbo::ConstControlCombinedCompressedCollocationEdge::isInequalityLinear ( ) const
inlineoverridevirtual

Reimplemented from corbo::BaseMixedEdge.

Definition at line 621 of file collocation_edges.h.

◆ isObjectiveLeastSquaresForm()

bool corbo::ConstControlCombinedCompressedCollocationEdge::isObjectiveLeastSquaresForm ( ) const
inlineoverridevirtual

Implements corbo::BaseMixedEdge.

Definition at line 625 of file collocation_edges.h.

◆ isObjectiveLinear()

bool corbo::ConstControlCombinedCompressedCollocationEdge::isObjectiveLinear ( ) const
inlineoverridevirtual

Return true if the edge is linear (and hence its Hessian is always zero)

Reimplemented from corbo::BaseMixedEdge.

Definition at line 619 of file collocation_edges.h.

◆ precompute()

void corbo::ConstControlCombinedCompressedCollocationEdge::precompute ( )
inlineoverridevirtual

◆ setCollocationMethod()

void corbo::ConstControlCombinedCompressedCollocationEdge::setCollocationMethod ( QuadratureCollocationInterface::Ptr  quadrature)
inline

Definition at line 730 of file collocation_edges.h.

Member Data Documentation

◆ _collocation

QuadratureCollocationInterface::Ptr corbo::ConstControlCombinedCompressedCollocationEdge::_collocation
private

Definition at line 762 of file collocation_edges.h.

◆ _dim_dyn

int corbo::ConstControlCombinedCompressedCollocationEdge::_dim_dyn = 0
private

Definition at line 773 of file collocation_edges.h.

◆ _dim_eq

int corbo::ConstControlCombinedCompressedCollocationEdge::_dim_eq = 0
private

Definition at line 769 of file collocation_edges.h.

◆ _dim_ineq

int corbo::ConstControlCombinedCompressedCollocationEdge::_dim_ineq = 0
private

Definition at line 771 of file collocation_edges.h.

◆ _dim_int_eq

int corbo::ConstControlCombinedCompressedCollocationEdge::_dim_int_eq = 0
private

Definition at line 770 of file collocation_edges.h.

◆ _dim_int_ineq

int corbo::ConstControlCombinedCompressedCollocationEdge::_dim_int_ineq = 0
private

Definition at line 772 of file collocation_edges.h.

◆ _dim_lb_x

int corbo::ConstControlCombinedCompressedCollocationEdge::_dim_lb_x = 0
private

Definition at line 778 of file collocation_edges.h.

◆ _dim_nonint_eq

int corbo::ConstControlCombinedCompressedCollocationEdge::_dim_nonint_eq = 0
private

Definition at line 775 of file collocation_edges.h.

◆ _dim_nonint_ineq

int corbo::ConstControlCombinedCompressedCollocationEdge::_dim_nonint_ineq = 0
private

Definition at line 776 of file collocation_edges.h.

◆ _dim_obj

int corbo::ConstControlCombinedCompressedCollocationEdge::_dim_obj = 1
private

Definition at line 768 of file collocation_edges.h.

◆ _dim_ub_x

int corbo::ConstControlCombinedCompressedCollocationEdge::_dim_ub_x = 0
private

Definition at line 779 of file collocation_edges.h.

◆ _dt

const ScalarVertex* corbo::ConstControlCombinedCompressedCollocationEdge::_dt = nullptr
private

Definition at line 791 of file collocation_edges.h.

◆ _dynamics

SystemDynamicsInterface::Ptr corbo::ConstControlCombinedCompressedCollocationEdge::_dynamics
private

Definition at line 761 of file collocation_edges.h.

◆ _dynamics_quadrature

Eigen::VectorXd corbo::ConstControlCombinedCompressedCollocationEdge::_dynamics_quadrature
private

Definition at line 785 of file collocation_edges.h.

◆ _eval_intermediate_constr

bool corbo::ConstControlCombinedCompressedCollocationEdge::_eval_intermediate_constr = false
private

Definition at line 783 of file collocation_edges.h.

◆ _intermediate_x

std::vector<Eigen::VectorXd*> corbo::ConstControlCombinedCompressedCollocationEdge::_intermediate_x
private

Definition at line 786 of file collocation_edges.h.

◆ _k

int corbo::ConstControlCombinedCompressedCollocationEdge::_k = 0
private

Definition at line 781 of file collocation_edges.h.

◆ _stage_cost

StageCost::Ptr corbo::ConstControlCombinedCompressedCollocationEdge::_stage_cost
private

Definition at line 764 of file collocation_edges.h.

◆ _stage_eq

StageEqualityConstraint::Ptr corbo::ConstControlCombinedCompressedCollocationEdge::_stage_eq
private

Definition at line 765 of file collocation_edges.h.

◆ _stage_ineq

StageInequalityConstraint::Ptr corbo::ConstControlCombinedCompressedCollocationEdge::_stage_ineq
private

Definition at line 766 of file collocation_edges.h.

◆ _u1

const VectorVertex* corbo::ConstControlCombinedCompressedCollocationEdge::_u1 = nullptr
private

Definition at line 789 of file collocation_edges.h.

◆ _x1

const VectorVertex* corbo::ConstControlCombinedCompressedCollocationEdge::_x1 = nullptr
private

Definition at line 788 of file collocation_edges.h.

◆ _x2

const VectorVertex* corbo::ConstControlCombinedCompressedCollocationEdge::_x2 = nullptr
private

Definition at line 790 of file collocation_edges.h.


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


control_box_rst
Author(s): Christoph Rösmann
autogenerated on Wed Mar 2 2022 00:07:20