SUNphi  1.0
MulAdd.hpp File Reference

Defines a class which take the sum of a SmET with the product of two others. More...

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

Go to the source code of this file.

Classes

struct  SUNphi::BaseMulAdder
 
struct  SUNphi::ConstrainAreMulAdders< Args >
 
class  SUNphi::MulAdder< _Refs >
 Class to add a SmET with the prodcut of two others: a+b*c. More...
 

Typedefs

template<typename T , typename Ret = void>
using SUNphi::EnableIfIsMulAdder = EnableIf< isMulAdder< T >,Ret >
 
template<typename T >
using SUNphi::ConstrainIsMulAdder = ConstrainIsBaseOf< BaseMulAdder,T >
 
template<typename T >
using SUNphi::ConstrainIsNotMulAdder = ConstrainIsNotBaseOf< BaseMulAdder,T >
 
using SUNphi::CheckMulAdderIsNnarySmet::MyTc = TensComp< double, 1 >
 Tensor comp for test.
 
using SUNphi::CheckMulAdderIsNnarySmet::MyTk = TensKind< MyTc >
 Tensor kind to be tested.
 
using SUNphi::CheckMulAdderIsNnarySmet::MyT = Tens< MyTk, double >
 Tensor to be tested.
 

Functions

template<typename... Ts>
MulAdder< Ts... > SUNphi::mulAdd (Ts &&...smets)
 
void SUNphi::neverInstantiatedFunction ()
 

Variables

template<typename T >
constexpr bool SUNphi::isMulAdder = isBaseOf<BaseMulAdder ,T>
 

Detailed Description

Defines a class which take the sum of a SmET with the product of two others.

For the moment this is just used to provide a testcase to write the generic Nnary

Definition in file MulAdd.hpp.

Typedef Documentation

template<typename T >
using SUNphi::ConstrainIsMulAdder = typedef ConstrainIsBaseOf<BaseMulAdder ,T>

Class forcing T to inherits from BaseMulAdder

Definition at line 18 of file MulAdd.hpp.

template<typename T >
using SUNphi::ConstrainIsNotMulAdder = typedef ConstrainIsNotBaseOf<BaseMulAdder ,T>

Class forcing T not to inherits from BaseMulAdder

Definition at line 18 of file MulAdd.hpp.

template<typename T , typename Ret = void>
using SUNphi::EnableIfIsMulAdder = typedef EnableIf< isMulAdder <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 18 of file MulAdd.hpp.

Function Documentation

template<typename... Ts>
MulAdder<Ts...> SUNphi::mulAdd ( Ts &&...  smets)

< Name of the NnarySmET to build

Simple MulAdder builder called mulAdd

Plain MulAdder getting n plain SmET

Parameters
smetsSmETs to act upon

Definition at line 92 of file MulAdd.hpp.

void SUNphi::neverInstantiatedFunction ( )

Forward definition of a never instantiated expression

Variable Documentation

template<typename T >
constexpr bool SUNphi::isMulAdder = isBaseOf<BaseMulAdder ,T>

Expression which is true if T inherits from BaseMulAdder

Definition at line 18 of file MulAdd.hpp.