humoto
Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
humoto::constraints::ConstraintsASB< t_Base > Class Template Reference

Detailed Description

template<class t_Base>
class humoto::constraints::ConstraintsASB< t_Base >

Constraints 'A*S*x = b'.

Template Parameters
t_BaseBase class (humoto::constraints::ConstraintsBase or humoto::TaskBase)

Definition at line 433 of file constraints.h.

#include <constraints.h>

Inheritance diagram for humoto::constraints::ConstraintsASB< t_Base >:
Inheritance graph

Public Member Functions

void addATAandATb (Eigen::MatrixXd &H, Eigen::VectorXd &g) const
 Compute 'A^T * A' for general equality constaints and save or add the result to H. Compute 'A^T * b' for general equality constaints and save or add the result to g. More...
 
void checkConsistency () const
 Check consistency of the constraints. More...
 
void computeViolations (ViolationsConstraints &violations, const Location &location, const Solution &solution) const
 Compute violations given a solution vector. More...
 
void copyBodyTo (Eigen::MatrixXd &A, const Location &location) const
 Copy body to the given matrix. More...
 
void copyBoundsTo (Eigen::VectorXd &lb, Eigen::VectorXd &ub, const Location &location) const
 Copy bounds to given vectors. More...
 
void copyNegativeBodyTo (Eigen::MatrixXd &A, const Location &location) const
 Copy body to the given matrix. More...
 
std::size_t copyTo (ContainerALU &container, const std::size_t constraints_offset) const
 Set constraints. More...
 
std::size_t copyTo (ContainerAB &container, const std::size_t constraints_offset) const
 Set constraints. More...
 
void determineActiveSet (ActiveSetConstraints &active_set, const Location &location, const Solution &solution) const
 Determine active set given a solution vector. More...
 
Eigen::MatrixXd & getA ()
 Get matrix A from general constraints: 'A*x = b', 'lb <= A*x <= ub'. More...
 
const Eigen::MatrixXd & getA () const
 Get matrix A from general constraints: 'A*x = b', 'lb <= A*x <= ub'. More...
 
void getATAandATb (Eigen::MatrixXd &H, Eigen::VectorXd &g) const
 Compute 'A^T * A' for general equality constaints and save or add the result to H. Compute 'A^T * b' for general equality constaints and save or add the result to g. More...
 
Eigen::VectorXd & getB ()
 Get vector b from equalities: 'A*x = b' or 'x = b'. More...
 
const Eigen::VectorXd & getB () const
 Get vector b from equalities: 'A*x = b' or 'x = b'. More...
 
std::size_t getNumberOfConstraints () const
 Returns number of constraints in the task. More...
 
std::ptrdiff_t getOffset () const
 Get offset of body part in the constriaints. More...
 
double getProduct (const std::size_t i, const Eigen::VectorXd &vector) const
 Compute A(i,:) * vector. More...
 
ConstraintType::Type getType () const
 Returns type of the constraints. More...
 
void setOffset (const std::ptrdiff_t offset)
 Set offset of body part in the constriaints. More...
 

Protected Member Functions

 ConstraintsASB ()
 
 ~ConstraintsASB ()
 Protected destructor: prevent destruction of the child classes through a base pointer. More...
 
void addATA (Eigen::MatrixXd &H) const
 Compute 'A^T * A' for general equality constaints and save or add the result to H. More...
 
void copyEqualityBoundsTo (Eigen::VectorXd &b, const Location &location) const
 Copy b. More...
 
void getATA (Eigen::MatrixXd &H) const
 Compute 'A^T * A' for general equality constaints and save or add the result to H. More...
 
void logBody (humoto::Logger &logger, const LogEntryName &parent=LogEntryName(), const std::string &name="constraints") const
 Log body. More...
 
void logBounds (humoto::Logger &logger, const LogEntryName &parent=LogEntryName(), const std::string &name="constraints") const
 Log bounds. More...
 
void resetBody (const std::size_t number_of_constraints, const bool initialize_matrices=false)
 Initialize A. More...
 
