robotoc
robotoc - efficient ROBOT Optimal Control solvers
Loading...
Searching...
No Matches
robotoc::UnconstrSplitBackwardCorrection Class Reference

Split backward correction. More...

#include <unconstr_split_backward_correction.hpp>

Public Member Functions

 UnconstrSplitBackwardCorrection (const Robot &robot)
 Construct split backward correction. More...
 
 UnconstrSplitBackwardCorrection ()
 Default constructor. More...
 
 ~UnconstrSplitBackwardCorrection ()
 Destructor. More...
 
 UnconstrSplitBackwardCorrection (const UnconstrSplitBackwardCorrection &)=default
 Default copy constructor. More...
 
UnconstrSplitBackwardCorrectionoperator= (const UnconstrSplitBackwardCorrection &)=default
 Default copy operator. More...
 
 UnconstrSplitBackwardCorrection (UnconstrSplitBackwardCorrection &&) noexcept=default
 Default move constructor. More...
 
UnconstrSplitBackwardCorrectionoperator= (UnconstrSplitBackwardCorrection &&) noexcept=default
 Default move assign operator. More...
 
void coarseUpdate (const Eigen::MatrixXd &aux_mat_next, const double dt, const SplitKKTMatrix &kkt_matrix, const SplitKKTResidual &kkt_residual, const SplitSolution &s, SplitSolution &s_new)
 Coarse updates the split solution of this time stage. More...
 
void coarseUpdate (const Eigen::Block< Eigen::MatrixXd > &aux_mat_next, const double dt, const SplitKKTMatrix &kkt_matrix, const SplitKKTResidual &kkt_residual, const SplitSolution &s, SplitSolution &s_new)
 Coarse updates the split solution of this time stage. More...
 
void coarseUpdate (const double dt, const SplitKKTMatrix &kkt_matrix, const SplitKKTResidual &kkt_residual, const SplitSolution &s, SplitSolution &s_new)
 Coarse updates the split solution of this time stage. Auxiliary matrix is assumed to zero matrix, i.e., terminal stage. More...
 
const Eigen::Block< const Eigen::MatrixXd > auxMat () const
 Auxiliary matrix of this time stage. More...
 
void backwardCorrectionSerial (const SplitSolution &s_next, const SplitSolution &s_new_next, SplitSolution &s_new)
 Performs the serial part of the backward correction. More...
 
void backwardCorrectionParallel (SplitSolution &s_new)
 Performs the parallel part of the backward correction. More...
 
void forwardCorrectionSerial (const SplitSolution &s_prev, const SplitSolution &s_new_prev, SplitSolution &s_new)
 Performs the serial part of the forward correction. More...
 
void forwardCorrectionParallel (SplitSolution &s_new)
 Performs the parallel part of the forward correction. More...
 

Static Public Member Functions

static void computeDirection (const SplitSolution &s, const SplitSolution &s_new, SplitDirection &d)
 Computes the direction from the results of the forward correction. More...
 

Detailed Description

Split backward correction.

Constructor & Destructor Documentation

◆ UnconstrSplitBackwardCorrection() [1/4]

robotoc::UnconstrSplitBackwardCorrection::UnconstrSplitBackwardCorrection ( const Robot robot)

Construct split backward correction.

Parameters
[in]robotRobot model.

◆ UnconstrSplitBackwardCorrection() [2/4]

robotoc::UnconstrSplitBackwardCorrection::UnconstrSplitBackwardCorrection ( )

Default constructor.

◆ ~UnconstrSplitBackwardCorrection()

robotoc::UnconstrSplitBackwardCorrection::~UnconstrSplitBackwardCorrection ( )

Destructor.

◆ UnconstrSplitBackwardCorrection() [3/4]

robotoc::UnconstrSplitBackwardCorrection::UnconstrSplitBackwardCorrection ( const UnconstrSplitBackwardCorrection )
default

Default copy constructor.

◆ UnconstrSplitBackwardCorrection() [4/4]

robotoc::UnconstrSplitBackwardCorrection::UnconstrSplitBackwardCorrection ( UnconstrSplitBackwardCorrection &&  )
defaultnoexcept

Default move constructor.

Member Function Documentation

◆ auxMat()

const Eigen::Block< const Eigen::MatrixXd > robotoc::UnconstrSplitBackwardCorrection::auxMat ( ) const

Auxiliary matrix of this time stage.

Returns
const reference to the auxiliary matrix of this time stage.

◆ backwardCorrectionParallel()

