|
Uni20
Asynchronous tensor and runtime library.
|
Ordered codomain spaces of a tensor morphism. More...
#include <morphism_boundary.hpp>
Public Types | |
| template<std::size_t I> | |
| using | space_type = std::tuple_element_t< I, tuple_type > |
| Type of one codomain space. | |
| using | tuple_type = std::tuple< Spaces... > |
| Tuple containing the ordered codomain-space types. | |
Public Member Functions | |
| Codomain (Spaces... spaces) | |
| Construct a codomain from ordered space values. | |
| auto | operator== (Codomain const &other) const -> bool=default |
| Compare ordered codomain spaces for exact equality. | |
| template<std::size_t I> | |
| void | set_label (std::string label) |
| Replace one codomain leg label without changing its structure. | |
| template<std::size_t I> | |
| constexpr auto | space () const &noexcept -> space_type< I > const & |
| Return one codomain space by position. | |
| constexpr auto | spaces () const &noexcept -> tuple_type const & |
| Return the ordered codomain-space tuple. | |
Static Public Member Functions | |
| static constexpr auto | empty () noexcept -> bool |
| Return whether the codomain is the tensor unit. | |
| static constexpr auto | size () noexcept -> std::size_t |
| Return the number of codomain factors. | |
Ordered codomain spaces of a tensor morphism.
Space structure is exposed read-only. Leg labels may be changed explicitly with set_label<I>().
| Spaces | Concrete space value types in codomain order. |
| using uni20::Codomain< Spaces >::space_type = std::tuple_element_t<I, tuple_type> |
Type of one codomain space.
| I | Zero-based position in the codomain. |
| using uni20::Codomain< Spaces >::tuple_type = std::tuple<Spaces...> |
Tuple containing the ordered codomain-space types.
|
inlineexplicit |
Construct a codomain from ordered space values.
| spaces | Space values in codomain order. |
|
inlinestaticconstexprnoexcept |
Return whether the codomain is the tensor unit.
true when the codomain contains no factors.
|
default |
Compare ordered codomain spaces for exact equality.
| other | Other codomain value. |
true when all space structures and labels are equal.
|
inline |
Replace one codomain leg label without changing its structure.
| I | Zero-based position in the codomain. |
| label | New semantic leg label. |
|
inlinestaticconstexprnoexcept |
Return the number of codomain factors.
|
inlineconstexprnoexcept |
Return one codomain space by position.
| I | Zero-based position in the codomain. |
|
inlineconstexprnoexcept |
Return the ordered codomain-space tuple.