Arcane  4.2.1.0
Documentation développeur
Chargement...
Recherche...
Aucune correspondance
Référence du modèle de la classe Arcane::Span2Impl< T, SizeType, Extent1, Extent2 >

Vue pour un tableau 2D. Plus de détails...

#include </__w/arcaneframework.github.io/arcaneframework.github.io/framework/arccore/src/base/arccore/base/Span2.h>

Graphe d'héritage de Arcane::Span2Impl< T, SizeType, Extent1, Extent2 >:
Graphe de collaboration de Arcane::Span2Impl< T, SizeType, Extent1, Extent2 >:

Types publics

using ElementType = T
using element_type = ElementType
using value_type = typename std::remove_cv<ElementType>::type
using index_type = SizeType
using difference_type = SizeType
using size_type = SizeType
using pointer = ElementType*
using const_pointer = typename std::add_const<ElementType*>::type
using reference = ElementType&
using const_reference = const ElementType&
using view_type = typename detail::View2TypeT<ElementType>::view_type
template<typename X>
using is_same_const_type = std::enable_if_t<std::is_same_v<X, T> || std::is_same_v<std::add_const_t<X>, T>>
 Indique si on peut convertir un 'X' ou 'const X' en un 'T'.

Fonctions membres publiques

__host__ __device__ Span2Impl (pointer ptr, SizeType dim1_size, SizeType dim2_size)
 Créé une vue 2D de dimension [dim1_size][dim2_size].
 Span2Impl ()=default
 Crée une vue 2D vide.
template<typename X, typename = std::enable_if_t<std::is_same_v<X, value_type>>>
 Span2Impl (const ConstArray2View< X > &from)
template<typename X, typename = std::enable_if_t<std::is_same_v<X, value_type>>>
__host__ __device__ Span2Impl (const Span2< X > &from)
constexpr __host__ __device__ SizeType dim1Size () const
 Nombre d'éléments de la première dimension.
constexpr __host__ __device__ SizeType dim2Size () const
 Nombre d'éléments de la deuxième dimension.
constexpr __host__ __device__ SizeType totalNbElement () const
 Nombre total d'éléments.
constexpr __host__ __device__ SpanImpl< ElementType, SizeType > operator[] (SizeType i) const
constexpr __host__ __device__ SpanImpl< ElementType, SizeType > operator() (SizeType i) const
constexpr __host__ __device__ reference operator() (SizeType i, SizeType j) const
constexpr __host__ __device__ ElementType item (SizeType i, SizeType j) const
 Valeur de l'élément [i][j].
constexpr __host__ __device__ ElementType setItem (SizeType i, SizeType j, const ElementType &value)
 Positionne l'élément [i][j] à value.
constexpr view_type smallView ()
 Vue constante sur cette vue.
constexpr ConstArrayView< value_type > constSmallView () const
 Vue constante sur cette vue.
constexpr ElementType * unguardedBasePointer ()
 Pointeur sur la mémoire allouée.
constexpr __host__ __device__ ElementType * data ()
 Pointeur sur la mémoire allouée.
constexpr __host__ __device__ const ElementType * data () const
 Pointeur sur la mémoire allouée.

Attributs protégés

ElementType * m_ptr = nullptr
SizeType m_dim1_size = 0
SizeType m_dim2_size = 0

Types privés

using ThatClass = Span2Impl<T, SizeType, Extent1, Extent2>

Amis

template<typename X, SizeType XExtent1, SizeType XExtent2, typename = std::enable_if_t<std::is_same_v<X, value_type>>>
bool operator== (const ThatClass &lhs, const Span2Impl< X, SizeType, XExtent1, XExtent2 > &rhs)
 Opérateur d'égalité (valide si T est const mais pas X).
template<typename X, SizeType XExtent1, SizeType XExtent2, typename = std::enable_if_t<std::is_same_v<X, value_type>>>
bool operator!= (const ThatClass &lhs, const Span2Impl< X, SizeType, XExtent1, XExtent2 > &rhs)
 Opérateur d'inégalité (valide si T est const mais pas X).
template<SizeType XExtent1, SizeType XExtent2>
bool operator== (const ThatClass &lhs, const Span2Impl< T, SizeType, XExtent1, XExtent2 > &rhs)
 Opérateur d'égalité
template<SizeType XExtent1, SizeType XExtent2>
bool operator!= (const ThatClass &lhs, const Span2Impl< T, SizeType, XExtent1, XExtent2 > &rhs)
 Opérateur d'inégalité

Description détaillée

template<typename T, typename SizeType, SizeType Extent1, SizeType Extent2>
class Arcane::Span2Impl< T, SizeType, Extent1, Extent2 >

