TVM  0.9.4
tvm::constraint::internal::LinearizedTaskConstraint Class Reference

#include <tvm/constraint/internal/LinearizedTaskConstraint.h>

Inheritance diagram for tvm::constraint::internal::LinearizedTaskConstraint:
Collaboration diagram for tvm::constraint::internal::LinearizedTaskConstraint:

Public Member Functions

 LinearizedTaskConstraint (const Task &task)
 
template<constraint::Type T>
 LinearizedTaskConstraint (const utils::ProtoTask< T > &pt, const task_dynamics::abstract::TaskDynamics &td)
 
void updateLKin ()
 
void updateLDyn ()
 
void updateUKin ()
 
void updateUDyn ()
 
void updateEKin ()
 
void updateEDyn ()
 
void updateU2Kin ()
 
void updateU2Dyn ()
 
tvm::internal::MatrixConstRefWithProperties jacobian (const Variable &x) const override
 
- Public Member Functions inherited from tvm::constraint::abstract::LinearConstraint
void updateValue ()
 
- Public Member Functions inherited from tvm::constraint::abstract::Constraint
virtual const Eigen::VectorXd & l () const
 
virtual const Eigen::VectorXd & u () const
 
virtual const Eigen::VectorXd & e () const
 
Type type () const
 
bool isEquality () const
 
RHS rhs () const
 
- Public Member Functions inherited from tvm::internal::ObjWithId
 ObjWithId (const ObjWithId &)=delete
 
 ObjWithId (ObjWithId &&other)
 
ObjWithIdoperator= (const ObjWithId &)=delete
 
ObjWithIdoperator= (ObjWithId &&other)
 
int id () const
 
- Public Member Functions inherited from tvm::graph::abstract::OutputSelector< Constraint, tvm::internal::FirstOrderProvider >
 OutputSelector (Args &&... args)
 
void lock ()
 
void unlock ()
 
bool isLocked () const
 
- Public Member Functions inherited from tvm::internal::FirstOrderProvider
virtual const Eigen::VectorXd & value () const
 
bool linearIn (const Variable &x) const
 
const SpaceimageSpace () const
 
int size () const
 
int rSize () const
 
int tSize () const
 
const VariableVectorvariables () const
 
- Public Member Functions inherited from tvm::graph::internal::AbstractNode
template<typename EnumT >
bool isUpdateEnabled (EnumT e) const
 
virtual bool isUpdateStaticallyEnabled (int) const
 
virtual bool isUpdateCustomEnabled (int) const
 
virtual ~AbstractNode ()=default
 
void update (int i)
 
- Public Member Functions inherited from tvm::graph::internal::Inputs
virtual ~Inputs ()=default
 
template<typename T , typename EnumI , typename... Args>
void addInput (std::shared_ptr< T > source, EnumI i, Args... args)
 
template<typename T , typename EnumI , typename... Args, typename std::enable_if< std::is_base_of< abstract::Outputs, T >::value, int >::type = 0>
void addInput (T &source, EnumI i, Args... args)
 
template<typename T >
void removeInput (T *source)
 
template<typename T , typename... Args>
void removeInput (T *source, Args... args)
 
template<typename T >
Iterator getInput (T *source)
 
template<typename T >
Iterator getInput (const std::shared_ptr< T > &source)
 
- Public Member Functions inherited from tvm::graph::abstract::Outputs
virtual ~Outputs ()=default
 
template<typename EnumT >
bool isOutputEnabled (EnumT e) const
 
bool isOutputEnabled (int i) const
 
virtual bool isOutputStaticallyEnabled (int) const
 

Additional Inherited Members

- Public Types inherited from tvm::graph::internal::AbstractNode
enum class  Update_
 
using UpdateParent = AbstractNode
 
using UpdateBase = AbstractNode
 
- Public Types inherited from tvm::graph::internal::Inputs
using inputs_t = std::unordered_map< abstract::Outputs *, std::set< int > >
 
