Template Class Z2Irrep

Class Documentation

template<Z2Group Group = NoConcreteGroup>
class Z2Irrep

An IRREP of a Z2 group (in which every element is its own inverse) that may contain symbolic (unevaluated) factors. It is represented as the product of a concrete IRREP of Group and a set of symbols, each of which represents an IRREP that is unknown at the time of code generation.

Public Types

using symbol_container = container::svector<std::string, 2>

Public Functions

Z2Irrep() = default

Creates the totally symmetric IRREP.

inline explicit Z2Irrep(std::uint8_t concrete, symbol_container symbols = {})
Parameters:
  • concrete – Index of the concrete IRREP in Group::names

  • symbols – The symbolic factors (in any order). As every IRREP is its own inverse, pairs of identical symbols cancel.

Throws:

Exception – if concrete is out of range or if a symbol is empty, contains a ‘*’ or is the name of one of Group’s IRREPs

inline std::uint8_t concrete() const
Returns:

Index of the concrete IRREP in Group::names (interpreted as bitmask)

inline const symbol_container &symbols() const
Returns:

The sorted list of (unique) symbols

Friends

friend bool operator==(const Z2Irrep&, const Z2Irrep&) = default
inline friend std::strong_ordering operator<=>(const Z2Irrep &lhs, const Z2Irrep &rhs)