TVM  0.9.2
tvm::LinearizedControlProblem Class Reference

#include <tvm/LinearizedControlProblem.h>

Inheritance diagram for tvm::LinearizedControlProblem:
Collaboration diagram for tvm::LinearizedControlProblem:

Public Member Functions

 LinearizedControlProblem ()
 
 LinearizedControlProblem (const ControlProblem &pb)
 
TaskWithRequirementsPtr add (const Task &task, const requirements::SolvingRequirements &req={})
 
template<constraint::Type T>
TaskWithRequirementsPtr add (utils::ProtoTask< T > proto, const task_dynamics::abstract::TaskDynamics &td, const requirements::SolvingRequirements &req={})
 
template<constraint::Type T>
TaskWithRequirementsPtr add (utils::LinearProtoTask< T > proto, const task_dynamics::abstract::TaskDynamics &td, const requirements::SolvingRequirements &req={})
 
template<constraint::Type T>
TaskWithRequirementsPtr add (utils::LinearProtoTask< T > proto, const requirements::SolvingRequirements &req={})
 
void add (TaskWithRequirementsPtr tr)
 
void remove (const TaskWithRequirements &tr)
 
void add (const hint::Substitution &s)
 
void remove (const hint::Substitution &s)
 
const hint::internal::Substitutionssubstitutions () const
 
void removeSubstitutionFor (const constraint::abstract::LinearConstraint &cstr)
 
VariableVector variables () const
 
std::vector< LinearConstraintWithRequirementsconstraints () const
 
LinearConstraintPtr constraint (const TaskWithRequirements &t) const
 
LinearConstraintPtr constraintNoThrow (const TaskWithRequirements &t) const
 
const LinearConstraintWithRequirementsconstraintWithRequirements (const TaskWithRequirements &t) const
 
std::optional< std::reference_wrapper< const LinearConstraintWithRequirements > > constraintWithRequirementsNoThrow (const TaskWithRequirements &t) const
 
const tvm::utils::internal::map< TaskWithRequirements const *, LinearConstraintWithRequirements > & constraintMap () const
 
- Public Member Functions inherited from tvm::ControlProblem
 ControlProblem ()=default
 
 ControlProblem (const ControlProblem &)=delete
 
ControlProblemoperator= (const ControlProblem &)=delete
 
TaskWithRequirementsPtr add (const Task &task, const requirements::SolvingRequirements &req={})
 
template<constraint::Type T>
TaskWithRequirementsPtr add (utils::ProtoTask< T > proto, const task_dynamics::abstract::TaskDynamics &td, const requirements::SolvingRequirements &req={})
 
template<constraint::Type T>
TaskWithRequirementsPtr add (utils::LinearProtoTask< T > proto, const task_dynamics::abstract::TaskDynamics &td, const requirements::SolvingRequirements &req={})
 
template<constraint::Type T>
TaskWithRequirementsPtr add (utils::LinearProtoTask< T > proto, const requirements::SolvingRequirements &req={})
 
void add (TaskWithRequirementsPtr tr)
 
void remove (const TaskWithRequirements &tr)
 
const std::vector< TaskWithRequirementsPtr > & tasks () const
 
int size () const
 
void update ()
 
void finalize ()
 
const graph::CallGraphupdateGraph () const
 

Protected Member Functions

void update_ () override
 
void finalize_ () override
 
- Protected Member Functions inherited from tvm::ControlProblem
void needFinalize ()
 
void notify (const scheme::internal::ProblemDefinitionEvent &e)
 

Additional Inherited Members

- Protected Attributes inherited from tvm::ControlProblem
Updater updater_
 

Constructor & Destructor Documentation

◆ LinearizedControlProblem() [1/2]

tvm::LinearizedControlProblem::LinearizedControlProblem ( )

◆ LinearizedControlProblem() [2/2]

tvm::LinearizedControlProblem::LinearizedControlProblem ( const ControlProblem pb)

Member Function Documentation

◆ add() [1/6]

