Class TensorCanonicalizer¶
Defined in File tensor_canonicalizer.hpp
Inheritance Relationships¶
Derived Types¶
public sequant::DefaultTensorCanonicalizer(Class DefaultTensorCanonicalizer)public sequant::NullTensorCanonicalizer(Class NullTensorCanonicalizer)
Class Documentation¶
-
class TensorCanonicalizer¶
Base class for Tensor canonicalizers To make custom canonicalizer make a derived class and install an instance of that class in a Context (see Context::set_tensor_canonicalizer())
Subclassed by sequant::DefaultTensorCanonicalizer, sequant::NullTensorCanonicalizer
Public Types
-
using index_comparer_t = tensor_index_comparer_t¶
-
using index_pair_t = tensor_index_pair_t¶
-
using index_pair_comparer_t = tensor_index_pair_comparer_t¶
Public Functions
-
virtual ~TensorCanonicalizer()¶
-
virtual ExprPtr apply(AbstractTensor&) const = 0¶
- Returns:
a side effect of canonicalization (e.g. phase), or nullptr if none
Public Static Functions
-
static index_comparer_t default_index_comparer()¶
- Returns:
the default index comparer
-
static index_pair_comparer_t default_index_pair_comparer()¶
- Returns:
the default index pair comparer
Protected Static Functions
-
static inline auto mutable_bra_range(AbstractTensor &t)¶
-
static inline auto mutable_ket_range(AbstractTensor &t)¶
-
static inline auto mutable_aux_range(AbstractTensor &t)¶
-
using index_comparer_t = tensor_index_comparer_t¶