void resetBounds (const std::size_t number_of_constraints=0, const bool initialize_matrices=false)
 Reset bounds of constraints (b, lb, ub) More...
 

Protected Attributes

Eigen::MatrixXd A_
 
Eigen::VectorXd b_
 
std::ptrdiff_t offset_
 

Constructor & Destructor Documentation

◆ ~ConstraintsASB()

template<class t_Base>
humoto::constraints::ConstraintsASB< t_Base >::~ConstraintsASB ( )
inlineprotected

Protected destructor: prevent destruction of the child classes through a base pointer.

Definition at line 440 of file constraints.h.

◆ ConstraintsASB()

template<class t_Base>
humoto::constraints::ConstraintsASB< t_Base >::ConstraintsASB ( )
inlineprotected

Definition at line 441 of file constraints.h.

Member Function Documentation

◆ addATA()

void humoto::constraints::BodyASMixin< BoundsBMixin< t_Base > >::addATA ( Eigen::MatrixXd &  H) const
inlineprotectedinherited

Compute 'A^T * A' for general equality constaints and save or add the result to H.

Parameters
[in,out]Hleft lower triangular part of the result.
Attention
Only the left lower triangular part of H is formed. Apply appropriate conversion with etools::convertLLTtoSymmetric() before using H.

Definition at line 641 of file constraints_mixins.h.

◆ addATAandATb()

template<class t_Base>
void humoto::constraints::ConstraintsASB< t_Base >::addATAandATb ( Eigen::MatrixXd &  H,
Eigen::VectorXd &  g 
) const
inline

Compute 'A^T * A' for general equality constaints and save or add the result to H. Compute 'A^T * b' for general equality constaints and save or add the result to g.

Parameters
[in,out]Hleft lower triangular part of the result.
[in,out]gresult
Attention
Only the left lower triangular part of H is formed. Apply appropriate conversion with etools::convertLLTtoSymmetric() before using H.

Definition at line 485 of file constraints.h.

◆ checkConsistency()

template<class t_Base>
void humoto::constraints::ConstraintsASB< t_Base >::checkConsistency ( ) const
inline

Check consistency of the constraints.

Definition at line 460 of file constraints.h.

◆ computeViolations()

void humoto::constraints::ViolationsComputationBMixin< ActiveSetDeterminationBMixin< BodyASMixin< BoundsBMixin< t_Base > > > >::computeViolations ( ViolationsConstraints violations,
const Location location,
const Solution solution 
) const
inlineinherited

Compute violations given a solution vector.

Parameters
[in,out]violationsviolations
[in]locationlocation of the constraints in the active set
[in]solutionsolution vector

Definition at line 1333 of file constraints_mixins.h.

◆ copyBodyTo()

void humoto::constraints::BodyASMixin< BoundsBMixin< t_Base > >::copyBodyTo ( Eigen::MatrixXd &  A,
const Location location 
) const
inlineinherited

Copy body to the given matrix.

Parameters
[in]A
[in]locationoffset and length

Definition at line 689 of file constraints_mixins.h.

◆ copyBoundsTo()

template<class t_Base>
void humoto::constraints::BoundsBMixin< t_Base >::copyBoundsTo ( Eigen::VectorXd &  lb,
Eigen::VectorXd &  ub,
const Location location 
) const
inlineinherited

Copy bounds to given vectors.

Parameters
[in]lb
[in]ub
[in]locationoffset and length

Definition at line 190 of file constraints_mixins.h.

◆ copyEqualityBoundsTo()

template<class t_Base>
void humoto::constraints::BoundsBMixin< t_Base >::copyEqualityBoundsTo ( Eigen::VectorXd &  b,
const Location location 
) const
inlineprotectedinherited

Copy b.

Parameters
[in,out]b
[in]location

Definition at line 163 of file constraints_mixins.h.

◆ copyNegativeBodyTo()

void humoto::constraints::BodyASMixin< BoundsBMixin< t_Base > >::copyNegativeBodyTo ( Eigen::MatrixXd &  A,
const Location location 
) const
inlineinherited

