Struct CanonicalizeOptions

Struct Documentation

struct CanonicalizeOptions

options that control behavior of canonicalize()

Public Types

enum class IgnoreNamedIndexLabel : bool

Values:

enumerator Yes
enumerator No

Public Functions

CanonicalizeOptions copy_and_set(CanonicalizationMethod) const
CanonicalizeOptions copy_and_set(std::optional<container::set<Index>>) const
CanonicalizeOptions copy_and_set(IgnoreNamedIndexLabel) const

Public Members

SEQUANT_DESIGNATED_INIT_ONLY
CanonicalizationMethod method = CanonicalizationMethod::Complete

TN canonicalization method

std::optional<container::set<Index>> named_indices = std::nullopt

specifies named indices; by default all indices that appear only once are deduced to be named, but this may be misleading if e.g. single summed-over dummy index appears in an expression

IgnoreNamedIndexLabel ignore_named_index_labels = IgnoreNamedIndexLabel::Yes

whether the graph-based canonicalization ignores the labels of named indices, so that the structure of the result does not depend on them; named indices that an automorphism of the network can exchange are then placed in the order of their labels, as the context’s index comparer orders them; the result is determined only if that comparer orders every two named indices of the network. A Sum canonicalizes its summands with labels distinguished regardless.

Public Static Functions

static CanonicalizeOptions default_options()

Friends

inline friend bool operator==(const CanonicalizeOptions &a, const CanonicalizeOptions &b)
Returns:

true if a and b agree in every member