Arcane  v3.14.10.0
Documentation utilisateur
Chargement...
Recherche...
Aucune correspondance
Référence du modèle de la classe Arcane::MDSpan< DataType, Extents, LayoutPolicy >

Classe de base des vues multi-dimensionnelles. Plus de détails...

#include <arcane/utils/MDSpan.h>

+ Graphe de collaboration de Arcane::MDSpan< DataType, Extents, LayoutPolicy >:

Types publics

using value_type = DataType
 
using ExtentsType = Extents
 
using LayoutPolicyType = LayoutPolicy
 
using MDIndexType = typename Extents::MDIndexType
 
using ArrayExtentsWithOffsetType = ArrayExtentsWithOffset< Extents, LayoutPolicy >
 
using DynamicDimsType = typename Extents::DynamicDimsType
 
using RemovedFirstExtentsType = typename Extents::RemovedFirstExtentsType
 
using ArrayBoundsIndexType = typename Extents::MDIndexType
 
using IndexType = typename Extents::MDIndexType
 

Fonctions membres publiques

constexpr __host__ __device__ MDSpan (DataType *ptr, ArrayExtentsWithOffsetType extents)
 
constexpr __host__ __device__ MDSpan (DataType *ptr, const DynamicDimsType &dims)
 
template<typename X , typename = std::enable_if_t<std::is_same_v<X, UnqualifiedValueType>>>
constexpr __host__ __device__ MDSpan (const MDSpan< X, Extents > &rhs)
 
constexpr __host__ __device__ DataType * _internalData ()
 
constexpr __host__ __device__ const DataType * _internalData () const
 
ArrayExtents< Extents > extents () const
 
ArrayExtentsWithOffsetType extentsWithOffset () const
 
constexpr __host__ __device__ Int32 extent0 () const
 Valeur de la première dimension.
 
constexpr __host__ __device__ Int32 extent1 () const
 Valeur de la deuxième dimension.
 
constexpr __host__ __device__ Int32 extent2 () const
 Valeur de la troisième dimension.
 
constexpr __host__ __device__ Int32 extent3 () const
 Valeur de la quatrième dimension.
 
constexpr __host__ __device__ Int64 offset (Int32 i, Int32 j, Int32 k, Int32 l) const
 Valeur pour l'élément i,j,k,l.
 
constexpr __host__ __device__ Int64 offset (Int32 i, Int32 j, Int32 k) const
 Valeur pour l'élément i,j,k.
 
constexpr __host__ __device__ Int64 offset (Int32 i, Int32 j) const
 Valeur pour l'élément i,j.
 
constexpr __host__ __device__ Int64 offset (Int32 i) const
 Valeur pour l'élément i.
 
constexpr __host__ __device__ Int64 offset (MDIndexType idx) const
 Valeur pour l'élément idx.
 
constexpr __host__ __device__ DataType & operator() (Int32 i, Int32 j, Int32 k, Int32 l) const
 Valeur pour l'élément i,j,k,l.
 
__host__ __device__ DataType & operator() (Int32 i, Int32 j, Int32 k) const
 Valeur pour l'élément i,j,k.
 
constexpr __host__ __device__ DataType & operator() (Int32 i, Int32 j) const
 Valeur pour l'élément i,j.
 
constexpr __host__ __device__ DataType & operator() (Int32 i) const
 Valeur pour l'élément i.
 
constexpr __host__ __device__ DataType operator[] (Int32 i) const
 Valeur pour l'élément i.
 
constexpr __host__ __device__ DataType & operator() (MDIndexType idx) const
 Valeur pour l'élément idx.
 
constexpr __host__ __device__ DataType * ptrAt (Int32 i, Int32 j, Int32 k, Int32 l) const
 Pointeur sur la valeur pour l'élément i,j,k.
 
__host__ __device__ DataType * ptrAt (Int32 i, Int32 j, Int32 k) const
 Pointeur sur la valeur pour l'élément i,j,k.
 
constexpr __host__ __device__ DataType * ptrAt (Int32 i, Int32 j) const
 Pointeur sur la valeur pour l'élément i,j.
 
constexpr __host__ __device__ DataType * ptrAt (Int32 i) const
 Pointeur sur la valeur pour l'élément i.
 
constexpr __host__ __device__ DataType * ptrAt (MDIndexType idx) const
 Pointeur sur la valeur pour l'élément i.
 
__host__ __device__ MDSpan< DataType, RemovedFirstExtentsType, LayoutPolicy > slice (Int32 i) const
 Retourne une vue de dimension (N-1) à partir de l'élément d'indice i.
 
