pRC
multi-purpose Tensor Train library for C++
Loading...
Searching...
No Matches
Public Types | Public Member Functions | Static Public Member Functions | List of all members
pRC::Subscripts< Ns > Class Template Reference

#include <subscripts.hpp>

Public Types

using Sizes = pRC::Sizes< Ns... >
 
using Dimension = typename Sizes::Dimension
 

Public Member Functions

 ~Subscripts ()=default
 
constexpr Subscripts ()=default
 
constexpr Subscripts (Subscripts const &)=default
 
constexpr Subscripts (Subscripts &&)=default
 
constexpr Subscriptsoperator= (Subscripts const &) &=default
 
constexpr Subscriptsoperator= (Subscripts &&) &=default
 
template<class... Ss, If< All< IsConvertible< Ss, Index >... > > = 0, If< IsSatisfied<(sizeof...(Ss)==Dimension())> > = 0>
constexpr Subscripts (Ss const ... subscripts)
 
template<Index D = Dimension(), If< IsSatisfied<(D==0)> > = 0>
constexpr Subscripts (Index const index)
 
template<Index D = Dimension(), If< IsSatisfied<(D > 1)> , class E = typename Sizes::IsLinearizable, If< E > = 0>
constexpr Subscripts (Index const index)
 
template<class E = typename Sizes::IsLinearizable, If< E > = 0>
constexpr operator Index () const
 
