|
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.