Class AnyIrrepContext

Nested Relationships

Nested Types

Class Documentation

class AnyIrrepContext

Type-erased IrrepContext (for arbitrary IRREP algebras). It satisfies IrrepPropagationContext and can thus be used with irreps_of. A moved-from object may only be assigned to or destroyed.

Public Types

using set_type = AnyIrrepSet

Public Functions

template<IrrepAlgebra A>
inline AnyIrrepContext(IrrepContext<A> ctx)
AnyIrrepContext(const AnyIrrepContext &other)
AnyIrrepContext(AnyIrrepContext &&other) noexcept
AnyIrrepContext &operator=(const AnyIrrepContext &other)
AnyIrrepContext &operator=(AnyIrrepContext &&other) noexcept
~AnyIrrepContext()
AnyIrrepSet irreps_of(const Tensor &tensor) const

AnyIrrepSet irreps_of(const Variable &variable) const
AnyIrrepSet totally_symmetric() const
bool is_totally_symmetric(const AnyIrrepSet &set) const
Throws:

Exception – if the set is not of this context’s IRREP type

Returns:

Whether the given set contains nothing but the totally symmetric IRREP

AnyIrrepSet empty_set() const
AnyIrrepSet any_set() const

AnyIrrep canonical_irrep(std::string_view name) const

AnyIrrepSet product(const AnyIrrepSet &lhs, const AnyIrrepSet &rhs) const
Throws:

Exception – if the sets are not of this context’s IRREP type

AnyIrrepSet conjugate(const AnyIrrepSet &set) const
Throws:

Exception – if the set is not of this context’s IRREP type

template<IrrepAlgebra A>
inline const IrrepContext<A> *as() const
Returns:

A pointer to the wrapped context, if it is of type IrrepContext. Otherwise, nullptr.