SUNphi  1.0
SUNphi::TensKind< T >::_firstVectorizingComp< F, Pos, InVectorizingSize, IsLastCheckable, NextPos, G, Size, OutVectorizingSize, EnoughToVectorize, CompIsVectorizing, FallBack > Struct Template Reference

#include <TensKind.hpp>

Static Public Attributes

static constexpr int value
 Provides the result of the calculation. More...
 

Detailed Description

template<class... T>
template<typename F, int Pos = nTypes-1, int InVectorizingSize = 1, bool IsLastCheckable = (Pos==0), int NextPos = (IsLastCheckable?Pos:(Pos-1)), typename G = RemRef<decltype(get<Pos>(types{}))>, int Size = G::size, int OutVectorizingSize = InVectorizingSize*Size, bool EnoughToVectorize = canBeSizeOfSIMDVector<F>(OutVectorizingSize), bool CompIsVectorizing = G::template isVectorizable<F>, bool FallBack = (not CompIsVectorizing) or IsLastCheckable>
struct SUNphi::TensKind< T >::_firstVectorizingComp< F, Pos, InVectorizingSize, IsLastCheckable, NextPos, G, Size, OutVectorizingSize, EnoughToVectorize, CompIsVectorizing, FallBack >

Return the position of the first component needed to vectorize

Internal implementation, escaping when last checkable component is reached

Todo:
Add a lenghty description, this is a complicated piece of code! The scope is not immediate to get

Definition at line 186 of file TensKind.hpp.

Member Data Documentation

template<class... T>
template<typename F , int Pos = nTypes-1, int InVectorizingSize = 1, bool IsLastCheckable = (Pos==0), int NextPos = (IsLastCheckable?Pos:(Pos-1)), typename G = RemRef<decltype(get<Pos>(types{}))>, int Size = G::size, int OutVectorizingSize = InVectorizingSize*Size, bool EnoughToVectorize = canBeSizeOfSIMDVector<F>(OutVectorizingSize), bool CompIsVectorizing = G::template isVectorizable<F>, bool FallBack = (not CompIsVectorizing) or IsLastCheckable>
constexpr int SUNphi::TensKind< T >::_firstVectorizingComp< F, Pos, InVectorizingSize, IsLastCheckable, NextPos, G, Size, OutVectorizingSize, EnoughToVectorize, CompIsVectorizing, FallBack >::value
static
Initial value:
=
FallBack?
-1:
(EnoughToVectorize?
Pos:
Conditional<IsLastCheckable,
std::integral_constant<int,-1>,
_firstVectorizingComp<F,NextPos,OutVectorizingSize>

Provides the result of the calculation.

Definition at line 189 of file TensKind.hpp.


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