SUNphi  1.0
Transpose.hpp File Reference

Defines a class which take the transposed of a SmET. More...

#include <tens/TensClass.hpp>
#include <smet/Reference.hpp>
#include <smet/NnarySmET.hpp>

Go to the source code of this file.

Classes

struct  SUNphi::BaseTransposer
 
struct  SUNphi::ConstrainAreTransposers< Args >
 
class  SUNphi::Transposer< _Refs >
 Class to take the transposed of a SmET. More...
 

Typedefs

template<typename T , typename Ret = void>
using SUNphi::EnableIfIsTransposer = EnableIf< isTransposer< T >,Ret >
 
template<typename T >
using SUNphi::ConstrainIsTransposer = ConstrainIsBaseOf< BaseTransposer,T >
 
template<typename T >
using SUNphi::ConstrainIsNotTransposer = ConstrainIsNotBaseOf< BaseTransposer,T >
 

Functions

template<typename... Ts>
Transposer< Ts... > SUNphi::transpose (Ts &&...smets)
 
void SUNphi::neverInstantiatedFunction ()
 
template<typename T , typename RrT = RemRef<T>, typename Ref = typename RrT::template Ref<0>, typename RrRef = RemRef<Ref>, bool SmETIsLvalue = isLvalue<RrT>, bool RefIsLvalue = isLvalue<RrRef>, bool RefIsStoring = isStoring<RrRef>, bool RetByRef = RefIsStoring or RefIsLvalue or SmETIsLvalue, typename Ret = Conditional<RetByRef,RrRef&,RrRef>, TypeIf<(isTransposer< RrT >), void * > = nullptr>
Ret SUNphi::transpose (T &&smet)
 
template<typename Lhs , typename Rhs , TypeIf<(isTransposer< Rhs >), void * > = nullptr>
void SUNphi::assign (Lhs &&lhs, Rhs &&rhs)
 

Variables

template<typename T >
constexpr bool SUNphi::isTransposer = isBaseOf<BaseTransposer ,T>
 

Detailed Description

Defines a class which take the transposed of a SmET.

Definition in file Transpose.hpp.

Typedef Documentation

template<typename T >
using SUNphi::ConstrainIsNotTransposer = typedef ConstrainIsNotBaseOf<BaseTransposer ,T>

Class forcing T not to inherits from BaseTransposer

Definition at line 15 of file Transpose.hpp.

template<typename T >
using SUNphi::ConstrainIsTransposer = typedef ConstrainIsBaseOf<BaseTransposer ,T>

Class forcing T to inherits from BaseTransposer

Definition at line 15 of file Transpose.hpp.

template<typename T , typename Ret = void>
using SUNphi::EnableIfIsTransposer = typedef EnableIf< isTransposer <T> ,Ret>

Provides the class itself if T is of the given type

Provides the class itself if T satisfies the condition

Definition at line 15 of file Transpose.hpp.

Function Documentation

template<typename Lhs , typename Rhs , TypeIf<(isTransposer< Rhs >), void * > = nullptr>
void SUNphi::assign ( Lhs &&  lhs,
Rhs &&  rhs 
)

< Name of the SmET

Simplify EXT_FUN( Transposer u) expression

Returns INT_FUN(EXT_FUN(u.ref))

Parameters
lhsLhs of the assignement
rhsRhs of the assignement, to free from Transposer

Definition at line 68 of file Transpose.hpp.

void SUNphi::neverInstantiatedFunction ( )

Forward definition of a never instantiated expression

template<typename... Ts>
Transposer<Ts...> SUNphi::transpose ( Ts &&...  smets)

< Name of the NnarySmET to build

Simple Transposer builder called transpose

Plain Transposer getting n plain SmET

Parameters
smetsSmETs to act upon

Definition at line 62 of file Transpose.hpp.

template<typename T , typename RrT = RemRef<T>, typename Ref = typename RrT::template Ref<0>, typename RrRef = RemRef<Ref>, bool SmETIsLvalue = isLvalue<RrT>, bool RefIsLvalue = isLvalue<RrRef>, bool RefIsStoring = isStoring<RrRef>, bool RetByRef = RefIsStoring or RefIsLvalue or SmETIsLvalue, typename Ret = Conditional<RetByRef,RrRef&,RrRef>, TypeIf<(isTransposer< RrT >), void * > = nullptr>
Ret SUNphi::transpose ( T &&  smet)

< Type to un-nest

Simplify transpose ( Transposer ) expression

Returns the nested reference

Parameters
smetQuantity to un-nest

Definition at line 65 of file Transpose.hpp.

Variable Documentation

template<typename T >
constexpr bool SUNphi::isTransposer = isBaseOf<BaseTransposer ,T>

Expression which is true if T inherits from BaseTransposer

Definition at line 15 of file Transpose.hpp.