Public Member Functions | List of all members
corbo::QuadratureRectangleRule Class Reference

Rectangle/midpoint rule (approximates function as constant between two points) More...

#include <quadrature.h>

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

Public Member Functions

bool computeIntermediateControls (const Eigen::Ref< const Eigen::VectorXd > &u1, const Eigen::Ref< const Eigen::VectorXd > &u2, std::vector< Eigen::VectorXd *> &intermediate_u) override
 
DynamicsEvalInterface::Ptr getInstance () const override
 Return a newly created shared instance of the implemented class. More...
 
int getNumIntermediateControls () const override
 
int getNumIntermediatePoints () const override
 
int getNumIntermediateStates () const override
 
bool interpolate (const std::vector< const Eigen::VectorXd *> &x1_points, const std::vector< const Eigen::VectorXd *> &u1_points, const Eigen::VectorXd &u2, const Eigen::VectorXd &x2, double t1, double dt, double dt_interp, const SystemDynamicsInterface &system, bool skip_u2_x2, TimeSeries &ts_x, TimeSeries &ts_u) override
 
bool interpolate (const Eigen::Ref< const Eigen::VectorXd > &x1, const Eigen::Ref< const Eigen::VectorXd > &u1, const Eigen::Ref< const Eigen::VectorXd > &x2, const Eigen::Ref< const Eigen::VectorXd > &u2, double dt, const SystemDynamicsInterface &, const Range &range, std::vector< Eigen::VectorXd > &states, std::vector< Eigen::VectorXd > &controls) override
 
bool isIntermediateControlSubjectToOptim () const override
 
bool isSupportingCompressedStatesMode () const override
 
void quadrature (const std::vector< const Eigen::VectorXd *> &x1_points, const std::vector< const Eigen::VectorXd *> &u1_points, const Eigen::VectorXd &u2, const Eigen::VectorXd &x2, double dt, const SystemDynamicsInterface &system, Eigen::Ref< Eigen::VectorXd > integral_value) override
 Allocate memory for a given state dimension. More...
 
void quadrature (const std::vector< const Eigen::VectorXd *> &x1_points, const std::vector< const Eigen::VectorXd *> &u1_points, const Eigen::VectorXd &u2, const Eigen::VectorXd &x2, double dt, const BinaryFunction &fun, Eigen::Ref< Eigen::VectorXd > integral_value) override
 
void quadrature (const StateVector &x1, const InputVector &u1, const StateVector &x2, double dt, const SystemDynamicsInterface &system, Eigen::Ref< Eigen::VectorXd > integral_value) override
 
void quadrature (const StateVector &x1, const InputVector &u1, const StateVector &x2, double dt, const SystemDynamicsInterface &system, Eigen::Ref< Eigen::VectorXd > integral_value, std::vector< Eigen::VectorXd *> &intermediate_x) override
 
void quadrature (const StateVector &x1, const InputVector &u1, const StateVector &x2, const InputVector &u2, double dt, const SystemDynamicsInterface &system, Eigen::Ref< Eigen::VectorXd > integral_value) override
 
void quadrature (const StateVector &x1, const InputVector &u1, const StateVector &x2, const InputVector &u2, double dt, const SystemDynamicsInterface &system, const std::vector< Eigen::VectorXd *> &intermediate_x, const std::vector< Eigen::VectorXd *> &intermediate_u, Eigen::Ref< Eigen::VectorXd > integral_value, Eigen::Ref< Eigen::VectorXd > interm_x_error) override
 
void quadrature (const StateVector &x1, const InputVector &u1, const StateVector &x2, const InputVector &u2, double dt, const SystemDynamicsInterface &system, const std::vector< Eigen::VectorXd *> &intermediate_u, Eigen::Ref< Eigen::VectorXd > integral_value, std::vector< Eigen::VectorXd *> &intermediate_x) override
 
void quadrature (const StateVector &x1, const InputVector &u1, const StateVector &x2, const InputVector &u2, double dt, const SystemDynamicsInterface &system, Eigen::Ref< Eigen::VectorXd > integral_value, std::vector< Eigen::VectorXd *> &intermediate_x, std::vector< Eigen::VectorXd *> &intermediate_u) override
 
