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

Defines the generic categorical dual-space adaptor. More...

#include <uni20/symmetry/block_sector.hpp>
#include <uni20/symmetry/qnum.hpp>
#include <uni20/symmetry/space.hpp>
#include <concepts>
#include <cstddef>
#include <iterator>
#include <ranges>
#include <stdexcept>
#include <string>
#include <type_traits>
#include <utility>
Include dependency graph for dual_space.hpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  uni20::Dual< SpaceType >
 Tensor space represented in an explicitly dual basis. More...
 

Namespaces

namespace  uni20
 

Concepts

concept  uni20::DualSpace
 Space value whose object basis is explicitly dual.
 

Typedefs

template<class T >
using uni20::primal_space_t = typename detail::PrimalSpaceType< std::remove_cvref_t< T > >::type
 Remove one explicit dual-space adaptor from a space type.
 

Functions

template<class SpaceType >
auto uni20::dual (Dual< SpaceType > &&space) -> SpaceType
 Remove explicit duality while moving a dual-space value.
 
template<class SpaceType >
auto uni20::dual (Dual< SpaceType > const &space) -> SpaceType
 Remove explicit duality from a dual-space value.
 
template<class SpaceType >
 uni20::Dual (SpaceType &&) -> Dual< std::remove_cvref_t< SpaceType > >
 
template<Space SpaceType>
requires (!DualSpace<SpaceType>)
auto uni20::dual (SpaceType &&space) -> Dual< std::remove_cvref_t< SpaceType > >
 Construct an explicitly dual basis by moving a space value.
 
template<Space SpaceType>
requires (!DualSpace<SpaceType>)
auto uni20::dual (SpaceType const &space) -> Dual< std::remove_cvref_t< SpaceType > >
 Construct an explicitly dual basis without changing occurrence order.
 

Detailed Description

Defines the generic categorical dual-space adaptor.