TVM  0.9.4
Substitutions.h
Go to the documentation of this file.
1 
3 #pragma once
4 
5 #include <tvm/api.h>
6 #include <tvm/defs.h>
7 
11 
12 #include <vector>
13 
14 namespace tvm
15 {
16 
17 namespace hint
18 {
19 
20 namespace internal
21 {
24 {
25 public:
27  void add(const Substitution & s);
28 
30  void remove(const Substitution & s);
31 
37  const std::vector<Substitution> & substitutions() const;
38 
40  bool uses(LinearConstraintPtr c) const;
41 
47  void finalize();
48 
51 
54  void updateVariableValues() const;
55 
57  const std::vector<VariablePtr> & variables() const;
59  const std::vector<std::shared_ptr<function::BasicLinearFunction>> & variableSubstitutions() const;
61  const std::vector<VariablePtr> & additionalVariables() const;
63  const std::vector<std::shared_ptr<constraint::BasicLinearConstraint>> & additionalConstraints() const;
65  const std::vector<VariablePtr> & otherVariables() const;
70 
73 
74 private:
76  std::vector<Substitution> substitutions_;
77 
82 
84  std::vector<SubstitutionUnit> units_;
85 
87  std::vector<VariablePtr> variables_;
88 
92  std::vector<std::shared_ptr<function::BasicLinearFunction>> varSubstitutions_;
93 
95  std::vector<VariablePtr> additionalVariables_;
96 
100  std::vector<VariablePtr> otherVariables_;
101 
103  std::vector<std::shared_ptr<constraint::BasicLinearConstraint>> additionalConstraints_;
104 
105  friend class SubstitutionTest;
106 };
107 
108 } // namespace internal
109 
110 } // namespace hint
111 
112 } // namespace tvm
#define TVM_DLLAPI
Definition: api.h:35
Definition: VariableVector.h:41
Definition: LinearConstraint.h:56
Definition: DependencyGraph.h:20
Definition: Substitution.h:29
Definition: Substitutions.h:24
const std::vector< std::shared_ptr< constraint::BasicLinearConstraint > > & additionalConstraints() const
const std::vector< std::shared_ptr< function::BasicLinearFunction > > & variableSubstitutions() const
bool uses(LinearConstraintPtr c) const
const std::vector< VariablePtr > & variables() const
void remove(const Substitution &s)
void add(const Substitution &s)
VariableVector substitute(const VariablePtr &x) const
const std::vector< VariablePtr > & additionalVariables() const
const std::vector< Substitution > & substitutions() const
const std::vector< VariablePtr > & otherVariables() const
Substitution const * getSubstitutionFor(const constraint::abstract::LinearConstraint &cstr)
Definition: Clock.h:12
std::shared_ptr< Variable > VariablePtr
Definition: defs.h:65
std::shared_ptr< constraint::abstract::LinearConstraint > LinearConstraintPtr
Definition: defs.h:59