31 explicit Symmetry(std::string_view spec) : impl_(detail::SymmetryImpl::
parse(spec)) {}
44 auto valid() const ->
bool {
return impl_ !=
nullptr; }
51 return impl_->factor_count();
59 return impl_->factors();
67 return impl_->to_string();
72 auto impl() const -> detail::SymmetryImpl const*
85 void ensure_valid()
const
89 throw std::logic_error(
"Symmetry handle is not initialized");
93 detail::SymmetryImpl
const* impl_ =
nullptr;
99inline auto to_string(
Symmetry const& symmetry) -> std::string {
return symmetry.to_string(); }
Public handle to a canonicalized direct-product symmetry specification.
Definition symmetry.hpp:24
Symmetry(detail::SymmetryImpl const *impl)
Construct from a canonical implementation pointer.
Definition symmetry.hpp:35
static auto parse(std::string_view spec) -> Symmetry
Parse a string specification such as "N:U(1),Sz:U(1)".
Definition symmetry.hpp:40
auto operator==(Symmetry const &other) const -> bool=default
Compare two symmetry handles for canonical identity.
auto factors() const -> std::span< detail::SymmetryFactorSpec const >
Return the named factor list.
Definition symmetry.hpp:56
auto to_string() const -> std::string
Return the canonical string spelling of this symmetry.
Definition symmetry.hpp:64
auto valid() const -> bool
Return whether this handle refers to a valid symmetry.
Definition symmetry.hpp:44
auto impl() const -> detail::SymmetryImpl const *
Return the internal canonical symmetry implementation pointer.
Definition symmetry.hpp:72
auto factor_count() const -> std::size_t
Return the number of direct-product factors.
Definition symmetry.hpp:48
Symmetry()=default
Construct an invalid symmetry handle.
Symmetry(std::string_view spec)
Construct a symmetry from its string specification.
Definition symmetry.hpp:31
Definition async/async.hpp:26
auto to_string(basic_half_int< T > value) -> std::string
Format a half-integer as an integer or decimal .5.
Definition half_int.hpp:477
std::size_t span
Definition presentation.cpp:2017
Defines the internal canonicalized representation of direct-product symmetries.