Vue pour un tableau 2D.

Comme toute vue, une instance de cette classe n'est valide que tant que le conteneur dont elle est issue ne change pas de nombre d'éléments. La vue est non modifiable si l'argument template est de type 'const T'. Cette classe permet d'accéder et d'utiliser un tableau d'éléments du type T de la même manière qu'un tableau C standard. SizeType est le type utilisé pour conserver le nombre d'éléments du tableau. Cela peut être 'Int32' ou 'Int64'.

Définition à la ligne 66 du fichier Span2.h.

Documentation des définitions de type membres

◆ const_pointer

template<typename T, typename SizeType, SizeType Extent1, SizeType Extent2>
using Arcane::Span2Impl< T, SizeType, Extent1, Extent2 >::const_pointer = typename std::add_const<ElementType*>::type

Définition à la ligne 79 du fichier Span2.h.

◆ const_reference

template<typename T, typename SizeType, SizeType Extent1, SizeType Extent2>
using Arcane::Span2Impl< T, SizeType, Extent1, Extent2 >::const_reference = const ElementType&

Définition à la ligne 81 du fichier Span2.h.

◆ difference_type

template<typename T, typename SizeType, SizeType Extent1, SizeType Extent2>
using Arcane::Span2Impl< T, SizeType, Extent1, Extent2 >::difference_type = SizeType

Définition à la ligne 76 du fichier Span2.h.

◆ element_type

template<typename T, typename SizeType, SizeType Extent1, SizeType Extent2>
using Arcane::Span2Impl< T, SizeType, Extent1, Extent2 >::element_type = ElementType

Définition à la ligne 73 du fichier Span2.h.

◆ ElementType

template<typename T, typename SizeType, SizeType Extent1, SizeType Extent2>
using Arcane::Span2Impl< T, SizeType, Extent1, Extent2 >::ElementType = T

Définition à la ligne 72 du fichier Span2.h.

◆ index_type

template<typename T, typename SizeType, SizeType Extent1, SizeType Extent2>
using Arcane::Span2Impl< T, SizeType, Extent1, Extent2 >::index_type = SizeType

Définition à la ligne 75 du fichier Span2.h.

◆ is_same_const_type

template<typename T, typename SizeType, SizeType Extent1, SizeType Extent2>
template<typename X>
using Arcane::Span2Impl< T, SizeType, Extent1, Extent2 >::is_same_const_type = std::enable_if_t<std::is_same_v<X, T> || std::is_same_v<std::add_const_t<X>, T>>

Indique si on peut convertir un 'X' ou 'const X' en un 'T'.

Définition à la ligne 86 du fichier Span2.h.

◆ pointer

template<typename T, typename SizeType, SizeType Extent1, SizeType Extent2>
using Arcane::Span2Impl< T, SizeType, Extent1, Extent2 >::pointer = ElementType*

Définition à la ligne 78 du fichier Span2.h.

◆ reference

template<typename T, typename SizeType, SizeType Extent1, SizeType Extent2>
using Arcane::Span2Impl< T, SizeType, Extent1, Extent2 >::reference = ElementType&

Définition à la ligne 80 du fichier Span2.h.

◆ size_type

template<typename T, typename SizeType, SizeType Extent1, SizeType Extent2>
using Arcane::Span2Impl< T, SizeType, Extent1, Extent2 >::size_type = SizeType

Définition à la ligne 77 du fichier Span2.h.

◆ ThatClass

template<typename T, typename SizeType, SizeType Extent1, SizeType Extent2>
using Arcane::Span2Impl< T, SizeType, Extent1, Extent2 >::ThatClass = Span2Impl<T, SizeType, Extent1, Extent2>
private

Définition à la ligne 68 du fichier Span2.h.

◆ value_type

template<typename T, typename SizeType, SizeType Extent1, SizeType Extent2>
using Arcane::Span2Impl< T, SizeType, Extent1, Extent2 >::value_type = typename std::remove_cv<ElementType>::type

Définition à la ligne 74 du fichier Span2.h.

◆ view_type

template<typename T, typename SizeType, SizeType Extent1, SizeType Extent2>
using Arcane::Span2Impl< T, SizeType, Extent1, Extent2 >::view_type = typename detail::View2TypeT<ElementType>::view_type

Définition à la ligne 82 du fichier Span2.h.

Documentation des constructeurs et destructeur

◆ Span2Impl() [1/3]

template<typename T, typename SizeType, SizeType Extent1, SizeType Extent2>
__host__ __device__ Arcane::Span2Impl< T, SizeType, Extent1, Extent2 >::Span2Impl ( pointer ptr,
SizeType dim1_size,
SizeType dim2_size )
inline