void quadrature (const Eigen::Ref< const Eigen::VectorXd > &x1, const Eigen::Ref< const Eigen::VectorXd > &x2, double dt, const UnaryFunction &fun, Eigen::Ref< Eigen::VectorXd > integral_value) override
 
void quadrature (const Eigen::Ref< const Eigen::VectorXd > &x1, const Eigen::Ref< const Eigen::VectorXd > &x2, double dt, const std::vector< Eigen::VectorXd *> &intermediate_x, const UnaryFunction &fun, Eigen::Ref< Eigen::VectorXd > integral_value) override
 
void quadrature (const Eigen::Ref< const Eigen::VectorXd > &x1, const Eigen::Ref< const Eigen::VectorXd > &x2, double dt, const UnaryFunction &fun, Eigen::Ref< Eigen::VectorXd > integral_value, std::vector< Eigen::VectorXd *> &intermediate_x) override
 
void quadrature (const Eigen::Ref< const Eigen::VectorXd > &x1, const Eigen::Ref< const Eigen::VectorXd > &u1, const Eigen::Ref< const Eigen::VectorXd > &x2, const Eigen::Ref< const Eigen::VectorXd > &u2, double dt, const BinaryFunction &fun, Eigen::Ref< Eigen::VectorXd > integral_value) override
 
void quadrature (const Eigen::Ref< const Eigen::VectorXd > &x1, const Eigen::Ref< const Eigen::VectorXd > &u1, const Eigen::Ref< const Eigen::VectorXd > &x2, const Eigen::Ref< const Eigen::VectorXd > &u2, double dt, const std::vector< Eigen::VectorXd *> &intermediate_x, const std::vector< Eigen::VectorXd *> &intermediate_u, const BinaryFunction &fun, Eigen::Ref< Eigen::VectorXd > integral_value) override
 
void quadrature (const Eigen::Ref< const Eigen::VectorXd > &x1, const Eigen::Ref< const Eigen::VectorXd > &u1, const Eigen::Ref< const Eigen::VectorXd > &x2, const Eigen::Ref< const Eigen::VectorXd > &u2, double dt, const BinaryFunction &fun, Eigen::Ref< Eigen::VectorXd > integral_value, std::vector< Eigen::VectorXd *> &intermediate_x, std::vector< Eigen::VectorXd *> &intermediate_u) override
 
- Public Member Functions inherited from corbo::QuadratureCollocationInterface
void computeEqualityConstraint (const StateVector &x1, const InputVector &u1, const StateVector &x2, double dt, const SystemDynamicsInterface &system, Eigen::Ref< Eigen::VectorXd > error) override
 Compute differentiation error (system dynamics) More...
 
void computeEqualityConstraint (const StateVector &x1, const InputVector &u1, const StateVector &x2, const InputVector &u2, double dt, const SystemDynamicsInterface &system, Eigen::Ref< Eigen::VectorXd > error)
 
void computeEqualityConstraint (const Eigen::Ref< const Eigen::VectorXd > &x1, const Eigen::Ref< const Eigen::VectorXd > &x2, double dt, const UnaryFunction &fun, Eigen::Ref< Eigen::VectorXd > error)
 
virtual ~QuadratureCollocationInterface ()
 Virtual destructor. More...
 
- Public Member Functions inherited from corbo::CollocationInterface
virtual ~CollocationInterface ()
 Virtual destructor. More...
 
- Public Member Functions inherited from corbo::DynamicsEvalInterface
virtual bool interpolate (const std::vector< const Eigen::VectorXd *> &x, const std::vector< const Eigen::VectorXd *> &u, double dt, const SystemDynamicsInterface &system, const Range &range, std::vector< Eigen::VectorXd > &states, std::vector< Eigen::VectorXd > &controls)
 
virtual ~DynamicsEvalInterface ()
 Virtual destructor. More...
 

Additional Inherited Members

- Public Types inherited from corbo::QuadratureCollocationInterface
using BinaryFunction = const std::function< void(const Eigen::VectorXd &, const Eigen::VectorXd &, Eigen::Ref< Eigen::VectorXd >)>
 
using Ptr = std::shared_ptr< QuadratureCollocationInterface >
 
using UnaryFunction = const std::function< void(const Eigen::VectorXd &, Eigen::Ref< Eigen::VectorXd >)>
 
using UPtr = std::unique_ptr< QuadratureCollocationInterface >
 
