Arcane  v3.15.0.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__ MDSpan (SmallSpan< DataType > v)
 
constexpr __host__ __device__ MDSpan (SmallSpan< const DataType > v)
 
constexpr __host__ __device__ ThatClass & operator= (SmallSpan< DataType > v)
 
constexpr __host__ __device__ ThatClass & operator= (SmallSpan< const DataType > v)
 
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 63 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 58 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 59 du fichier MDSpan.h.

◆ ExtentsType

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

Définition à la ligne 55 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 64 du fichier MDSpan.h.

◆ LayoutPolicyType

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

Définition à la ligne 56 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 57 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 60 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 54 du fichier MDSpan.h.

Documentation des constructeurs et destructeur

◆ MDSpan() [1/5]

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 69 du fichier MDSpan.h.

◆ MDSpan() [2/5]

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 74 du fichier MDSpan.h.

◆ MDSpan() [3/5]

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 80 du fichier MDSpan.h.

◆ MDSpan() [4/5]

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

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

◆ MDSpan() [5/5]

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

Définition à la ligne 88 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 107 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 108 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 243 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 238 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 124 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 126 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 128 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 130 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 112 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 116 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 150 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 145 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 140 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 153 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 176 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 171 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 166 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 161 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 181 du fichier MDSpan.h.

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

◆ operator=() [1/2]

template<typename DataType , typename Extents , typename LayoutPolicy >
constexpr __host__ __device__ ThatClass & Arcane::MDSpan< DataType, Extents, LayoutPolicy >::operator= ( SmallSpan< const DataType >  v)
inlineconstexpr

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

◆ operator=() [2/2]

template<typename DataType , typename Extents , typename LayoutPolicy >
constexpr __host__ __device__ ThatClass & Arcane::MDSpan< DataType, Extents, LayoutPolicy >::operator= ( SmallSpan< DataType >  v)
inlineconstexpr

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

◆ 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 178 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 204 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 199 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 194 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 207 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:227
Avertissement
Cela n'est valide que si LayoutPolicy est RightLayout.

Définition à la ligne 227 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 261 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 253 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 257 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 248 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 :