Créé une vue 2D de dimension [dim1_size][dim2_size].

Définition à la ligne 91 du fichier Span2.h.

◆ Span2Impl() [2/3]

template<typename T, typename SizeType, SizeType Extent1, SizeType Extent2>
template<typename X, typename = std::enable_if_t<std::is_same_v<X, value_type>>>
Arcane::Span2Impl< T, SizeType, Extent1, Extent2 >::Span2Impl ( const ConstArray2View< X > & from)
inline

Définition à la ligne 101 du fichier Span2.h.

◆ Span2Impl() [3/3]

template<typename T, typename SizeType, SizeType Extent1, SizeType Extent2>
template<typename X, typename = std::enable_if_t<std::is_same_v<X, value_type>>>
__host__ __device__ Arcane::Span2Impl< T, SizeType, Extent1, Extent2 >::Span2Impl ( const Span2< X > & from)
inline

Définition à la ligne 108 du fichier Span2.h.

Documentation des fonctions membres

◆ constSmallView()

template<typename T, typename SizeType, SizeType Extent1, SizeType Extent2>
ConstArrayView< value_type > Arcane::Span2Impl< T, SizeType, Extent1, Extent2 >::constSmallView ( ) const
inlineconstexpr

Vue constante sur cette vue.

Définition à la ligne 180 du fichier Span2.h.

◆ data() [1/2]

template<typename T, typename SizeType, SizeType Extent1, SizeType Extent2>
__host__ __device__ ElementType * Arcane::Span2Impl< T, SizeType, Extent1, Extent2 >::data ( )
inlineconstexpr

Pointeur sur la mémoire allouée.

Définition à la ligne 193 du fichier Span2.h.

Référencé par Arcane::GatherGroup::gatherToMasterIOT(), et Arcane::NumArrayDataT< DataType, RankValue >::serialize().

Voici le graphe des appelants de cette fonction :

◆ data() [2/2]

template<typename T, typename SizeType, SizeType Extent1, SizeType Extent2>
__host__ __device__ const ElementType * Arcane::Span2Impl< T, SizeType, Extent1, Extent2 >::data ( ) const
inlineconstexpr

Pointeur sur la mémoire allouée.

Définition à la ligne 196 du fichier Span2.h.

◆ dim1Size()

template<typename T, typename SizeType, SizeType Extent1, SizeType Extent2>
__host__ __device__ SizeType Arcane::Span2Impl< T, SizeType, Extent1, Extent2 >::dim1Size ( ) const
inlineconstexpr

Nombre d'éléments de la première dimension.

Définition à la ligne 117 du fichier Span2.h.

Référencé par Arcane::ValueChecker::areEqualArray(), Arcane::GatherGroupInfo::computeSizeT(), et Arcane::SmallSpan2< DataType >::SmallSpan2().

Voici le graphe des appelants de cette fonction :

◆ dim2Size()

template<typename T, typename SizeType, SizeType Extent1, SizeType Extent2>
__host__ __device__ SizeType Arcane::Span2Impl< T, SizeType, Extent1, Extent2 >::dim2Size ( ) const
inlineconstexpr

Nombre d'éléments de la deuxième dimension.

Définition à la ligne 119 du fichier Span2.h.

Référencé par Arcane::GatherGroup::gatherToMasterIOT(), et Arcane::SmallSpan2< DataType >::SmallSpan2().

Voici le graphe des appelants de cette fonction :

◆ item()

template<typename T, typename SizeType, SizeType Extent1, SizeType Extent2>
__host__ __device__ ElementType Arcane::Span2Impl< T, SizeType, Extent1, Extent2 >::item ( SizeType i,
SizeType j ) const
inlineconstexpr

Valeur de l'élément [i][j].

Définition à la ligne 152 du fichier Span2.h.

◆ operator()() [1/2]

template<typename T, typename SizeType, SizeType Extent1, SizeType Extent2>
__host__ __device__ SpanImpl< ElementType, SizeType > Arcane::Span2Impl< T, SizeType, Extent1, Extent2 >::operator() ( SizeType i) const
inlineconstexpr

Définition à la ligne 131 du fichier Span2.h.

◆ operator()() [2/2]

template<typename T, typename SizeType, SizeType Extent1, SizeType Extent2>
__host__ __device__ reference Arcane::Span2Impl< T, SizeType, Extent1, Extent2 >::operator() ( SizeType i,
SizeType j ) const
inlineconstexpr

Définition à la ligne 137 du fichier Span2.h.

◆ operator[]()

