8 #include <metaprogramming/CRTP.hpp>     9 #include <metaprogramming/TypeTraits.hpp>    10 #include <system/SIMD.hpp>    11 #include <utility/String.hpp>    12 #include <utility/Unused.hpp>    32         int MaxKnownSubMultiple=1>   
    61 #define DEFINE_TENS_COMP_CLASS(TYPE,N)    63   struct TYPE : public TensComp<TYPE,N>    73 #define DEFINE_TENS_COMP(BINDER,    79   constexpr const int N ## CONST_NAME=HMANY;    91 #define DEFINE_RW_CN_TENS_COMP(BINDER,    97   constexpr const int N ## CONST_NAME=HMANY;   113   using TYPE=Cn ## TYPE;   116   struct TwinTensCompOf<TYPE> #define DEFINE_NAMED_RW_OR_COL_BINDER(TG,NAME)
Defines a Binder named NAME for type RwTG or CnTG. 
#define MAYBE_UNUSED(A)
Suppress the "Unused Variable" warning at any scope. 
#define PROVIDE_CRTP_CAST_OPERATOR(CLASS)
#define DEFINE_NAMED_BINDER(TG,NAME)
Defines a Binder named NAME for type TG. 
#define PROVIDE_NAME(STR)
Provides a static name() method to a class, returning STR. 
static constexpr bool isVectorizable
Check if compatible with vectorization. 
#define DEFINE_TENS_COMP_CLASS(TYPE, N)
Defines a TensComp, with name TYPE and max N. 
decltype(auto) operator+(T1 &&smet1, T2 &&smet2)
Implement smet1+smet2. 
#define DECLARE_TENS_COMPS_ARE_TWIN(T1, T2)
Declare a pair of TensComp twins one of the other. 
#define DEFINE_BASE_TYPE(TYPE,...)
#define DEFINE_TENS_COMP(BINDER,TYPE,CONST_NAME,HMANY)