TVM  0.9.4
Substitution.h
Go to the documentation of this file.
1 
3 #pragma once
4 
5 #include <tvm/api.h>
6 #include <tvm/defs.h>
7 
10 
11 #include <vector>
12 
13 namespace tvm
14 {
15 
16 namespace hint
17 {
18 
19 namespace abstract
20 {
21 class SubstitutionCalculatorImpl;
22 }
23 
29 {
30 public:
45  VariablePtr x,
46  int rank = constant::fullRank,
62  Substitution(const std::vector<LinearConstraintPtr> & cstr,
63  VariablePtr x,
64  int rank = constant::fullRank,
81  std::vector<VariablePtr> & x,
82  int rank = constant::fullRank,
98  Substitution(const std::vector<LinearConstraintPtr> & cstr,
99  const std::vector<VariablePtr> & x,
100  int rank = constant::fullRank,
102 
104  int rank() const;
106  int m() const;
108  const std::vector<LinearConstraintPtr> & constraints() const;
110  const std::vector<VariablePtr> & variables() const;
114  bool isSimple() const;
115 
117  std::shared_ptr<abstract::SubstitutionCalculatorImpl> calculator() const;
118 
119 private:
123  void check() const;
124 
125  int rank_;
126  int m_;
127  std::vector<LinearConstraintPtr> constraints_;
128  std::vector<VariablePtr> x_;
129 
130  std::shared_ptr<abstract::SubstitutionCalculatorImpl> calculator_;
131 };
132 } // namespace hint
133 
134 } // namespace tvm
#define TVM_DLLAPI
Definition: api.h:35
Definition: Substitution.h:29
const std::vector< VariablePtr > & variables() const
Substitution(const std::vector< LinearConstraintPtr > &cstr, const std::vector< VariablePtr > &x, int rank=constant::fullRank, const abstract::SubstitutionCalculator &calc=internal::AutoCalculator())
Substitution(LinearConstraintPtr cstr, VariablePtr x, int rank=constant::fullRank, const abstract::SubstitutionCalculator &calc=internal::AutoCalculator())
Substitution(const std::vector< LinearConstraintPtr > &cstr, VariablePtr x, int rank=constant::fullRank, const abstract::SubstitutionCalculator &calc=internal::AutoCalculator())
std::shared_ptr< abstract::SubstitutionCalculatorImpl > calculator() const
Substitution(LinearConstraintPtr cstr, std::vector< VariablePtr > &x, int rank=constant::fullRank, const abstract::SubstitutionCalculator &calc=internal::AutoCalculator())
const std::vector< LinearConstraintPtr > & constraints() const
Definition: SubstitutionCalculator.h:27
Definition: AutoCalculator.h:33
constexpr int fullRank
Definition: defs.h:108
Definition: Clock.h:12
std::shared_ptr< Variable > VariablePtr
Definition: defs.h:65
std::shared_ptr< constraint::abstract::LinearConstraint > LinearConstraintPtr
Definition: defs.h:59