SUNphi
1.0
|
Class to assign a SmET
to another one.
More...
#include <Assign.hpp>
Public Types | |
using | Ref1 = _Ref1 |
using | Ref2 = _Ref2 |
using | Tk = TkOf< _Ref1 > |
TensorKind of the result is the same of l.h.s | |
using | Fund = FundTypeOf< Ref1 > |
Fundamental type is of the same type of the l.h.s. | |
using | PosOfRef1TcsInResTk = PosOfTypesNotAsserting< typename Tk::types, typename TK1::types > |
using | PosOfRef1PresTcsInResTk = FilterVariadicClassPos< IsPresent, PosOfRef1TcsInResTk > |
template<typename MD > | |
using | MergedDelims1 = IntSeqGetElsAfterAppending< TK1::nTypes, false, MD, PosOfRef1TcsInResTk > |
using | PosOfRef2TcsInResTk = PosOfTypesNotAsserting< typename Tk::types, typename TK2::types > |
using | PosOfRef2PresTcsInResTk = FilterVariadicClassPos< IsPresent, PosOfRef2TcsInResTk > |
template<typename MD > | |
using | MergedDelims2 = IntSeqGetElsAfterAppending< TK2::nTypes, false, MD, PosOfRef2TcsInResTk > |
using | MergeableComps = PairOfTensKindMergeability::template CompsMergeability< typename RemRef< Ref1 >::MergeableComps, typename RemRef< Ref2 >::MergeableComps, PosOfRef1TcsInResTk, PosOfRef2TcsInResTk > |
Public Member Functions | |
template<typename TC , typename = ConstrainIsTensComp<TC>> | |
int | compSize () const |
Returns the size of a component. | |
template<typename Tref > | |
bool | isAliasing (const Tref &alias) const |
decltype(auto) | getMaximallyMergedCompsView () |
template<typename Is > | |
decltype(auto) | getMergedCompsView () const |
template<typename... Ts> | |
decltype(auto) | getMergedCompsView (Ts &&...ts) |
template<typename... Args> | |
decltype(auto) | eval (const Args &...args) |
template<typename... Args> | |
decltype(auto) | eval (const Args &...args) const |
template<typename SMET1 , typename SMET2 , typename = EnableIf<isSame<Unqualified<SMET1>,Unqualified<Ref1>>>, typename = EnableIf<isSame<Unqualified<SMET2>,Unqualified<Ref2>>>> | |
Assigner (SMET1 &&smet1, SMET2 &&smet2) | |
Assigner< _Ref1, _Ref2 > & | operator~ () |
const Assigner< _Ref1, _Ref2 > & | operator~ () const |
decltype(auto) | operator() (Oth &&...oth) |
decltype(auto) | operator() (Oth &&...oth) const |
Static Public Member Functions | |
template<typename Is , typename = EnableIf<isIntSeq<Is>>> | |
static constexpr void | assertMergeableWith () |
Public Attributes | |
Reference< Ref1 > | ref1 |
Reference< Ref2 > | ref2 |
Static Public Attributes | |
static constexpr bool | isStoring = false |
static constexpr bool | isAssignable |
Class to assign a SmET
to another one.
Definition at line 59 of file Assign.hpp.
using SUNphi::Assigner< _Ref1, _Ref2, TK1, TK2 >::MergeableComps = PairOfTensKindMergeability::template CompsMergeability< typename RemRef<Ref1>::MergeableComps, typename RemRef<Ref2>::MergeableComps, PosOfRef1TcsInResTk, PosOfRef2TcsInResTk> |
List of points where the TensKind
can be split
Defer the mergeability to the internal implementation
Definition at line 102 of file Assign.hpp.
using SUNphi::Assigner< _Ref1, _Ref2, TK1, TK2 >::MergedDelims1 = IntSeqGetElsAfterAppending<TK1 ::nTypes,false,MD,PosOfRef1TcsInResTk> |
Merged delimiters of Ref1 according to MD
Definition at line 99 of file Assign.hpp.
using SUNphi::Assigner< _Ref1, _Ref2, TK1, TK2 >::MergedDelims2 = IntSeqGetElsAfterAppending<TK2 ::nTypes,false,MD,PosOfRef2TcsInResTk> |
Merged delimiters of Ref2 according to MD
Definition at line 100 of file Assign.hpp.
using SUNphi::Assigner< _Ref1, _Ref2, TK1, TK2 >::PosOfRef1PresTcsInResTk = FilterVariadicClassPos<IsPresent,PosOfRef1TcsInResTk> |
Position of all the TensComp
of Ref1
present in Res Tk
Definition at line 99 of file Assign.hpp.
using SUNphi::Assigner< _Ref1, _Ref2, TK1, TK2 >::PosOfRef1TcsInResTk = PosOfTypesNotAsserting<typename Tk::types,typename TK1 ::types> |
Position of all the TensComp
of Ref1
in Res Tk
Definition at line 99 of file Assign.hpp.
using SUNphi::Assigner< _Ref1, _Ref2, TK1, TK2 >::PosOfRef2PresTcsInResTk = FilterVariadicClassPos<IsPresent,PosOfRef2TcsInResTk> |
Position of all the TensComp
of Ref2
present in Res Tk
Definition at line 100 of file Assign.hpp.
using SUNphi::Assigner< _Ref1, _Ref2, TK1, TK2 >::PosOfRef2TcsInResTk = PosOfTypesNotAsserting<typename Tk::types,typename TK2 ::types> |
Position of all the TensComp
of Ref2
in Res Tk
Definition at line 100 of file Assign.hpp.
using SUNphi::Assigner< _Ref1, _Ref2, TK1, TK2 >::Ref1 = _Ref1 |
Type of the binding reference 1
Definition at line 87 of file Assign.hpp.
using SUNphi::Assigner< _Ref1, _Ref2, TK1, TK2 >::Ref2 = _Ref2 |
Type of the binding reference 2
Definition at line 87 of file Assign.hpp.
|
inlineexplicit |
Constructor taking universal reference
Definition at line 127 of file Assign.hpp.
|
inlinestatic |
Assert that a given merging condition is valid
Definition at line 102 of file Assign.hpp.
|
inline |
evaluator for Assigner, evaluating r.h.s
args | Components to get |
Definition at line 122 of file Assign.hpp.
|
inline |
const evaluator for Assigner, evaluating r.h.s
args | Components to get |
Definition at line 123 of file Assign.hpp.
|
inline |
Returns the maximal possible merged comps view
Definition at line 102 of file Assign.hpp.
|
inline |
Merge appropriately the two references and returns their assignement
Definition at line 108 of file Assign.hpp.
|
inline |
Overload the getMergedCompsView
const method passing all args
ts | Arguments |
Definition at line 108 of file Assign.hpp.
|
inline |
Forward aliasing check to the references
Definition at line 91 of file Assign.hpp.
|
inlineinherited |
Implements the call operator via CRTP
oth | Other quantit |
Definition at line 289 of file BaseSmET.hpp.
|
inlineinherited |
Implements the const call operator via CRTP
< Other quantit
Definition at line 290 of file BaseSmET.hpp.
|
inlineinherited |
Cast operator to class T
Definition at line 37 of file BinarySmET.hpp.
|
inlineinherited |
Constant cast operator to class T
Definition at line 37 of file BinarySmET.hpp.
|
staticinherited |
Returns whether this SmET
can be the left hand of an assignement
This SmET can never be lhs
Definition at line 35 of file BinarySmET.hpp.
|
static |
Returns whether this SmET is storing
This SmET
is not storing
Definition at line 90 of file Assign.hpp.
Reference<Ref1 > SUNphi::Assigner< _Ref1, _Ref2, TK1, TK2 >::ref1 |
Reference to the 1 object
Definition at line 87 of file Assign.hpp.
Reference<Ref2 > SUNphi::Assigner< _Ref1, _Ref2, TK1, TK2 >::ref2 |
Reference to the 2 object
Definition at line 87 of file Assign.hpp.