- Public Types inherited from corbo::CollocationInterface
using InputVector = Eigen::VectorXd
 
using Ptr = std::shared_ptr< CollocationInterface >
 
using StateVector = Eigen::VectorXd
 
using UPtr = std::unique_ptr< CollocationInterface >
 
- Public Types inherited from corbo::DynamicsEvalInterface
using InputVector = Eigen::VectorXd
 
using Ptr = std::shared_ptr< DynamicsEvalInterface >
 
using StateVector = Eigen::VectorXd
 
using UPtr = std::unique_ptr< DynamicsEvalInterface >
 
- Static Public Member Functions inherited from corbo::DynamicsEvalInterface
static Factory< DynamicsEvalInterface > & getFactory ()
 Get access to the accociated factory. More...
 

Detailed Description

Rectangle/midpoint rule (approximates function as constant between two points)

\[ \int_0^{\Delta T} f(t) = \Delta T f(0.5 \Delta T) \]

.

See also
NumericalIntegratorInterface NumericalIntegratorImplicitInterface
Author
Christoph Rösmann (chris.nosp@m.toph.nosp@m..roes.nosp@m.mann.nosp@m.@tu-d.nosp@m.ortm.nosp@m.und.d.nosp@m.e)

Definition at line 48 of file quadrature.h.

Member Function Documentation

◆ computeIntermediateControls()

bool corbo::QuadratureRectangleRule::computeIntermediateControls ( const Eigen::Ref< const Eigen::VectorXd > &  u1,
const Eigen::Ref< const Eigen::VectorXd > &  u2,
std::vector< Eigen::VectorXd *> &  intermediate_u 
)
inlineoverridevirtual

Implements corbo::QuadratureCollocationInterface.

Definition at line 284 of file quadrature.h.

◆ getInstance()

DynamicsEvalInterface::Ptr corbo::QuadratureRectangleRule::getInstance ( ) const
inlineoverridevirtual

Return a newly created shared instance of the implemented class.

Implements corbo::QuadratureCollocationInterface.

Definition at line 52 of file quadrature.h.

◆ getNumIntermediateControls()

int corbo::QuadratureRectangleRule::getNumIntermediateControls ( ) const
inlineoverridevirtual

Implements corbo::QuadratureCollocationInterface.

Definition at line 59 of file quadrature.h.

◆ getNumIntermediatePoints()

int corbo::QuadratureRectangleRule::getNumIntermediatePoints ( ) const
inlineoverridevirtual

Implements corbo::QuadratureCollocationInterface.

Definition at line 57 of file quadrature.h.

◆ getNumIntermediateStates()

int corbo::QuadratureRectangleRule::getNumIntermediateStates ( ) const
inlineoverridevirtual

Implements corbo::QuadratureCollocationInterface.

Definition at line 60 of file quadrature.h.

◆ interpolate() [1/2]

bool corbo::QuadratureRectangleRule::interpolate ( const std::vector< const Eigen::VectorXd *> &  x1_points,
const std::vector< const Eigen::VectorXd *> &  u1_points,
const Eigen::VectorXd &  u2,
const Eigen::VectorXd &  x2,
double  t1,
double  dt,
double  dt_interp,
const SystemDynamicsInterface system,
bool  skip_u2_x2,
TimeSeries ts_x,
TimeSeries ts_u 
)
inlineoverridevirtual

Implements corbo::QuadratureCollocationInterface.

Definition at line 85 of file quadrature.h.

◆ interpolate() [2/2]

bool corbo::QuadratureRectangleRule::interpolate ( const Eigen::Ref< const Eigen::VectorXd > &  x1,
const Eigen::Ref< const Eigen::VectorXd > &  u1,
const Eigen::Ref< const Eigen::VectorXd > &  x2,
const Eigen::Ref< const Eigen::VectorXd > &  u2,
double  dt,
const SystemDynamicsInterface ,
const Range range,
std::vector< Eigen::VectorXd > &  states,
std::vector< Eigen::VectorXd > &  controls 
)
inlineoverridevirtual

Implements corbo::QuadratureCollocationInterface.

Definition at line 246 of file quadrature.h.

◆ isIntermediateControlSubjectToOptim()

bool corbo::QuadratureRectangleRule::isIntermediateControlSubjectToOptim ( ) const
inlineoverridevirtual

