TVM  0.9.4
LinearizedProblemComputationData.h
Go to the documentation of this file.
1 /* Copyright 2017-2020 CNRS-AIST JRL and CNRS-UM LIRMM */
2 
3 #pragma once
4 
8 
9 namespace tvm::scheme::internal
10 {
20 {
21 public:
26  {
27  assert(task2Constraint_.find(&tr) == task2Constraint_.end());
28  task2Constraint_[&tr] = c;
29  }
30 
32  void removeConstraint(const TaskWithRequirements & tr) { task2Constraint_.erase(&tr); }
33 
37  { task2Constraint_.insert(map.begin(), map.end()); }
38 
41  { return task2Constraint_.at(&tr); }
42 
44  std::optional<std::reference_wrapper<const LinearConstraintWithRequirements>> constraintNoThrow(
45  const TaskWithRequirements & tr) const
46  {
47  auto it = task2Constraint_.find(&tr);
48  if(it != task2Constraint_.end())
49  return it->second;
50  else
51  return {};
52  }
53 
54 protected:
57 
58  void reset()
59  {
60  task2Constraint_.clear();
61  clearEvents();
63  }
64 
65 private:
67 };
68 } // namespace tvm::scheme::internal
Definition: LinearizedControlProblem.h:16
Definition: ControlProblem.h:22
Definition: LinearizedProblemComputationData.h:20
void addConstraints(const tvm::utils::internal::map< TaskWithRequirements const *, LinearConstraintWithRequirements > &map)
Definition: LinearizedProblemComputationData.h:35
const LinearConstraintWithRequirements & constraint(const TaskWithRequirements &tr) const
Definition: LinearizedProblemComputationData.h:40
std::optional< std::reference_wrapper< const LinearConstraintWithRequirements > > constraintNoThrow(const TaskWithRequirements &tr) const
Definition: LinearizedProblemComputationData.h:44
void addConstraint(const TaskWithRequirements &tr, const LinearConstraintWithRequirements &c)
Definition: LinearizedProblemComputationData.h:25
void reset()
Definition: LinearizedProblemComputationData.h:58
void removeConstraint(const TaskWithRequirements &tr)
Definition: LinearizedProblemComputationData.h:32
LinearizedProblemComputationData(int solverId)
Definition: LinearizedProblemComputationData.h:56
Definition: ProblemComputationData.h:27
void clearVariables()
Definition: ProblemComputationData.h:168
void clearEvents()
Definition: ProblemComputationData.h:166
int solverId() const
Definition: ProblemComputationData.h:96
Definition: Assignment.h:23
std::map< KeyWithId, Value, IdLess< KeyWithId >, Allocator > map
Definition: map.h:41