template<typename T, typename SizeType, SizeType Extent1, SizeType Extent2>
__host__ __device__ SpanImpl< ElementType, SizeType > Arcane::Span2Impl< T, SizeType, Extent1, Extent2 >::operator[] ( SizeType i) const
inlineconstexpr

Définition à la ligne 125 du fichier Span2.h.

◆ setItem()

template<typename T, typename SizeType, SizeType Extent1, SizeType Extent2>
__host__ __device__ ElementType Arcane::Span2Impl< T, SizeType, Extent1, Extent2 >::setItem ( SizeType i,
SizeType j,
const ElementType & value )
inlineconstexpr

Positionne l'élément [i][j] à value.

Définition à la ligne 159 du fichier Span2.h.

◆ smallView()

template<typename T, typename SizeType, SizeType Extent1, SizeType Extent2>
view_type Arcane::Span2Impl< T, SizeType, Extent1, Extent2 >::smallView ( )
inlineconstexpr

Vue constante sur cette vue.

Définition à la ligne 170 du fichier Span2.h.

◆ totalNbElement()

template<typename T, typename SizeType, SizeType Extent1, SizeType Extent2>
__host__ __device__ SizeType Arcane::Span2Impl< T, SizeType, Extent1, Extent2 >::totalNbElement ( ) const
inlineconstexpr

Nombre total d'éléments.

Définition à la ligne 121 du fichier Span2.h.

Référencé par Arcane::GatherGroup::gatherToMasterIOT().

Voici le graphe des appelants de cette fonction :

◆ unguardedBasePointer()

template<typename T, typename SizeType, SizeType Extent1, SizeType Extent2>
ElementType * Arcane::Span2Impl< T, SizeType, Extent1, Extent2 >::unguardedBasePointer ( )
inlineconstexpr

Pointeur sur la mémoire allouée.

Définition à la ligne 190 du fichier Span2.h.

◆ operator!= [1/2]

template<typename T, typename SizeType, SizeType Extent1, SizeType Extent2>
template<SizeType XExtent1, SizeType XExtent2>
bool operator!= ( const ThatClass & lhs,
const Span2Impl< T, SizeType, XExtent1, XExtent2 > & rhs )
friend

Opérateur d'inégalité

Définition à la ligne 220 du fichier Span2.h.

◆ operator!= [2/2]

template<typename T, typename SizeType, SizeType Extent1, SizeType Extent2>
template<typename X, SizeType XExtent1, SizeType XExtent2, typename = std::enable_if_t<std::is_same_v<X, value_type>>>
bool operator!= ( const ThatClass & lhs,
const Span2Impl< X, SizeType, XExtent1, XExtent2 > & rhs )
friend

Opérateur d'inégalité (valide si T est const mais pas X).

Définition à la ligne 208 du fichier Span2.h.

◆ operator== [1/2]

template<typename T, typename SizeType, SizeType Extent1, SizeType Extent2>
template<SizeType XExtent1, SizeType XExtent2>
bool operator== ( const ThatClass & lhs,
const Span2Impl< T, SizeType, XExtent1, XExtent2 > & rhs )
friend

Opérateur d'égalité

Définition à la ligne 214 du fichier Span2.h.

◆ operator== [2/2]

template<typename T, typename SizeType, SizeType Extent1, SizeType Extent2>
template<typename X, SizeType XExtent1, SizeType XExtent2, typename = std::enable_if_t<std::is_same_v<X, value_type>>>
bool operator== ( const ThatClass & lhs,
const Span2Impl< X, SizeType, XExtent1, XExtent2 > & rhs )
friend

Opérateur d'égalité (valide si T est const mais pas X).

Définition à la ligne 202 du fichier Span2.h.

Documentation des données membres

◆ m_dim1_size

template<typename T, typename SizeType, SizeType Extent1, SizeType Extent2>
SizeType Arcane::Span2Impl< T, SizeType, Extent1, Extent2 >::m_dim1_size = 0
protected

Définition à la ligne 228 du fichier Span2.h.

◆ m_dim2_size

template<typename T, typename SizeType, SizeType Extent1, SizeType Extent2>
SizeType Arcane::Span2Impl< T, SizeType, Extent1, Extent2 >::m_dim2_size = 0
protected

Définition à la ligne 229 du fichier Span2.h.

◆ m_ptr

template<typename T, typename SizeType, SizeType Extent1, SizeType Extent2>
ElementType* Arcane::Span2Impl< T, SizeType, Extent1, Extent2 >::m_ptr = nullptr
protected

Définition à la ligne 227 du fichier Span2.h.


La documentation de cette classe a été générée à partir des fichiers suivants :