Class DefaultTensorCanonicalizer¶
Defined in File tensor_canonicalizer.hpp
Inheritance Relationships¶
Base Type¶
public sequant::TensorCanonicalizer
(Class TensorCanonicalizer)
Derived Type¶
public sequant::TensorBlockCanonicalizer
(Class TensorBlockCanonicalizer)
Class Documentation¶
-
class DefaultTensorCanonicalizer : public sequant::TensorCanonicalizer¶
Subclassed by sequant::TensorBlockCanonicalizer
Public Functions
-
DefaultTensorCanonicalizer() = default¶
-
template<typename IndexContainer>
inline DefaultTensorCanonicalizer(IndexContainer &&external_indices)¶ Warning
external_indices
is assumed to be immutable during the lifetime of this object
-
virtual ~DefaultTensorCanonicalizer() = default¶
-
virtual ExprPtr apply(AbstractTensor &t) const override¶
Implements TensorCanonicalizer::apply
Note
Canonicalizes
t
by sorting its bra (ift.symmetry()==Symmetry::nonsymm
) or its bra and ket (ift.symmetry()!=Symmetry::nonsymm
), with the external indices appearing “before” (smaller particle indices) than the internal indices
-
template<typename IndexComp, typename IndexPairComp>
inline ExprPtr apply(AbstractTensor &t, const IndexComp &idxcmp, const IndexPairComp &paircmp) const¶ Core of DefaultTensorCanonicalizer::apply, only does the canonicalization, i.e. no tagging/untagging
Protected Functions
-
void tag_indices(AbstractTensor &t) const¶
-
DefaultTensorCanonicalizer() = default¶