Uni20
Asynchronous tensor and runtime library.
Loading...
Searching...
No Matches
Classes | Namespaces | Functions
qnum.hpp File Reference

Defines packed quantum numbers and same-symmetry quantum-number containers. More...

#include <uni20/symmetry/symmetry.hpp>
#include <algorithm>
#include <cstddef>
#include <cstdint>
#include <functional>
#include <initializer_list>
#include <stdexcept>
#include <string>
#include <string_view>
#include <utility>
#include <vector>
Include dependency graph for qnum.hpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  uni20::QNum
 One irrep label together with the symmetry context needed to interpret it. More...
 
class  uni20::QNumList
 Explicit sparse tensor space represented as quantum numbers with one shared symmetry. More...
 

Namespaces

namespace  std
 
namespace  uni20
 

Functions

auto uni20::coerce (QNum const &q, Symmetry target) -> QNum
 Coerce a quantum number into a related symmetry by named components.
 
auto uni20::degree (QNum const &q) -> int
 Return the integral degree of a quantum number.
 
auto uni20::dual (QNum const &q) -> QNum
 Return the dual irrep of a quantum number.
 
auto uni20::is_identity (QNum const &q) -> bool
 Return whether a quantum number is the identity irrep.
 
auto uni20::make_qnum (Symmetry sym, std::initializer_list< std::pair< std::string_view, U1 > > values) -> QNum
 Construct a packed QNum from named U(1) component values.
 
auto uni20::operator+ (QNum const &lhs, QNum const &rhs) -> QNum
 Add two quantum numbers when the fusion result is uniquely defined.
 
auto uni20::qdim (QNum const &q) -> double
 Return the quantum dimension of a quantum number.
 
auto uni20::to_string (QNum const &q) -> std::string
 Format a quantum number as comma-separated named components.
 
auto uni20::u1_component (QNum const &q, std::string_view name) -> U1
 Read one named U(1) component from a quantum number.
 

Detailed Description

Defines packed quantum numbers and same-symmetry quantum-number containers.

See docs/symmetry/qnum.md for the implemented QNum and QNumList API, along with the planned non-abelian, braiding, and coupling-data extensions.