1#ifndef HALIDE_ASSOCIATIVE_OPS_TABLE_H
2#define HALIDE_ASSOCIATIVE_OPS_TABLE_H
33 std::vector<Expr>
ops;
54 for (
size_t i = 0; i <
size(); ++i) {
62 return !(*
this == other);
72const std::vector<AssociativePattern> &
get_ops_table(
const std::vector<Expr> &exprs);
Methods to test Exprs and Stmts for equality of value.
Defines various operator overloads and utility functions that make it more pleasant to work with Hali...
bool equal(const RDom &bounds0, const RDom &bounds1)
Return true if bounds0 and bounds1 represent the same bounds.
const std::vector< AssociativePattern > & get_ops_table(const std::vector< Expr > &exprs)
This file defines the class FunctionDAG, which is our representation of a Halide pipeline,...
@ Internal
Not visible externally, similar to 'static' linkage in C.
A fragment of Halide syntax.
Represent an associative op with its identity.
bool operator!=(const AssociativePattern &other) const
bool is_commutative
Indicate if the associative op is also commutative.
std::vector< Expr > identities
Contain the identities for each dimension of the associative op.
AssociativePattern(const std::vector< Expr > &ops, const std::vector< Expr > &ids, bool is_commutative)
AssociativePattern(Expr op, Expr id, bool is_commutative)
std::vector< Expr > ops
Contain the binary operators for each dimension of the associative op.
AssociativePattern()=default
bool operator==(const AssociativePattern &other) const
AssociativePattern(size_t size)