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)