12#ifndef ARCANE_ACCELERATOR_NUMARRAYVIEWS_H
13#define ARCANE_ACCELERATOR_NUMARRAYVIEWS_H
17#include "arcane/utils/NumArray.h"
29template <
typename DataType,
typename Extents,
typename LayoutPolicy>
31template <
typename Accessor,
typename Extents,
typename LayoutPolicy>
55template <
typename Accessor,
typename Extents,
typename LayoutType>
61 using DataType =
typename Accessor::ValueType;
63 using AccessorReturnType =
typename Accessor::AccessorReturnType;
73 template <
typename X = Extents,
typename = std::enable_if_t<X::rank() == 1,
void>>
76 return Accessor::build(m_values.
ptrAt(i));
79 template <
typename X = Extents,
typename = std::enable_if_t<X::rank() == 1,
void>>
82 return Accessor::build(m_values.
ptrAt(idx));
85 template <
typename X = Extents,
typename = std::enable_if_t<X::rank() == 1,
void>>
88 return Accessor::build(m_values.
ptrAt(i));
91 template <
typename X = Extents,
typename = std::enable_if_t<X::rank() == 1,
void>>
94 return Accessor::build(m_values.
ptrAt(idx));
98 template <
typename X = Extents,
typename = std::enable_if_t<X::rank() == 2,
void>>
101 return Accessor::build(m_values.
ptrAt(i,
j));
104 template <
typename X = Extents,
typename = std::enable_if_t<X::rank() == 2,
void>>
107 return Accessor::build(m_values.
ptrAt(idx));
111 template <
typename X = Extents,
typename = std::enable_if_t<X::rank() == 3,
void>>
114 return Accessor::build(m_values.
ptrAt(i,
j,
k));
117 template <
typename X = Extents,
typename = std::enable_if_t<X::rank() == 3,
void>>
120 return Accessor::build(m_values.
ptrAt(idx));
124 template <
typename X = Extents,
typename = std::enable_if_t<X::rank() == 4,
void>>
127 return Accessor::build(m_values.
ptrAt(i,
j,
k, l));
130 template <
typename X = Extents,
typename = std::enable_if_t<X::rank() == 4,
void>>
133 return Accessor::build(m_values.
ptrAt(idx));
139 return m_values.to1DSpan();
152template <
typename DataType,
typename Extents,
typename LayoutPolicy>
auto
165template <
typename DataType,
typename Extents,
typename LayoutPolicy>
auto
177template <
typename DataType,
typename Extents,
typename LayoutType>
auto
188template <
typename DataType,
typename Extents,
typename LayoutType = DefaultLayout>
192template <
typename DataType,
typename Extents,
typename LayoutType = DefaultLayout>
196template <
typename DataType,
typename Extents,
typename LayoutType = DefaultLayout>
Classe de base des vues sur les 'NumArray'.
Vue en lecture, écriture ou lecture/écriture sur un 'NumArray'.
constexpr __host__ __device__ AccessorReturnType operator()(Int32 i) const
Accesseur pour un tableau de rang 1.
constexpr __host__ __device__ AccessorReturnType operator[](Int32 i) const
Accesseur pour un tableau de rang 1.
constexpr __host__ __device__ AccessorReturnType operator()(Int32 i, Int32 j, Int32 k, Int32 l) const
Accesseur pour un tableau de rang 4.
constexpr __host__ __device__ AccessorReturnType operator()(ArrayIndex< 2 > idx) const
Accesseur pour un tableau de rang 2.
constexpr __host__ __device__ AccessorReturnType operator[](ArrayIndex< 1 > idx) const
Accesseur pour un tableau de rang 1.
constexpr __host__ __device__ AccessorReturnType operator()(ArrayIndex< 4 > idx) const
Accesseur pour un tableau de rang 4.
constexpr __host__ __device__ AccessorReturnType operator()(ArrayIndex< 3 > idx) const
Accesseur pour un tableau de rang 3.
constexpr __host__ __device__ AccessorReturnType operator()(Int32 i, Int32 j, Int32 k) const
Accesseur pour un tableau de rang 3.
constexpr __host__ __device__ AccessorReturnType operator()(Int32 i, Int32 j) const
Accesseur pour un tableau de rang 2.
constexpr __host__ __device__ AccessorReturnType operator()(ArrayIndex< 1 > idx) const
Accesseur pour un tableau de rang 1.
constexpr __host__ __device__ Span< DataType > to1DSpan() const
Converti en une vue 1D.
Informations pour construire une vue pour les données sur accélérateur.
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.
Référence à une instance.
Espace de nom pour l'utilisation des accélérateurs.
auto viewInOut(const ViewBuildInfo &vbi, CellMaterialVariableScalarRef< DataType > &var)
Vue en lecture/écriture pour les variables materiaux scalaire.
auto viewOut(const ViewBuildInfo &vbi, CellMaterialVariableScalarRef< DataType > &var)
Vue en écriture pour les variables materiaux scalaire.
auto viewIn(const ViewBuildInfo &vbi, const CellMaterialVariableScalarRef< DataType > &var)
Vue en lecture pour les variables materiaux scalaire.
detail::SpanTypeFromSize< conststd::byte, SizeType >::SpanType asBytes(const SpanImpl< DataType, SizeType, Extent > &s)
Converti la vue en un tableau d'octets non modifiables.