using store_t = std::unordered_set< std::shared_ptr< abstract::Outputs > >
 
- Public Types inherited from tvm::graph::abstract::Outputs
enum class  Output_
 
using OutputParent = Outputs
 
using OutputBase = Outputs
 
- Static Public Member Functions inherited from tvm::graph::internal::AbstractNode
static constexpr const char * UpdateName (Update_)
 
template<typename EnumT >
static constexpr bool UpdateStaticallyEnabled (EnumT)
 
- Static Public Member Functions inherited from tvm::graph::abstract::Outputs
static constexpr const char * OutputName (Output_)
 
template<typename EnumT >
static constexpr bool OutputStaticallyEnabled (EnumT)
 
- Static Public Attributes inherited from tvm::graph::internal::AbstractNode
static constexpr unsigned int UpdateSize = 0
 
static constexpr auto UpdateBaseName = "AbstractNode"
 
- Static Public Attributes inherited from tvm::graph::abstract::Outputs
static constexpr unsigned int OutputSize = 0
 
static constexpr auto OutputBaseName = "Outputs"
 
- Protected Types inherited from tvm::graph::internal::AbstractNode
using input_dependency_t = std::map< Outputs *, std::set< int > >
 
- Protected Member Functions inherited from tvm::constraint::abstract::LinearConstraint
 LinearConstraint (Type ct, RHS cr, int m)
 
- Protected Member Functions inherited from tvm::constraint::abstract::Constraint
 Constraint (Type ct, RHS cr, int m=0)
 
void resizeCache () override
 
Eigen::VectorXd & lRef ()
 
Eigen::VectorXd & uRef ()
 
Eigen::VectorXd & eRef ()
 
- Protected Member Functions inherited from tvm::internal::ObjWithId
 ObjWithId ()
 
- Protected Member Functions inherited from tvm::graph::abstract::OutputSelector< Constraint, tvm::internal::FirstOrderProvider >
void disableOutput (EnumT e)
 
void disableOutput (EnumT e, Args... args)
 
void enableOutput (EnumT e)
 
void enableOutput (EnumT e, Args... args)
 
bool isOutputCustomEnabled (int e) const override
 
- Protected Member Functions inherited from tvm::internal::FirstOrderProvider
 FirstOrderProvider (int m)
 
 FirstOrderProvider (Space image)
 
void resizeValueCache ()
 
void resizeJacobianCache ()
 
void addVariable (VariablePtr v, bool linear)
 
void removeVariable (VariablePtr v)
 
void addVariable (const VariableVector &v, bool linear)
 
virtual void addVariable_ (VariablePtr)
 
virtual void removeVariable_ (VariablePtr)
 
void splitJacobian (const MatrixConstRef &J, const std::vector< VariablePtr > &vars, bool keepProperties=false)
 
void splitJacobian (const MatrixConstRef &J, const VariableVector &vars, bool keepProperties=false)
 
void resize (int m)
 
- Protected Member Functions inherited from tvm::graph::abstract::Node< FirstOrderProvider >
void registerUpdates (EnumT u, void(U::*fn)(), Args... args)
 
void registerUpdates (EnumT u, void(U::*fn)())
 
void addOutputDependency (EnumO o, EnumU u)
 
void addOutputDependency (std::initializer_list< EnumO > os, EnumU u)
 
void addInternalDependency (EnumU1 uDependent, EnumU2 u)
 
void addInputDependency (EnumU u, std::shared_ptr< S > source, EnumO i, Args... args)
 
void addInputDependency (EnumU u, S &source, EnumO i, Args... args)
 
void addDirectDependency (EnumO o, std::shared_ptr< S > source, EnumI i)
 
void addDirectDependency (EnumO o, S &source, EnumI i)
 
- Protected Attributes inherited from tvm::constraint::abstract::Constraint
internal::RHSVectors vectors_
 
- Protected Attributes inherited from tvm::internal::FirstOrderProvider
Eigen::VectorXd value_
 