constexpr __host__ __device__ MDSpan< const DataType, Extents, LayoutPolicy > constSpan () const
 
constexpr __host__ __device__ MDSpan< const DataType, Extents, LayoutPolicy > constMDSpan () const
 
constexpr __host__ __device__ Span< DataType > to1DSpan () const
 
constexpr SmallSpan< DataType > to1DSmallSpan ()
 
constexpr SmallSpan< const DataType > to1DSmallSpan () const
 
constexpr SmallSpan< const DataType > to1DConstSmallSpan () const
 

Amis

class NumArray< UnqualifiedValueType, Extents, LayoutPolicy >
 
class MDSpan< const UnqualifiedValueType, Extents, LayoutPolicy >
 

Description détaillée

template<typename DataType, typename Extents, typename LayoutPolicy>
class Arcane::MDSpan< DataType, Extents, LayoutPolicy >

Classe de base des vues multi-dimensionnelles.

Cette classe s'inspire la classe std::mdspan en cours de définition (voir http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2021/p0009r12.html)

Cette classe est utilisée pour gérer les vues sur les tableaux tels que NumArray. Les méthodes de cette classe sont accessibles sur accélérateur.

Pour plus d'informations, se reporter à la page Utilisation de la classe NumArray.

Définition à la ligne 43 du fichier MDSpan.h.

Documentation des définitions de type membres

◆ ArrayBoundsIndexType

template<typename DataType , typename Extents , typename LayoutPolicy >
using Arcane::MDSpan< DataType, Extents, LayoutPolicy >::ArrayBoundsIndexType = typename Extents::MDIndexType

Définition à la ligne 61 du fichier MDSpan.h.

◆ ArrayExtentsWithOffsetType

template<typename DataType , typename Extents , typename LayoutPolicy >
using Arcane::MDSpan< DataType, Extents, LayoutPolicy >::ArrayExtentsWithOffsetType = ArrayExtentsWithOffset<Extents, LayoutPolicy>

Définition à la ligne 56 du fichier MDSpan.h.

◆ DynamicDimsType

template<typename DataType , typename Extents , typename LayoutPolicy >
using Arcane::MDSpan< DataType, Extents, LayoutPolicy >::DynamicDimsType = typename Extents::DynamicDimsType

Définition à la ligne 57 du fichier MDSpan.h.

◆ ExtentsType

template<typename DataType , typename Extents , typename LayoutPolicy >
using Arcane::MDSpan< DataType, Extents, LayoutPolicy >::ExtentsType = Extents

Définition à la ligne 53 du fichier MDSpan.h.

◆ IndexType

template<typename DataType , typename Extents , typename LayoutPolicy >
using Arcane::MDSpan< DataType, Extents, LayoutPolicy >::IndexType = typename Extents::MDIndexType

Définition à la ligne 62 du fichier MDSpan.h.

◆ LayoutPolicyType

template<typename DataType , typename Extents , typename LayoutPolicy >
using Arcane::MDSpan< DataType, Extents, LayoutPolicy >::LayoutPolicyType = LayoutPolicy

Définition à la ligne 54 du fichier MDSpan.h.

◆ MDIndexType

template<typename DataType , typename Extents , typename LayoutPolicy >
using Arcane::MDSpan< DataType, Extents, LayoutPolicy >::MDIndexType = typename Extents::MDIndexType

Définition à la ligne 55 du fichier MDSpan.h.

◆ RemovedFirstExtentsType

template<typename DataType , typename Extents , typename LayoutPolicy >
using Arcane::MDSpan< DataType, Extents, LayoutPolicy >::RemovedFirstExtentsType = typename Extents::RemovedFirstExtentsType

Définition à la ligne 58 du fichier MDSpan.h.

◆ value_type

template<typename DataType , typename Extents , typename LayoutPolicy >
using Arcane::MDSpan< DataType, Extents, LayoutPolicy >::value_type = DataType

Définition à la ligne 52 du fichier MDSpan.h.

Documentation des constructeurs et destructeur

◆ MDSpan() [1/3]

template<typename DataType , typename Extents , typename LayoutPolicy >
constexpr __host__ __device__ Arcane::MDSpan< DataType, Extents, LayoutPolicy >::MDSpan ( DataType *  ptr,
ArrayExtentsWithOffsetType  extents 
)
inlineconstexpr

Définition à la ligne 67 du fichier MDSpan.h.

◆ MDSpan() [2/3]

template<typename DataType , typename Extents , typename LayoutPolicy >
constexpr __host__ __device__ Arcane::MDSpan< DataType, Extents, LayoutPolicy >::MDSpan ( DataType *  ptr,
const DynamicDimsType &  dims 
)
inlineconstexpr

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