void tvm::LinearizedControlProblem::add ( const hint::Substitution s)

◆ add() [2/6]

TaskWithRequirementsPtr tvm::LinearizedControlProblem::add ( const Task task,
const requirements::SolvingRequirements req = {} 
)

◆ add() [3/6]

void tvm::LinearizedControlProblem::add ( TaskWithRequirementsPtr  tr)

◆ add() [4/6]

template<constraint::Type T>
TaskWithRequirementsPtr tvm::LinearizedControlProblem::add ( utils::LinearProtoTask< T >  proto,
const requirements::SolvingRequirements req = {} 
)

◆ add() [5/6]

template<constraint::Type T>
TaskWithRequirementsPtr tvm::LinearizedControlProblem::add ( utils::LinearProtoTask< T >  proto,
const task_dynamics::abstract::TaskDynamics td,
const requirements::SolvingRequirements req = {} 
)

◆ add() [6/6]

template<constraint::Type T>
TaskWithRequirementsPtr tvm::LinearizedControlProblem::add ( utils::ProtoTask< T >  proto,
const task_dynamics::abstract::TaskDynamics td,
const requirements::SolvingRequirements req = {} 
)

◆ constraint()

LinearConstraintPtr tvm::LinearizedControlProblem::constraint ( const TaskWithRequirements t) const

Access to the linear constraint corresponding to the task t

Parameters
tTaskWithRequirements object as return by add.

◆ constraintMap()

const tvm::utils::internal::map<TaskWithRequirements const *, LinearConstraintWithRequirements>& tvm::LinearizedControlProblem::constraintMap ( ) const

Return the map task -> constraint

◆ constraintNoThrow()

LinearConstraintPtr tvm::LinearizedControlProblem::constraintNoThrow ( const TaskWithRequirements t) const

Access to the linear constraint corresponding to the task t

Parameters
tTaskWithRequirements object as return by add.
Returns
A shared_ptr that can be null if t is not in the problem.

◆ constraints()

std::vector<LinearConstraintWithRequirements> tvm::LinearizedControlProblem::constraints ( ) const

Access to constraints

◆ constraintWithRequirements()

const LinearConstraintWithRequirements& tvm::LinearizedControlProblem::constraintWithRequirements ( const TaskWithRequirements t) const

Access to the linear constraint and requirements corresponding to the task t

Parameters
tTaskWithRequirements object as return by add.

◆ constraintWithRequirementsNoThrow()

std::optional<std::reference_wrapper<const LinearConstraintWithRequirements> > tvm::LinearizedControlProblem::constraintWithRequirementsNoThrow ( const TaskWithRequirements t) const

Access to the linear constraint and requirements corresponding to the task t

Parameters
tTaskWithRequirements object as return by add.
Returns
An std::optional containing a const reference on LinearConstraintWithRequirements if t is in the problem.

◆ finalize_()

void tvm::LinearizedControlProblem::finalize_ ( )
overrideprotectedvirtual

Finalize the data of the solver

Reimplemented from tvm::ControlProblem.

◆ remove() [1/2]

void tvm::LinearizedControlProblem::remove ( const hint::Substitution s)

◆ remove() [2/2]

void tvm::LinearizedControlProblem::remove ( const TaskWithRequirements tr)

◆ removeSubstitutionFor()

void tvm::LinearizedControlProblem::removeSubstitutionFor ( const constraint::abstract::LinearConstraint cstr)

◆ substitutions()

const hint::internal::Substitutions& tvm::LinearizedControlProblem::substitutions ( ) const

◆ update_()

void tvm::LinearizedControlProblem::update_ ( )
overrideprotectedvirtual

Compute all quantities necessary for solving the problem.

Reimplemented from tvm::ControlProblem.

◆ variables()

VariableVector tvm::LinearizedControlProblem::variables ( ) const

Access to the variables of the problem.

Note
These are all the variables irrespective of any substitutions as substitutions are hints for the solver.
The result is not cached, i.e. it is recomputed at each call.

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