8 #include <physics/Compl.hpp> 9 #include <ios/Logger.hpp> 10 #include <tens/TensKind.hpp> 11 #include <smet/NnarySmET.hpp> 12 #include <smet/Transpose.hpp> 20 template <
typename..._Refs>
23 public NnarySmET<Conjer<_Refs...>>,
24 public ConstrainAreSmETs<_Refs...>
32 constexpr
static int posOfCompl=
33 posOfType<Compl,
typename TkOf<Ref<0>>::types>;
57 template <
typename...Args>
58 auto eval(Args&&...args)
65 get<posOfCompl>(Tuple<Args...>(forw<Args>(args)...));
69 get<0>(refs).eval(forw<Args>(args)...);
91 typename RemRef<T>::Tk;
98 if constexpr(tupleHasType<Compl,TK_TYPES>)
99 return Conjer<T>(forw<T>(smet));
#define PROVIDE_NNARY_GET_MERGED_COMPS_VIEW_ACCORDING_TO_REPRESENTATIVE_FUNCTION
Uses the representativeFunction to provide a merged view.
#define SAME_TK_AS_REF(ID)
Get the same TensKind of a given ref.
#define PROVIDE_POS_OF_RES_TCS_IN_REFS
Provide the position of result Tk TensComp in each input.
#define STATIC_ASSERT_ARE_N_TYPES(N, UNEXP_PARPACK)
Static assert if not passing exactly N types.
#define PROVIDE_MERGEABLE_COMPS_ACCORDING_TO_REFS_AND_EXTRA
Provide MergeableComps delimiter according to references and extra.
#define PROVIDE_SIMPLE_NNARY_COMP_SIZE
#define CANCEL_DUPLICATED_NNARY_SMET_CALL(CALLER,NNARY_SMET)
#define SFINAE_WORSEN_DEFAULT_VERSION_TEMPLATE_PARS
#define SAME_FUND_AS_REF(ID)
Get the same Fund type of a given ref.
#define FORWARD_IS_ALIASING_TO_REFS
#define PROVIDE_NNARY_SMET_SIMPLE_CREATOR(NNARY_SMET)
Defines a simple creator taking n references.
#define STATIC_ASSERT_IS_NNARY_SMET(...)
Defines the check for a Nnary SmET.
#define PROVIDE_EXTRA_MERGE_DELIMS(...)
Add an ExtraDelims IntSeq called ExtraDelims.
#define SFINAE_WORSEN_DEFAULT_VERSION_ARGS_CHECK
Check that no extra arg is passed.
#define NOT_STORING
Set the SmET to not-storing.
#define SFINAE_WORSEN_DEFAULT_VERSION_ARGS
Provide empty list of args, used to unprioritize default version.
#define NNARY_SMET_GOES_INSIDE(EXT_FUN,NNARY_SMET, INT_FUN)
#define PROVIDE_NNARY_SMET_REFS_AND_CHECK_ARE_N(N)
#define DEFINE_BASE_TYPE(TYPE,...)