◆ MDSpan() [3/3]

template<typename DataType , typename Extents , typename LayoutPolicy >
template<typename X , typename = std::enable_if_t<std::is_same_v<X, UnqualifiedValueType>>>
constexpr __host__ __device__ Arcane::MDSpan< DataType, Extents, LayoutPolicy >::MDSpan ( const MDSpan< X, Extents > &  rhs)
inlineconstexpr

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

Documentation des fonctions membres

◆ _internalData() [1/2]

template<typename DataType , typename Extents , typename LayoutPolicy >
constexpr __host__ __device__ DataType * Arcane::MDSpan< DataType, Extents, LayoutPolicy >::_internalData ( )
inlineconstexpr

Définition à la ligne 85 du fichier MDSpan.h.

◆ _internalData() [2/2]

template<typename DataType , typename Extents , typename LayoutPolicy >
constexpr __host__ __device__ const DataType * Arcane::MDSpan< DataType, Extents, LayoutPolicy >::_internalData ( ) const
inlineconstexpr

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

◆ constMDSpan()

template<typename DataType , typename Extents , typename LayoutPolicy >
constexpr __host__ __device__ MDSpan< const DataType, Extents, LayoutPolicy > Arcane::MDSpan< DataType, Extents, LayoutPolicy >::constMDSpan ( ) const
inlineconstexpr

Définition à la ligne 222 du fichier MDSpan.h.

◆ constSpan()

template<typename DataType , typename Extents , typename LayoutPolicy >
constexpr __host__ __device__ MDSpan< const DataType, Extents, LayoutPolicy > Arcane::MDSpan< DataType, Extents, LayoutPolicy >::constSpan ( ) const
inlineconstexpr

Définition à la ligne 217 du fichier MDSpan.h.

◆ extent0()

template<typename DataType , typename Extents , typename LayoutPolicy >
constexpr __host__ __device__ Int32 Arcane::MDSpan< DataType, Extents, LayoutPolicy >::extent0 ( ) const
inlineconstexpr

Valeur de la première dimension.

Définition à la ligne 102 du fichier MDSpan.h.

Référencé par Arcane::NumArray< DataType, Extents, LayoutPolicy >::dim1Size(), et Arcane::NumArray< DataType, Extents, LayoutPolicy >::extent0().

◆ extent1()

template<typename DataType , typename Extents , typename LayoutPolicy >
constexpr __host__ __device__ Int32 Arcane::MDSpan< DataType, Extents, LayoutPolicy >::extent1 ( ) const
inlineconstexpr

Valeur de la deuxième dimension.

Définition à la ligne 104 du fichier MDSpan.h.

Référencé par Arcane::NumArray< DataType, Extents, LayoutPolicy >::dim2Size(), et Arcane::NumArray< DataType, Extents, LayoutPolicy >::extent1().

◆ extent2()

template<typename DataType , typename Extents , typename LayoutPolicy >
constexpr __host__ __device__ Int32 Arcane::MDSpan< DataType, Extents, LayoutPolicy >::extent2 ( ) const
inlineconstexpr

Valeur de la troisième dimension.

Définition à la ligne 106 du fichier MDSpan.h.

Référencé par Arcane::NumArray< DataType, Extents, LayoutPolicy >::dim3Size(), et Arcane::NumArray< DataType, Extents, LayoutPolicy >::extent2().

◆ extent3()

template<typename DataType , typename Extents , typename LayoutPolicy >
constexpr __host__ __device__ Int32 Arcane::MDSpan< DataType, Extents, LayoutPolicy >::extent3 ( ) const
inlineconstexpr

Valeur de la quatrième dimension.

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

Référencé par Arcane::NumArray< DataType, Extents, LayoutPolicy >::dim4Size(), et Arcane::NumArray< DataType, Extents, LayoutPolicy >::extent3().

◆ extents()

template<typename DataType , typename Extents , typename LayoutPolicy >
ArrayExtents< Extents > Arcane::MDSpan< DataType, Extents, LayoutPolicy >::extents ( ) const
inline

Définition à la ligne 90 du fichier MDSpan.h.

◆ extentsWithOffset()

template<typename DataType , typename Extents , typename LayoutPolicy >
ArrayExtentsWithOffsetType Arcane::MDSpan< DataType, Extents, LayoutPolicy >::extentsWithOffset ( ) const
inline

Définition à la ligne 94 du fichier MDSpan.h.

◆ offset() [1/5]

template<typename DataType , typename Extents , typename LayoutPolicy >
constexpr __host__ __device__ Int64 Arcane::MDSpan< DataType, Extents, LayoutPolicy >::offset ( Int32  i) const
inlineconstexpr

