SUNphi  1.0
UnaryMinus.hpp File Reference

Header file for the definition of -smet. More...

#include <physics/Spin.hpp>
#include <smet/NnarySmET.hpp>
#include <tens/TensKind.hpp>

Go to the source code of this file.

Classes

struct  SUNphi::BaseUMinuser
 
struct  SUNphi::ConstrainAreUMinusers< Args >
 
class  SUNphi::UMinuser< _Refs >
 Class to take the conjugate of a SmET. More...
 

Typedefs

template<typename T , typename Ret = void>
using SUNphi::EnableIfIsUMinuser = EnableIf< isUMinuser< T >,Ret >
 
template<typename T >
using SUNphi::ConstrainIsUMinuser = ConstrainIsBaseOf< BaseUMinuser,T >
 
template<typename T >
using SUNphi::ConstrainIsNotUMinuser = ConstrainIsNotBaseOf< BaseUMinuser,T >
 

Functions

template<typename... Ts>
UMinuser< Ts... > SUNphi::uMinus (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<(isUMinuser< RrT >), void * > = nullptr>
Ret SUNphi::uMinus (T &&smet)
 
template<typename T , TypeIf<(isSmET< T >), void * > = nullptr>
decltype(auto) SUNphi::operator- (T &&smet)
 Implement -smet: return uminus. More...
 

Variables

template<typename T >
constexpr bool SUNphi::isUMinuser = isBaseOf<BaseUMinuser ,T>
 

Detailed Description

Header file for the definition of -smet.

Definition in file UnaryMinus.hpp.

Typedef Documentation

template<typename T >
using SUNphi::ConstrainIsNotUMinuser = typedef ConstrainIsNotBaseOf<BaseUMinuser ,T>

Class forcing T not to inherits from BaseUMinuser

Definition at line 15 of file UnaryMinus.hpp.

template<typename T >
using SUNphi::ConstrainIsUMinuser = typedef ConstrainIsBaseOf<BaseUMinuser ,T>

Class forcing T to inherits from BaseUMinuser

Definition at line 15 of file UnaryMinus.hpp.

template<typename T , typename Ret = void>
using SUNphi::EnableIfIsUMinuser = typedef EnableIf< isUMinuser <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 UnaryMinus.hpp.

Function Documentation

void SUNphi::neverInstantiatedFunction ( )

Forward definition of a never instantiated expression

template<typename T , TypeIf<(isSmET< T >), void * > = nullptr>
decltype(auto) SUNphi::operator- ( T &&  smet)

Implement -smet: return uminus.

Parameters
smetExpression

Definition at line 62 of file UnaryMinus.hpp.

template<typename... Ts>
UMinuser<Ts...> SUNphi::uMinus ( Ts &&...  smets)

< Name of the NnarySmET to build

Simple UMinuser builder called uMinus

Plain UMinuser getting n plain SmET

Parameters
smetsSmETs to act upon

Definition at line 54 of file UnaryMinus.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<(isUMinuser< RrT >), void * > = nullptr>
Ret SUNphi::uMinus ( T &&  smet)

< Type to un-nest

Simplify uMinus ( UMinuser ) expression

Returns the nested reference

Parameters
smetQuantity to un-nest

Definition at line 57 of file UnaryMinus.hpp.

Variable Documentation

template<typename T >
constexpr bool SUNphi::isUMinuser = isBaseOf<BaseUMinuser ,T>

Expression which is true if T inherits from BaseUMinuser

Definition at line 15 of file UnaryMinus.hpp.