constexpr decltype(autooperator[] (Index const dimension) &&
 
constexpr decltype(autooperator[] (Index const dimension) const &&
 
constexpr decltype(autooperator[] (Index const dimension) &
 
constexpr decltype(autooperator[] (Index const dimension) const &
 
constexpr bool operator< (const Subscripts &rhs) const
 
constexpr auto isOutOfRange () const
 
constexpr decltype(autoperiodize () &
 
template<class X , If< IsInvocable< Add, Subscripts &, X > > = 0>
constexpr autooperator+= (X &&rhs) &
 
template<class X , If< IsInvocable< Sub, Subscripts &, X > > = 0>
constexpr autooperator-= (X &&rhs) &
 
template<class X , If< IsInvocable< Mul, Subscripts &, X > > = 0>
constexpr autooperator*= (X &&rhs) &
 
template<class X , If< IsInvocable< Div, Subscripts &, X > > = 0>
constexpr autooperator/= (X &&rhs) &
 
template<class X , If< IsInvocable< Mod, Subscripts &, X > > = 0>
constexpr autooperator%= (X &&rhs) &
 

Static Public Member Functions

template<class E = typename Sizes::IsLinearizable, If< E > = 0>
static constexpr auto size ()
 
static constexpr auto size (Index const dimension)
 

Member Typedef Documentation

◆ Dimension

template<Size... Ns>
using pRC::Subscripts< Ns >::Dimension = typename Sizes::Dimension

◆ Sizes

template<Size... Ns>
using pRC::Subscripts< Ns >::Sizes = pRC::Sizes<Ns...>

Constructor & Destructor Documentation

◆ ~Subscripts()

template<Size... Ns>
pRC::Subscripts< Ns >::~Subscripts ( )
default

◆ Subscripts() [1/6]

template<Size... Ns>
constexpr pRC::Subscripts< Ns >::Subscripts ( )
constexprdefault

◆ Subscripts() [2/6]

template<Size... Ns>
constexpr pRC::Subscripts< Ns >::Subscripts ( Subscripts< Ns > const )
constexprdefault

◆ Subscripts() [3/6]

template<Size... Ns>
constexpr pRC::Subscripts< Ns >::Subscripts ( Subscripts< Ns > &&  )
constexprdefault

◆ Subscripts() [4/6]

template<Size... Ns>
template<class... Ss, If< All< IsConvertible< Ss, Index >... > > = 0, If< IsSatisfied<(sizeof...(Ss)==Dimension())> > = 0>
constexpr pRC::Subscripts< Ns >::Subscripts ( Ss const ...  subscripts)
inlineexplicitconstexpr

◆ Subscripts() [5/6]

template<Size... Ns>
template<Index D = Dimension(), If< IsSatisfied<(D==0)> > = 0>
constexpr pRC::Subscripts< Ns >::Subscripts ( Index const  index)
inlineexplicitconstexpr

◆ Subscripts() [6/6]

template<Size... Ns>
template<Index D = Dimension(), If< IsSatisfied<(D > 1)> , class E = typename Sizes::IsLinearizable, If< E > = 0>
constexpr pRC::Subscripts< Ns >::Subscripts ( Index const  index)
inlineexplicitconstexpr

Member Function Documentation

◆ isOutOfRange()

template<Size... Ns>
constexpr auto pRC::Subscripts< Ns >::isOutOfRange ( ) const
inlineconstexpr

◆ operator Index()

template<Size... Ns>
template<class E = typename Sizes::IsLinearizable, If< E > = 0>
constexpr pRC::Subscripts< Ns >::operator Index ( ) const
inlineexplicitconstexpr

◆ operator%=()

template<Size... Ns>
template<class X , If< IsInvocable< Mod, Subscripts &, X > > = 0>
constexpr auto & pRC::Subscripts< Ns >::operator%= ( X &&  rhs) &
inlineconstexpr

◆ operator*=()

template<Size... Ns>
template<class X , If< IsInvocable< Mul, Subscripts &, X > > = 0>
constexpr auto & pRC::Subscripts< Ns >::operator*= ( X &&  rhs) &
inlineconstexpr

◆ operator+=()

template<Size... Ns>
template<class X , If< IsInvocable< Add, Subscripts &, X > > = 0>
constexpr auto & pRC::Subscripts< Ns >::operator+= ( X &&  rhs) &
inlineconstexpr

◆ operator-=()

template<Size... Ns>
template<class X , If< IsInvocable< Sub, Subscripts &, X > > = 0>
constexpr auto & pRC::Subscripts< Ns >::operator-= ( X &&  rhs) &
inlineconstexpr

◆ operator/=()

template<Size... Ns>
template<class X , If< IsInvocable< Div, Subscripts &, X > > = 0>
constexpr auto & pRC::Subscripts< Ns >::operator/= ( X &&  rhs) &
inlineconstexpr

◆ operator<()

template<Size... Ns>
constexpr bool pRC::Subscripts< Ns >::operator< ( const Subscripts< Ns > &  rhs) const
inlineconstexpr

◆ operator=() [1/2]

template<Size... Ns>
constexpr Subscripts & pRC::Subscripts< Ns >::operator= ( Subscripts< Ns > &&  ) &
constexprdefault

◆ operator=() [2/2]

template<Size... Ns>
constexpr Subscripts & pRC::Subscripts< Ns >::operator= ( Subscripts< Ns > const ) &
constexprdefault

◆ operator[]() [1/4]

template<Size... Ns>
constexpr decltype(auto) pRC::Subscripts< Ns >::operator[] ( Index const  dimension) &
inlineconstexpr

◆ operator[]() [2/4]

template<Size... Ns>
constexpr decltype(auto) pRC::Subscripts< Ns >::operator[] ( Index const  dimension) &&
inlineconstexpr

◆ operator[]() [3/4]

template<Size... Ns>
constexpr decltype(auto) pRC::Subscripts< Ns >::operator[] ( Index const  dimension) const &
inlineconstexpr

◆ operator[]() [4/4]

template<Size... Ns>
constexpr decltype(auto) pRC::Subscripts< Ns >::operator[] ( Index const  dimension) const &&
inlineconstexpr

◆ periodize()

template<Size... Ns>
constexpr decltype(auto) pRC::Subscripts< Ns >::periodize ( ) &
inlineconstexpr

◆ size() [1/2]

template<Size... Ns>
template<class E = typename Sizes::IsLinearizable, If< E > = 0>
static constexpr auto pRC::Subscripts< Ns >::size ( )
inlinestaticconstexpr

◆ size() [2/2]

template<Size... Ns>
static constexpr auto pRC::Subscripts< Ns >::size ( Index const  dimension)
inlinestaticconstexpr

The documentation for this class was generated from the following file: