23 #ifndef TVM_NODE_STRUCTURAL_EQUAL_H_
24 #define TVM_NODE_STRUCTURAL_EQUAL_H_
26 #include <tvm/ffi/container/array.h>
27 #include <tvm/ffi/reflection/access_path.h>
41 bool operator()(
const double& lhs,
const double& rhs)
const {
49 }
else if (lhs == rhs) {
53 constexpr
double atol = 1e-9;
54 double diff = lhs - rhs;
55 return diff > -atol && diff < atol;
59 bool operator()(
const int64_t& lhs,
const int64_t& rhs)
const {
return lhs == rhs; }
60 bool operator()(
const uint64_t& lhs,
const uint64_t& rhs)
const {
return lhs == rhs; }
61 bool operator()(
const Optional<int64_t>& lhs,
const Optional<int64_t>& rhs)
const {
64 bool operator()(
const Optional<double>& lhs,
const Optional<double>& rhs)
const {
67 bool operator()(
const int& lhs,
const int& rhs)
const {
return lhs == rhs; }
68 bool operator()(
const bool& lhs,
const bool& rhs)
const {
return lhs == rhs; }
69 bool operator()(
const std::string& lhs,
const std::string& rhs)
const {
return lhs == rhs; }
71 template <typename ENum, typename = typename std::enable_if<std::is_enum<ENum>::value>::type>
72 bool operator()(
const ENum& lhs,
const ENum& rhs)
const {
100 using BaseValueEqual::operator();
108 TVM_DLL
bool operator()(
const ffi::Any& lhs,
const ffi::Any& rhs,
109 const bool map_free_params =
false)
const;
Equality definition of base value class.
Definition: structural_equal.h:39
bool operator()(const Optional< double > &lhs, const Optional< double > &rhs) const
Definition: structural_equal.h:64
bool operator()(const ENum &lhs, const ENum &rhs) const
Definition: structural_equal.h:72
bool operator()(const DataType &lhs, const DataType &rhs) const
Definition: structural_equal.h:70
bool operator()(const uint64_t &lhs, const uint64_t &rhs) const
Definition: structural_equal.h:60
bool operator()(const int64_t &lhs, const int64_t &rhs) const
Definition: structural_equal.h:59
bool operator()(const int &lhs, const int &rhs) const
Definition: structural_equal.h:67
bool operator()(const Optional< int64_t > &lhs, const Optional< int64_t > &rhs) const
Definition: structural_equal.h:61
bool operator()(const std::string &lhs, const std::string &rhs) const
Definition: structural_equal.h:69
bool operator()(const double &lhs, const double &rhs) const
Definition: structural_equal.h:41
bool operator()(const bool &lhs, const bool &rhs) const
Definition: structural_equal.h:68
Content-aware structural equality comparator for objects.
Definition: structural_equal.h:97
bool operator()(const ffi::Any &lhs, const ffi::Any &rhs, const bool map_free_params=false) const
Compare objects via strutural equal.
Runtime primitive data type.
Definition: data_type.h:47
Defines the Functor data structures.
const Op & isnan()
Check if value is nan.
Performance counters for profiling via the PAPI library.
Definition: analyzer.h:37