Valeur pour l'élément i.

Définition à la ligne 129 du fichier MDSpan.h.

◆ offset() [2/5]

template<typename DataType , typename Extents , typename LayoutPolicy >
constexpr __host__ __device__ Int64 Arcane::MDSpan< DataType, Extents, LayoutPolicy >::offset ( Int32  i,
Int32  j 
) const
inlineconstexpr

Valeur pour l'élément i,j.

Définition à la ligne 124 du fichier MDSpan.h.

◆ offset() [3/5]

template<typename DataType , typename Extents , typename LayoutPolicy >
constexpr __host__ __device__ Int64 Arcane::MDSpan< DataType, Extents, LayoutPolicy >::offset ( Int32  i,
Int32  j,
Int32  k 
) const
inlineconstexpr

Valeur pour l'élément i,j,k.

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

◆ offset() [4/5]

◆ offset() [5/5]

template<typename DataType , typename Extents , typename LayoutPolicy >
constexpr __host__ __device__ Int64 Arcane::MDSpan< DataType, Extents, LayoutPolicy >::offset ( MDIndexType  idx) const
inlineconstexpr

Valeur pour l'élément idx.

Définition à la ligne 132 du fichier MDSpan.h.

◆ operator()() [1/5]

template<typename DataType , typename Extents , typename LayoutPolicy >
constexpr __host__ __device__ DataType & Arcane::MDSpan< DataType, Extents, LayoutPolicy >::operator() ( Int32  i) const
inlineconstexpr

Valeur pour l'élément i.

Définition à la ligne 155 du fichier MDSpan.h.

Références Arcane::MDSpan< DataType, Extents, LayoutPolicy >::offset().

◆ operator()() [2/5]

template<typename DataType , typename Extents , typename LayoutPolicy >
constexpr __host__ __device__ DataType & Arcane::MDSpan< DataType, Extents, LayoutPolicy >::operator() ( Int32  i,
Int32  j 
) const
inlineconstexpr

Valeur pour l'élément i,j.

Définition à la ligne 150 du fichier MDSpan.h.

Références Arcane::MDSpan< DataType, Extents, LayoutPolicy >::offset().

◆ operator()() [3/5]

template<typename DataType , typename Extents , typename LayoutPolicy >
__host__ __device__ DataType & Arcane::MDSpan< DataType, Extents, LayoutPolicy >::operator() ( Int32  i,
Int32  j,
Int32  k 
) const
inline

Valeur pour l'élément i,j,k.

Définition à la ligne 145 du fichier MDSpan.h.

Références Arcane::MDSpan< DataType, Extents, LayoutPolicy >::offset().

◆ operator()() [4/5]

template<typename DataType , typename Extents , typename LayoutPolicy >
constexpr __host__ __device__ DataType & Arcane::MDSpan< DataType, Extents, LayoutPolicy >::operator() ( Int32  i,
Int32  j,
Int32  k,
Int32  l 
) const
inlineconstexpr

Valeur pour l'élément i,j,k,l.

Définition à la ligne 140 du fichier MDSpan.h.

Références Arcane::MDSpan< DataType, Extents, LayoutPolicy >::offset().

◆ operator()() [5/5]

template<typename DataType , typename Extents , typename LayoutPolicy >
constexpr __host__ __device__ DataType & Arcane::MDSpan< DataType, Extents, LayoutPolicy >::operator() ( MDIndexType  idx) const
inlineconstexpr

Valeur pour l'élément idx.

Définition à la ligne 160 du fichier MDSpan.h.

Références Arcane::MDSpan< DataType, Extents, LayoutPolicy >::offset().

◆ operator[]()

template<typename DataType , typename Extents , typename LayoutPolicy >
constexpr __host__ __device__ DataType Arcane::MDSpan< DataType, Extents, LayoutPolicy >::operator[] ( Int32  i) const
inlineconstexpr

Valeur pour l'élément i.

Définition à la ligne 157 du fichier MDSpan.h.

Références Arcane::MDSpan< DataType, Extents, LayoutPolicy >::offset().

◆ ptrAt() [1/5]

template<typename DataType , typename Extents , typename LayoutPolicy >
constexpr __host__ __device__ DataType * Arcane::MDSpan< DataType, Extents, LayoutPolicy >::ptrAt ( Int32  i) const
inlineconstexpr

Pointeur sur la valeur pour l'élément i.

Définition à la ligne 183 du fichier MDSpan.h.

Références Arcane::MDSpan< DataType, Extents, LayoutPolicy >::offset().

