TVM  0.9.2
tvm::task_dynamics::Clamped< TD, TDImpl > Class Template Reference

#include <tvm/task_dynamics/Clamped.h>

Inheritance diagram for tvm::task_dynamics::Clamped< TD, TDImpl >:
Collaboration diagram for tvm::task_dynamics::Clamped< TD, TDImpl >:

Classes

class  Impl
 

Public Types

using Bounds = mpark::variant< double, Eigen::VectorXd >
 

Public Member Functions

template<typename... Args>
 Clamped (double max, Args &&... args)
 
template<typename... Args>
 Clamped (const std::pair< double, double > &minMax, Args &&... args)
 
template<typename... Args>
 Clamped (const VectorConstRef &max, Args &&... args)
 
template<typename... Args>
 Clamped (const std::pair< VectorConstRef, VectorConstRef > &minMax, Args &&... args)
 
 ~Clamped () override=default
 

Protected Member Functions

std::unique_ptr< abstract::TaskDynamicsImplimpl_ (FunctionPtr f, constraint::Type t, const Eigen::VectorXd &rhs) const override
 

Detailed Description

template<class TD, class TDImpl = typename TD::Impl>
class tvm::task_dynamics::Clamped< TD, TDImpl >

Given a task dynamics value \( e^{(k)*} \), compute the new value \( e_c^{(k)*} = s e^{(k)*} \), \( s \in [0, 1] \), such that \( b_{min} \leq \ e_c^{(k)*} \leq b_{max}\) where \( b_{min} \) and \( b_{max} \) are given bounds, specified as scalars or vectors.

Member Typedef Documentation

◆ Bounds

template<class TD , class TDImpl = typename TD::Impl>
using tvm::task_dynamics::Clamped< TD, TDImpl >::Bounds = mpark::variant<double, Eigen::VectorXd>

Constructor & Destructor Documentation

◆ Clamped() [1/4]

template<class TD , class TDImpl >
template<typename... Args>
tvm::task_dynamics::Clamped< TD, TDImpl >::Clamped ( double  max,
Args &&...  args 
)
inline

Constructor with \( b_{min} = -b_{max}\) (scalar version).

Parameters
maxThe maximum value that a component of \( e_c^{(k)*} \) can have, in absolute value ( \( b_{max}\)).
argsThese are forwarded to the TD constructor

◆ Clamped() [2/4]

template<class TD , class TDImpl >
template<typename... Args>
tvm::task_dynamics::Clamped< TD, TDImpl >::Clamped ( const std::pair< double, double > &  minMax,
Args &&...  args 
)
inline

Constructor with \(b_{min}\) and \(b_{max}\) (scalar version).

Parameters
minMaxThe minimum ( \(b_{min}\)) and maximum ( \(b_{max}\)) value that a component of \( e_c^{(k)*}\) can have. We require that \(b_{min} \leq 0 \leq b_{max}\).
argsThese are forwarded to the TD constructor

◆ Clamped() [3/4]

template<class TD , class TDImpl >
template<typename... Args>
tvm::task_dynamics::Clamped< TD, TDImpl >::Clamped ( const VectorConstRef max,
Args &&...  args 
)
inline

Constructor with \( b_{min} = -b_{max}\) (vector version).

Parameters
maxThe maximum value that a component of \( e_c^{(k)*} \) can have, in absolute value ( \( b_{max}\)).
argsThese are forwarded to the TD constructor

◆ Clamped() [4/4]

template<class TD , class TDImpl >
template<typename... Args>
tvm::task_dynamics::Clamped< TD, TDImpl >::Clamped ( const std::pair< VectorConstRef, VectorConstRef > &  minMax,
Args &&...  args 
)
inline

Constructor with \(b_{min}\) and \(b_{max}\) (vector version).

Parameters
minMaxThe minimum ( \(b_{min}\)) and maximum ( \(b_{max}\)) value that a component of \( e_c^{(k)*}\) can have. We require that \(b_{min} \leq 0 \leq b_{max}\).
argsThese are forwarded to the TD constructor

◆ ~Clamped()

template<class TD , class TDImpl = typename TD::Impl>
tvm::task_dynamics::Clamped< TD, TDImpl >::~Clamped ( )
overridedefault

Member Function Documentation

◆ impl_()

template<class TD , class TDImpl = typename TD::Impl>
std::unique_ptr<abstract::TaskDynamicsImpl> tvm::task_dynamics::Clamped< TD, TDImpl >::impl_ ( FunctionPtr  f,
constraint::Type  t,
const Eigen::VectorXd &  rhs 
) const
inlineoverrideprotected

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