utils::internal::MapWithVariableAsKey< MatrixWithProperties, slice_matrix, true > jacobian_
 
Space imageSpace_
 
VariableVector variables_
 
utils::internal::MapWithVariableAsKey< bool, slice_linearlinear_
 
- Protected Attributes inherited from tvm::graph::internal::AbstractNode
std::map< int, std::function< void(AbstractNode &)> > updates_
 
std::map< int, std::vector< int > > outputDependencies_
 
std::map< int, std::vector< int > > internalDependencies_
 
std::map< int, input_dependency_tinputDependencies_
 
std::map< int, std::pair< Outputs *, int > > directDependencies_
 
- Protected Attributes inherited from tvm::graph::abstract::Outputs
bool is_node_ = false
 
- Protected Attributes inherited from tvm::graph::abstract::SelectorMembers< add >
std::vector< bool > dynamicallyEnabled_
 
bool locked_ = false
 

Detailed Description

Given a task \((e, op, rhs, e^*)\), this class derives the constraint \(d^k e/dt^k\ op\ e^*(e,de/dt,...de^{k-1}/dt^{k-1}, rhs [,g])\), where e is an error function, op is ==, >= or <= and \(e^*\) is a desired error dynamics. k is specified by \(e^*\) and (optional) g is any other quantities.

EQUAL (E) \ GREATER_THAN (L) \ LOWER_THAN (U) cases. Dotted dependencies correspond by default to the second order dynamics case (k=2), unless specified otherwise by the task dynamics used.

dot_inline_dotgraph_3.png

DOUBLE_SIDED case. Dotted dependencies correspond by default to the second order dynamics case (k=2), unless specified otherwise by the task dynamics used.

dot_inline_dotgraph_4.png

Constructor & Destructor Documentation

◆ LinearizedTaskConstraint() [1/2]

tvm::constraint::internal::LinearizedTaskConstraint::LinearizedTaskConstraint ( const Task task)

Constructor from a task

◆ LinearizedTaskConstraint() [2/2]

template<constraint::Type T>
tvm::constraint::internal::LinearizedTaskConstraint::LinearizedTaskConstraint ( const utils::ProtoTask< T > &  pt,
const task_dynamics::abstract::TaskDynamics td 
)

Constructor from a ProtoTask and a TaskDynamics

Member Function Documentation

◆ jacobian()

tvm::internal::MatrixConstRefWithProperties tvm::constraint::internal::LinearizedTaskConstraint::jacobian ( const Variable x) const
overridevirtual

Return the jacobian matrix corresponding to x

Reimplemented from tvm::internal::FirstOrderProvider.

◆ updateEDyn()

void tvm::constraint::internal::LinearizedTaskConstraint::updateEDyn ( )

Update the e vector, for dynamic tasks.

◆ updateEKin()

void tvm::constraint::internal::LinearizedTaskConstraint::updateEKin ( )

Update the e vector, for kinematic tasks.

◆ updateLDyn()

void tvm::constraint::internal::LinearizedTaskConstraint::updateLDyn ( )

Update the l vector, for dynamic tasks.

◆ updateLKin()

void tvm::constraint::internal::LinearizedTaskConstraint::updateLKin ( )

Update the l vector, for kinematic tasks.

◆ updateU2Dyn()

void tvm::constraint::internal::LinearizedTaskConstraint::updateU2Dyn ( )

Update the u vector, for dynamic, double-sided tasks.

◆ updateU2Kin()

void tvm::constraint::internal::LinearizedTaskConstraint::updateU2Kin ( )

Update the u vector, for kinematic, double-sided tasks.

◆ updateUDyn()

void tvm::constraint::internal::LinearizedTaskConstraint::updateUDyn ( )

Update the u vector, for dynamic, single-sided tasks.

◆ updateUKin()

void tvm::constraint::internal::LinearizedTaskConstraint::updateUKin ( )

Update the u vector, for kinematic, single-sided tasks.


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