Copy body to the given matrix.

Parameters
[in]A
[in]locationoffset and length

Definition at line 705 of file constraints_mixins.h.

◆ copyTo() [1/2]

std::size_t humoto::constraints::CopyAnyToALUMixin< CopyEqualityToABMixin< ViolationsComputationBMixin< ActiveSetDeterminationBMixin< BodyASMixin< BoundsBMixin< t_Base > > > > > >::copyTo ( ContainerALU container,
const std::size_t  constraints_offset 
) const
inlineinherited

Set constraints.

Parameters
[in,out]containernew constraints
[in]constraints_offsetfirst row offset
Returns
offset of the end of added constraints

Definition at line 615 of file constraints_base.h.

◆ copyTo() [2/2]

std::size_t humoto::constraints::CopyEqualityToABMixin< ViolationsComputationBMixin< ActiveSetDeterminationBMixin< BodyASMixin< BoundsBMixin< t_Base > > > > >::copyTo ( ContainerAB container,
const std::size_t  constraints_offset 
) const
inlineinherited

Set constraints.

Parameters
[in,out]containernew constraints
[in]constraints_offsetfirst row offset
Returns
offset of the end of added constraints

Definition at line 777 of file constraints_base.h.

◆ determineActiveSet()

void humoto::constraints::ActiveSetDeterminationBMixin< BodyASMixin< BoundsBMixin< t_Base > > >::determineActiveSet ( ActiveSetConstraints active_set,
const Location location,
const Solution solution 
) const
inlineinherited

Determine active set given a solution vector.

Parameters
[in,out]active_setactive set
[in]locationlocation of the constraints in the active set
[in]solutionsolution vector

Definition at line 1187 of file constraints_mixins.h.

◆ getA() [1/2]

Eigen::MatrixXd& humoto::constraints::BodyASMixin< BoundsBMixin< t_Base > >::getA ( )
inlineinherited

Get matrix A from general constraints: 'A*x = b', 'lb <= A*x <= ub'.

Returns
matrix A

Definition at line 654 of file constraints_mixins.h.

◆ getA() [2/2]

const Eigen::MatrixXd& humoto::constraints::BodyASMixin< BoundsBMixin< t_Base > >::getA ( ) const
inlineinherited

Get matrix A from general constraints: 'A*x = b', 'lb <= A*x <= ub'.

Returns
matrix A

Definition at line 660 of file constraints_mixins.h.

◆ getATA()

void humoto::constraints::BodyASMixin< BoundsBMixin< t_Base > >::getATA ( Eigen::MatrixXd &  H) const
inlineprotectedinherited

Compute 'A^T * A' for general equality constaints and save or add the result to H.

Parameters
[in,out]Hleft lower triangular part of the result.
Attention
Only the left lower triangular part of H is formed. Apply appropriate conversion with etools::convertLLTtoSymmetric() before using H.

Definition at line 634 of file constraints_mixins.h.

◆ getATAandATb()

template<class t_Base>
void humoto::constraints::ConstraintsASB< t_Base >::getATAandATb ( Eigen::MatrixXd &  H,
Eigen::VectorXd &  g 
) const
inline

Compute 'A^T * A' for general equality constaints and save or add the result to H. Compute 'A^T * b' for general equality constaints and save or add the result to g.

Parameters
[in,out]Hleft lower triangular part of the result.
[in,out]gresult
Attention
Only the left lower triangular part of H is formed. Apply appropriate conversion with etools::convertLLTtoSymmetric() before using H.

Definition at line 472 of file constraints.h.

◆ getB() [1/2]

template<class t_Base>
Eigen::VectorXd& humoto::constraints::BoundsBMixin< t_Base >::getB ( )
inlineinherited

Get vector b from equalities: 'A*x = b' or 'x = b'.

Returns
Vector b.

Definition at line 176 of file constraints_mixins.h.

◆ getB() [2/2]

template<class t_Base>
const Eigen::VectorXd& humoto::constraints::BoundsBMixin< t_Base >::getB ( ) const
inlineinherited