◆ ptrAt() [2/5]

template<typename DataType , typename Extents , typename LayoutPolicy >
constexpr __host__ __device__ DataType * Arcane::MDSpan< DataType, Extents, LayoutPolicy >::ptrAt ( Int32  i,
Int32  j 
) const
inlineconstexpr

Pointeur sur la valeur pour l'élément i,j.

Définition à la ligne 178 du fichier MDSpan.h.

Références Arcane::MDSpan< DataType, Extents, LayoutPolicy >::offset().

◆ ptrAt() [3/5]

template<typename DataType , typename Extents , typename LayoutPolicy >
__host__ __device__ DataType * Arcane::MDSpan< DataType, Extents, LayoutPolicy >::ptrAt ( Int32  i,
Int32  j,
Int32  k 
) const
inline

Pointeur sur la valeur pour l'élément i,j,k.

Définition à la ligne 173 du fichier MDSpan.h.

Références Arcane::MDSpan< DataType, Extents, LayoutPolicy >::offset().

◆ ptrAt() [4/5]

◆ ptrAt() [5/5]

template<typename DataType , typename Extents , typename LayoutPolicy >
constexpr __host__ __device__ DataType * Arcane::MDSpan< DataType, Extents, LayoutPolicy >::ptrAt ( MDIndexType  idx) const
inlineconstexpr

Pointeur sur la valeur pour l'élément i.

Définition à la ligne 186 du fichier MDSpan.h.

Références Arcane::MDSpan< DataType, Extents, LayoutPolicy >::offset().

◆ slice()

template<typename DataType , typename Extents , typename LayoutPolicy >
__host__ __device__ MDSpan< DataType, RemovedFirstExtentsType, LayoutPolicy > Arcane::MDSpan< DataType, Extents, LayoutPolicy >::slice ( Int32  i) const
inline

Retourne une vue de dimension (N-1) à partir de l'élément d'indice i.

Par exemple:

MDSpan<Real, MDDim2> sliced_span = span3.slice(5);
// sliced_span(i,i) <=> span3(5,i,j);
Classe de base des vues multi-dimensionnelles.
Definition MDSpan.h:44
__host__ __device__ MDSpan< DataType, RemovedFirstExtentsType, LayoutPolicy > slice(Int32 i) const
Retourne une vue de dimension (N-1) à partir de l'élément d'indice i.
Definition MDSpan.h:206
Avertissement
Cela n'est valide que si LayoutPolicy est RightLayout.

Définition à la ligne 206 du fichier MDSpan.h.

Références Arcane::MDSpan< DataType, Extents, LayoutPolicy >::ptrAt().

◆ to1DConstSmallSpan()

template<typename DataType , typename Extents , typename LayoutPolicy >
constexpr SmallSpan< const DataType > Arcane::MDSpan< DataType, Extents, LayoutPolicy >::to1DConstSmallSpan ( ) const
inlineconstexpr

Définition à la ligne 240 du fichier MDSpan.h.

◆ to1DSmallSpan() [1/2]

template<typename DataType , typename Extents , typename LayoutPolicy >
constexpr SmallSpan< DataType > Arcane::MDSpan< DataType, Extents, LayoutPolicy >::to1DSmallSpan ( )
inlineconstexpr

Définition à la ligne 232 du fichier MDSpan.h.

◆ to1DSmallSpan() [2/2]

template<typename DataType , typename Extents , typename LayoutPolicy >
constexpr SmallSpan< const DataType > Arcane::MDSpan< DataType, Extents, LayoutPolicy >::to1DSmallSpan ( ) const
inlineconstexpr

Définition à la ligne 236 du fichier MDSpan.h.

◆ to1DSpan()

template<typename DataType , typename Extents , typename LayoutPolicy >
constexpr __host__ __device__ Span< DataType > Arcane::MDSpan< DataType, Extents, LayoutPolicy >::to1DSpan ( ) const
inlineconstexpr

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

Documentation des fonctions amies et associées

◆ MDSpan< const UnqualifiedValueType, Extents, LayoutPolicy >

template<typename DataType , typename Extents , typename LayoutPolicy >
friend class MDSpan< const UnqualifiedValueType, Extents, LayoutPolicy >
friend

Définition à la ligne 1 du fichier MDSpan.h.

◆ NumArray< UnqualifiedValueType, Extents, LayoutPolicy >

template<typename DataType , typename Extents , typename LayoutPolicy >
friend class NumArray< UnqualifiedValueType, Extents, LayoutPolicy >
friend

Définition à la ligne 1 du fichier MDSpan.h.


La documentation de cette classe a été générée à partir du fichier suivant :