Implements corbo::QuadratureCollocationInterface.

Definition at line 56 of file quadrature.h.

◆ isSupportingCompressedStatesMode()

bool corbo::QuadratureRectangleRule::isSupportingCompressedStatesMode ( ) const
inlineoverridevirtual

Implements corbo::QuadratureCollocationInterface.

Definition at line 55 of file quadrature.h.

◆ quadrature() [1/14]

void corbo::QuadratureRectangleRule::quadrature ( const std::vector< const Eigen::VectorXd *> &  x1_points,
const std::vector< const Eigen::VectorXd *> &  u1_points,
const Eigen::VectorXd &  u2,
const Eigen::VectorXd &  x2,
double  dt,
const SystemDynamicsInterface system,
Eigen::Ref< Eigen::VectorXd >  integral_value 
)
inlineoverridevirtual

Allocate memory for a given state dimension.

Remarks
This method is optional and not guaranteed to be called, but if so this might speed up computation.
Parameters
[in]state_dimExpected dimension of the state vector

Implements corbo::QuadratureCollocationInterface.

Definition at line 63 of file quadrature.h.

◆ quadrature() [2/14]

void corbo::QuadratureRectangleRule::quadrature ( const std::vector< const Eigen::VectorXd *> &  x1_points,
const std::vector< const Eigen::VectorXd *> &  u1_points,
const Eigen::VectorXd &  u2,
const Eigen::VectorXd &  x2,
double  dt,
const BinaryFunction fun,
Eigen::Ref< Eigen::VectorXd >  integral_value 
)
inlineoverridevirtual

Implements corbo::QuadratureCollocationInterface.

Definition at line 74 of file quadrature.h.

◆ quadrature() [3/14]

void corbo::QuadratureRectangleRule::quadrature ( const StateVector x1,
const InputVector u1,
const StateVector x2,
double  dt,
const SystemDynamicsInterface system,
Eigen::Ref< Eigen::VectorXd >  integral_value 
)
inlineoverridevirtual

Implements corbo::QuadratureCollocationInterface.

Definition at line 121 of file quadrature.h.

◆ quadrature() [4/14]

void corbo::QuadratureRectangleRule::quadrature ( const StateVector x1,
const InputVector u1,
const StateVector x2,
double  dt,
const SystemDynamicsInterface system,
Eigen::Ref< Eigen::VectorXd >  integral_value,
std::vector< Eigen::VectorXd *> &  intermediate_x 
)
inlineoverridevirtual

Implements corbo::QuadratureCollocationInterface.

Definition at line 132 of file quadrature.h.

◆ quadrature() [5/14]

void corbo::QuadratureRectangleRule::quadrature ( const StateVector x1,
const InputVector u1,
const StateVector x2,
const InputVector u2,
double  dt,
const SystemDynamicsInterface system,
Eigen::Ref< Eigen::VectorXd >  integral_value 
)
inlineoverridevirtual

Implements corbo::QuadratureCollocationInterface.

Definition at line 143 of file quadrature.h.

◆ quadrature() [6/14]

void corbo::QuadratureRectangleRule::quadrature ( const StateVector x1,
const InputVector u1,
const StateVector x2,
const InputVector u2,
double  dt,
const SystemDynamicsInterface system,
const std::vector< Eigen::VectorXd *> &  intermediate_x,
const std::vector< Eigen::VectorXd *> &  intermediate_u,
Eigen::Ref< Eigen::VectorXd >  integral_value,
Eigen::Ref< Eigen::VectorXd >  interm_x_error 
)
inlineoverridevirtual

Implements corbo::QuadratureCollocationInterface.

Definition at line 153 of file quadrature.h.

◆ quadrature() [7/14]

void corbo::QuadratureRectangleRule::quadrature ( const StateVector x1,
const InputVector u1,
const StateVector x2,
const InputVector u2,
double  dt,
const SystemDynamicsInterface system,
const std::vector< Eigen::VectorXd *> &  intermediate_u,
Eigen::Ref< Eigen::VectorXd >  integral_value,
std::vector< Eigen::VectorXd *> &  intermediate_x 
)
inlineoverridevirtual

Implements corbo::QuadratureCollocationInterface.

Definition at line 162 of file quadrature.h.

◆ quadrature() [8/14]

