SUNphi  1.0
Conj.hpp File Reference

Header file for the definition of the conjugate of a number. More...

#include <physics/Compl.hpp>
#include <ios/Logger.hpp>
#include <tens/TensKind.hpp>
#include <smet/NnarySmET.hpp>
#include <smet/Transpose.hpp>

Go to the source code of this file.

Classes

struct  SUNphi::BaseConjer
 
struct  SUNphi::ConstrainAreConjers< Args >
 
class  SUNphi::Conjer< _Refs >
 Class to take the conjugate of a SmET. More...
 

Typedefs

template<typename T , typename Ret = void>
using SUNphi::EnableIfIsConjer = EnableIf< isConjer< T >,Ret >
 
template<typename T >
using SUNphi::ConstrainIsConjer = ConstrainIsBaseOf< BaseConjer,T >
 
template<typename T >
using SUNphi::ConstrainIsNotConjer = ConstrainIsNotBaseOf< BaseConjer,T >
 

Functions

template<typename T , typename... DummyTypes>
auto SUNphi::conj (T &&smet, DummyTypes...)
 Build Conjer from conj, if TensKind is complex. More...
 
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<(isConjer< RrT >), void * > = nullptr>
Ret SUNphi::conj (T &&smet)
 
void SUNphi::neverInstantiatedFunction ()
 
template<typename D , TypeIf<(isTransposer< D >), void * > = nullptr>
decltype(auto) SUNphi::conj (D &&smet)
 

Variables

template<typename T >
constexpr bool SUNphi::isConjer = isBaseOf<BaseConjer ,T>
 

Detailed Description

Header file for the definition of the conjugate of a number.

Definition in file Conj.hpp.

Typedef Documentation

template<typename T >
using SUNphi::ConstrainIsConjer = typedef ConstrainIsBaseOf<BaseConjer ,T>

Class forcing T to inherits from BaseConjer

Definition at line 17 of file Conj.hpp.

template<typename T >
using SUNphi::ConstrainIsNotConjer = typedef ConstrainIsNotBaseOf<BaseConjer ,T>

Class forcing T not to inherits from BaseConjer

Definition at line 17 of file Conj.hpp.

template<typename T , typename Ret = void>
using SUNphi::EnableIfIsConjer = typedef EnableIf< isConjer <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 17 of file Conj.hpp.

Function Documentation

template<typename T , typename... DummyTypes>
auto SUNphi::conj ( T &&  smet,
DummyTypes...   
)

Build Conjer from conj, if TensKind is complex.

Tens Kind of the conjugated type

Types of the tensor kind

Parameters
smetSmET to act upon

Definition at line 84 of file Conj.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<(isConjer< RrT >), void * > = nullptr>
Ret SUNphi::conj ( T &&  smet)

< Type to un-nest

Simplify conj ( Conjer ) expression

Returns the nested reference

Parameters
smetQuantity to un-nest

Definition at line 105 of file Conj.hpp.

template<typename D , TypeIf<(isTransposer< D >), void * > = nullptr>
decltype(auto) SUNphi::conj ( D &&  smet)

< Internal builder

Simplify conj ( Transposer u) expression

Returns transpose ( conj (u.ref))

Parameters
smetNnarySmET to nest

Definition at line 108 of file Conj.hpp.

void SUNphi::neverInstantiatedFunction ( )

Forward definition of a never instantiated expression

Variable Documentation

template<typename T >
constexpr bool SUNphi::isConjer = isBaseOf<BaseConjer ,T>

Expression which is true if T inherits from BaseConjer

Definition at line 17 of file Conj.hpp.