Get vector b from equalities: 'A*x = b' or 'x = b'.

Returns
Vector b.

Definition at line 183 of file constraints_mixins.h.

◆ getNumberOfConstraints()

std::size_t humoto::constraints::BodyASMixin< BoundsBMixin< t_Base > >::getNumberOfConstraints ( ) const
inlineinherited

Returns number of constraints in the task.

Returns
number of constraints

Definition at line 721 of file constraints_mixins.h.

◆ getOffset()

std::ptrdiff_t humoto::constraints::BodyASMixin< BoundsBMixin< t_Base > >::getOffset ( ) const
inlineinherited

Get offset of body part in the constriaints.

Returns
offset

Definition at line 671 of file constraints_mixins.h.

◆ getProduct()

double humoto::constraints::BodyASMixin< BoundsBMixin< t_Base > >::getProduct ( const std::size_t  i,
const Eigen::VectorXd &  vector 
) const
inlineinherited

Compute A(i,:) * vector.

Parameters
[in]irow index
[in]vectorvector
Returns
result of multiplication

Definition at line 728 of file constraints_mixins.h.

◆ getType()

template<class t_Base>
ConstraintType::Type humoto::constraints::ConstraintsASB< t_Base >::getType ( ) const
inline

Returns type of the constraints.

Returns
type of the constraints

Definition at line 453 of file constraints.h.

◆ logBody()

void humoto::constraints::BodyASMixin< BoundsBMixin< t_Base > >::logBody ( humoto::Logger logger,
const LogEntryName parent = LogEntryName(),
const std::string &  name = "constraints" 
) const
inlineprotectedinherited

Log body.

Parameters
[in,out]loggerlogger
[in]parentparent
[in]namename

Definition at line 623 of file constraints_mixins.h.

◆ logBounds()

template<class t_Base>
void humoto::constraints::BoundsBMixin< t_Base >::logBounds ( humoto::Logger logger,
const LogEntryName parent = LogEntryName(),
const std::string &  name = "constraints" 
) const
inlineprotectedinherited

Log bounds.

Parameters
[in,out]loggerlogger
[in]parentparent
[in]namename

Definition at line 149 of file constraints_mixins.h.

◆ resetBody()

void humoto::constraints::BodyASMixin< BoundsBMixin< t_Base > >::resetBody ( const std::size_t  number_of_constraints,
const bool  initialize_matrices = false 
)
inlineprotectedinherited

Initialize A.

Parameters
[in]number_of_constraintsnumber of constraints
[in]initialize_matricesinitialize matrices using defaults

Initialization:

  • A is filled with zeros

Definition at line 608 of file constraints_mixins.h.

◆ resetBounds()

template<class t_Base>
void humoto::constraints::BoundsBMixin< t_Base >::resetBounds ( const std::size_t  number_of_constraints = 0,
const bool  initialize_matrices = false 
)
inlineprotectedinherited

Reset bounds of constraints (b, lb, ub)

Parameters
[in]number_of_constraintsnumber of constraints
[in]initialize_matricesinitialize matrices using defaults
Note
Initialization: b is filled with zeros

Definition at line 134 of file constraints_mixins.h.

◆ setOffset()

void humoto::constraints::BodyASMixin< BoundsBMixin< t_Base > >::setOffset ( const std::ptrdiff_t  offset)
inlineinherited

Set offset of body part in the constriaints.

Parameters
[in]offset

Definition at line 682 of file constraints_mixins.h.

Member Data Documentation

◆ A_

Eigen::MatrixXd humoto::constraints::BodyASMixin< BoundsBMixin< t_Base > >::A_
protectedinherited

Definition at line 583 of file constraints_mixins.h.

◆ b_

template<class t_Base>
Eigen::VectorXd humoto::constraints::BoundsBMixin< t_Base >::b_
protectedinherited

Definition at line 118 of file constraints_mixins.h.

◆ offset_

std::ptrdiff_t humoto::constraints::BodyASMixin< BoundsBMixin< t_Base > >::offset_
protectedinherited

Definition at line 584 of file constraints_mixins.h.


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