SUNphi
1.0
|
Defines the Tensor Kind. More...
#include <array>
#include <ints/IntSeqInsert.hpp>
#include <metaprogramming/TypeTraits.hpp>
#include <tens/TensComp.hpp>
#include <tens/TwinsComp.hpp>
#include <tuple/Filter.hpp>
#include <tuple/TupleElements.hpp>
#include <tuple/TupleOrder.hpp>
#include <tuple/TupleTypeCat.hpp>
Go to the source code of this file.
Macros | |
#define | STATIC_ASSERT_IS_DYNAMIC(TC) static_assert(isDynamic<TC>,"Error, Tens Comp is not dynamic") |
Typedefs | |
template<int N> | |
using | SUNphi::DynSizes = std::array< int, N > |
template<typename T , typename Ret = void> | |
using | SUNphi::EnableIfIsTensKind = EnableIf< isTensKind< T >,Ret > |
template<typename T > | |
using | SUNphi::ConstrainIsTensKind = ConstrainIsBaseOf< BaseTensKind,T > |
template<typename T > | |
using | SUNphi::ConstrainIsNotTensKind = ConstrainIsNotBaseOf< BaseTensKind,T > |
template<class TP , class = ConstrainIsTuple<TP>> | |
using | SUNphi::TensKindFromTuple = typename _TensKindFromTuple< TP >::type |
template<typename... Args> | |
using | SUNphi::BlendTensKinds = typename _BlendTensKinds< Args... >::type |
template<typename TkToSearch , typename... Tks> | |
using | SUNphi::PosOfTcsOfTkInListOfTks = Tuple< PosOfTypesNotAsserting< typename TkToSearch::types, typename Tks::types >... > |
template<typename TkToSearch , typename... Tks> | |
using | SUNphi::PosOfTcsOfTkPresInListOfTks = Tuple< FilterVariadicClassPos< IsPresent, PosOfTypesNotAsserting< typename TkToSearch::types, typename Tks::types >>... > |
Position of all the present TensComp of TkToSearch in the list of Tks. | |
Functions | |
template<typename Type > | |
constexpr bool | SUNphi::hasMember_compSizeHelper () |
Variables | |
template<typename T > | |
constexpr bool | SUNphi::isTensKind = isBaseOf<BaseTensKind ,T> |
template<typename Type > | |
constexpr bool | SUNphi::hasMember_compSize = hasMember_compSizeHelper<RemRef<Type>>() |
template<typename T > | |
static constexpr bool | SUNphi::isDynamic |
Returns whether T is a dynamic component. More... | |
Defines the Tensor Kind.
The tensor kind defines the list of components that form a tensor
Definition in file TensKind.hpp.
#define STATIC_ASSERT_IS_DYNAMIC | ( | TC | ) | static_assert(isDynamic<TC>,"Error, Tens Comp is not dynamic") |
Defines a TensKind type from a Tuple type Static assert if TC is not dynamic
Definition at line 66 of file TensKind.hpp.
using SUNphi::BlendTensKinds = typedef typename _BlendTensKinds<Args...>::type |
Blend an arbitrary number of TensKind
Gives visibility to the internal implementation
Definition at line 465 of file TensKind.hpp.
using SUNphi::ConstrainIsNotTensKind = typedef ConstrainIsNotBaseOf<BaseTensKind ,T> |
Class forcing T not to inherits from BaseTensKind
Definition at line 38 of file TensKind.hpp.
using SUNphi::ConstrainIsTensKind = typedef ConstrainIsBaseOf<BaseTensKind ,T> |
Class forcing T to inherits from BaseTensKind
Definition at line 38 of file TensKind.hpp.
using SUNphi::DynSizes = typedef std::array<int,N> |
Dynamic sizes of a Tens
Dynamic sizes of a Tens
Definition at line 35 of file TensKind.hpp.
using SUNphi::EnableIfIsTensKind = typedef EnableIf< isTensKind <T> ,Ret> |
Provides the class itself if T is of the given type
Provides the class itself if T satisfies the condition
Definition at line 38 of file TensKind.hpp.
using SUNphi::PosOfTcsOfTkInListOfTks = typedef Tuple<PosOfTypesNotAsserting<typename TkToSearch::types,typename Tks::types>...> |
Position of all the TensComp
of TkToSearch
in the list of Tks
NOT_PRESENT is inserted in the absent positions
Definition at line 473 of file TensKind.hpp.
using SUNphi::TensKindFromTuple = typedef typename _TensKindFromTuple<TP>::type |
Defines a variadic type TensKind
taking the same types of a Tuple
Gives visibility to the internal implementation
Definition at line 76 of file TensKind.hpp.
constexpr bool SUNphi::hasMember_compSizeHelper | ( | ) |
Intemediate function to distinguish the non-class case
Definition at line 56 of file TensKind.hpp.
constexpr bool SUNphi::hasMember_compSize = hasMember_compSizeHelper<RemRef<Type>>() |
Detect if Type
has member (variable or method) compSize
Uses SFINAE to induce ambiguity in the detection of the member
Definition at line 56 of file TensKind.hpp.
|
static |
Returns whether T is a dynamic component.
Definition at line 61 of file TensKind.hpp.
constexpr bool SUNphi::isTensKind = isBaseOf<BaseTensKind ,T> |
Expression which is true if T inherits from BaseTensKind
Definition at line 38 of file TensKind.hpp.