void robotoc::UnconstrSplitBackwardCorrection::backwardCorrectionParallel ( SplitSolution s_new)

Performs the parallel part of the backward correction.

Parameters
[in,out]s_newCoarse updated split solution of this time stage.

◆ backwardCorrectionSerial()

void robotoc::UnconstrSplitBackwardCorrection::backwardCorrectionSerial ( const SplitSolution s_next,
const SplitSolution s_new_next,
SplitSolution s_new 
)

Performs the serial part of the backward correction.

Parameters
[in]s_nextSplit solution of the next time stage.
[in]s_new_nextCoarse updated split solution of the next time stage.
[in,out]s_newCoarse updated split solution of this time stage.

◆ coarseUpdate() [1/3]

void robotoc::UnconstrSplitBackwardCorrection::coarseUpdate ( const double  dt,
const SplitKKTMatrix kkt_matrix,
const SplitKKTResidual kkt_residual,
const SplitSolution s,
SplitSolution s_new 
)

Coarse updates the split solution of this time stage. Auxiliary matrix is assumed to zero matrix, i.e., terminal stage.

Parameters
[in]dtTime stage of time stage.
[in,out]kkt_matrixSplit KKT matrix of this time stage.
[in]kkt_residualSplit KKT residual of this time stage.
[in]sSplit solution of this time stage.
[in,out]s_newCoarse updated split solution of this time stage.

◆ coarseUpdate() [2/3]

void robotoc::UnconstrSplitBackwardCorrection::coarseUpdate ( const Eigen::Block< Eigen::MatrixXd > &  aux_mat_next,
const double  dt,
const SplitKKTMatrix kkt_matrix,
const SplitKKTResidual kkt_residual,
const SplitSolution s,
SplitSolution s_new 
)

Coarse updates the split solution of this time stage.

Parameters
[in]aux_mat_nextAuxiliary matrix of the next time stage.
[in]dtTime stage of time stage.
[in,out]kkt_matrixSplit KKT matrix of this time stage.
[in]kkt_residualSplit KKT residual of this time stage.
[in]sSplit solution of this time stage.
[in,out]s_newCoarse updated split solution of this time stage.

◆ coarseUpdate() [3/3]

void robotoc::UnconstrSplitBackwardCorrection::coarseUpdate ( const Eigen::MatrixXd &  aux_mat_next,
const double  dt,
const SplitKKTMatrix kkt_matrix,
const SplitKKTResidual kkt_residual,
const SplitSolution s,
SplitSolution s_new 
)

Coarse updates the split solution of this time stage.

Parameters
[in]aux_mat_nextAuxiliary matrix of the next time stage.
[in]dtTime stage of time stage.
[in,out]kkt_matrixSplit KKT matrix of this time stage.
[in]kkt_residualSplit KKT residual of this time stage.
[in]sSplit solution of this time stage.
[in,out]s_newCoarse updated split solution of this time stage.

◆ computeDirection()

static void robotoc::UnconstrSplitBackwardCorrection::computeDirection ( const SplitSolution s,
const SplitSolution s_new,
SplitDirection d 
)
static

Computes the direction from the results of the forward correction.

Parameters
[in]sSplit solution of this time stage.
[in]s_newCoarse updated split solution of this time stage.
[in,out]dSplit direction of this time stage.

◆ forwardCorrectionParallel()

void robotoc::UnconstrSplitBackwardCorrection::forwardCorrectionParallel ( SplitSolution s_new)

Performs the parallel part of the forward correction.

Parameters
[in,out]s_newCoarse updated split solution of this time stage.

◆ forwardCorrectionSerial()

void robotoc::UnconstrSplitBackwardCorrection::forwardCorrectionSerial ( const SplitSolution s_prev,
const SplitSolution s_new_prev,
SplitSolution s_new 
)

Performs the serial part of the forward correction.

Parameters
[in]s_prevSplit solution of the previous time stage.
[in]s_new_prevCoarse updated split solution of the previous time stage.
[in,out]s_newCoarse updated split solution of this time stage.

◆ operator=() [1/2]

UnconstrSplitBackwardCorrection & robotoc::UnconstrSplitBackwardCorrection::operator= ( const UnconstrSplitBackwardCorrection )
default

Default copy operator.

◆ operator=() [2/2]

UnconstrSplitBackwardCorrection & robotoc::UnconstrSplitBackwardCorrection::operator= ( UnconstrSplitBackwardCorrection &&  )
defaultnoexcept

Default move assign operator.


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