void corbo::QuadratureRectangleRule::quadrature ( const StateVector x1,
const InputVector u1,
const StateVector x2,
const InputVector u2,
double  dt,
const SystemDynamicsInterface system,
Eigen::Ref< Eigen::VectorXd >  integral_value,
std::vector< Eigen::VectorXd *> &  intermediate_x,
std::vector< Eigen::VectorXd *> &  intermediate_u 
)
inlineoverridevirtual

Implements corbo::QuadratureCollocationInterface.

Definition at line 174 of file quadrature.h.

◆ quadrature() [9/14]

void corbo::QuadratureRectangleRule::quadrature ( const Eigen::Ref< const Eigen::VectorXd > &  x1,
const Eigen::Ref< const Eigen::VectorXd > &  x2,
double  dt,
const UnaryFunction fun,
Eigen::Ref< Eigen::VectorXd >  integral_value 
)
inlineoverridevirtual

Implements corbo::QuadratureCollocationInterface.

Definition at line 186 of file quadrature.h.

◆ quadrature() [10/14]

void corbo::QuadratureRectangleRule::quadrature ( const Eigen::Ref< const Eigen::VectorXd > &  x1,
const Eigen::Ref< const Eigen::VectorXd > &  x2,
double  dt,
const std::vector< Eigen::VectorXd *> &  intermediate_x,
const UnaryFunction fun,
Eigen::Ref< Eigen::VectorXd >  integral_value 
)
inlineoverridevirtual

Implements corbo::QuadratureCollocationInterface.

Definition at line 196 of file quadrature.h.

◆ quadrature() [11/14]

void corbo::QuadratureRectangleRule::quadrature ( const Eigen::Ref< const Eigen::VectorXd > &  x1,
const Eigen::Ref< const Eigen::VectorXd > &  x2,
double  dt,
const UnaryFunction fun,
Eigen::Ref< Eigen::VectorXd >  integral_value,
std::vector< Eigen::VectorXd *> &  intermediate_x 
)
inlineoverridevirtual

Implements corbo::QuadratureCollocationInterface.

Definition at line 205 of file quadrature.h.

◆ quadrature() [12/14]

void corbo::QuadratureRectangleRule::quadrature ( const Eigen::Ref< const Eigen::VectorXd > &  x1,
const Eigen::Ref< const Eigen::VectorXd > &  u1,
const Eigen::Ref< const Eigen::VectorXd > &  x2,
const Eigen::Ref< const Eigen::VectorXd > &  u2,
double  dt,
const BinaryFunction fun,
Eigen::Ref< Eigen::VectorXd >  integral_value 
)
inlineoverridevirtual

Implements corbo::QuadratureCollocationInterface.

Definition at line 216 of file quadrature.h.

◆ quadrature() [13/14]

void corbo::QuadratureRectangleRule::quadrature ( const Eigen::Ref< const Eigen::VectorXd > &  x1,
const Eigen::Ref< const Eigen::VectorXd > &  u1,
const Eigen::Ref< const Eigen::VectorXd > &  x2,
const Eigen::Ref< const Eigen::VectorXd > &  u2,
double  dt,
const std::vector< Eigen::VectorXd *> &  intermediate_x,
const std::vector< Eigen::VectorXd *> &  intermediate_u,
const BinaryFunction fun,
Eigen::Ref< Eigen::VectorXd >  integral_value 
)
inlineoverridevirtual

Implements corbo::QuadratureCollocationInterface.

Definition at line 227 of file quadrature.h.

◆ quadrature() [14/14]

void corbo::QuadratureRectangleRule::quadrature ( const Eigen::Ref< const Eigen::VectorXd > &  x1,
const Eigen::Ref< const Eigen::VectorXd > &  u1,
const Eigen::Ref< const Eigen::VectorXd > &  x2,
const Eigen::Ref< const Eigen::VectorXd > &  u2,
double  dt,
const BinaryFunction fun,
Eigen::Ref< Eigen::VectorXd >  integral_value,
std::vector< Eigen::VectorXd *> &  intermediate_x,
std::vector< Eigen::VectorXd *> &  intermediate_u 
)
inlineoverridevirtual

Implements corbo::QuadratureCollocationInterface.

Definition at line 237 of file quadrature.h.


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


control_box_rst
Author(s): Christoph Rösmann
autogenerated on Mon Feb 28 2022 22:08:03