12#ifndef ARCANE_ACCELERATOR_SPANVIEW_H
13#define ARCANE_ACCELERATOR_SPANVIEW_H
17#include "arcane/utils/NumArray.h"
38template <
typename DataType,
typename Extents,
typename LayoutPolicy>
64template <
typename Accessor>
70 using DataType =
typename Accessor::ValueType;
71 using AccessorReturnType =
typename Accessor::AccessorReturnType;
73 using size_type =
typename SpanType::size_type;
82 constexpr ARCCORE_HOST_DEVICE AccessorReturnType operator()(size_type i)
const
84 return Accessor::build(m_values.
ptrAt(i));
87 constexpr ARCCORE_HOST_DEVICE AccessorReturnType operator[](size_type i)
const
89 return Accessor::build(m_values.
ptrAt(i));
91 constexpr ARCCORE_HOST_DEVICE size_type size()
const {
return m_values.
size(); }
103template <
typename Accessor>
109 using DataType =
typename Accessor::ValueType;
110 using AccessorReturnType =
typename Accessor::AccessorReturnType;
112 using size_type =
typename SpanType::size_type;
121 constexpr ARCCORE_HOST_DEVICE AccessorReturnType operator()(size_type i)
const
123 return Accessor::build(m_values.
ptrAt(i));
126 constexpr ARCCORE_HOST_DEVICE AccessorReturnType operator[](size_type i)
const
128 return Accessor::build(m_values.
ptrAt(i));
130 constexpr ARCCORE_HOST_DEVICE size_type size()
const {
return m_values.
size(); }
142template <
typename DataType>
auto
145 using Accessor = DataViewSetter<DataType>;
154template <
typename DataType>
auto
165template <
typename DataType>
auto
168 using Accessor = DataViewSetter<DataType>;
176template <
typename DataType>
auto
187template <
typename DataType>
auto
199template <
typename DataType>
auto
210template <
typename DataType>
auto
222template <
typename DataType>
auto
233template <
typename DataType>
auto
236 using Accessor = DataViewGetter<DataType>;
245template <
typename DataType>
auto
256template <
typename DataType>
auto
259 using Accessor = DataViewGetter<DataType>;
267template <
typename DataType>
auto
Vue en lecture, écriture ou lecture/écriture sur un 'SmallSpan'.
Classe de base des vues sur les 'NumArray'.
Vue en lecture, écriture ou lecture/écriture sur un 'Span'.
Informations pour construire une vue pour les données sur accélérateur.
Classe pour accéder à un élément d'une vue en lecture/écriture.
Vue modifiable d'un tableau d'un type T.
Classe de base des vecteurs 1D de données.
Span< const T > span() const
Vue immutable sur ce tableau.
Vue constante d'un tableau de type T.
Vue d'un tableau d'éléments de type T.
constexpr __host__ __device__ SizeType size() const noexcept
Retourne la taille du tableau.
constexpr __host__ __device__ pointer ptrAt(SizeType index) const
Addresse du index-ème élément.
Vue d'un tableau d'éléments de type T.
Espace de nom pour l'utilisation des accélérateurs.
auto viewInOut(RunCommand &cmd, CellMaterialVariableScalarRef< DataType > &var)
Vue en lecture/écriture pour les variables materiaux scalaire.
auto viewIn(RunCommand &cmd, const CellMaterialVariableScalarRef< DataType > &var)
Vue en lecture pour les variables materiaux scalaire.
auto viewOut(RunCommand &cmd, CellMaterialVariableScalarRef< DataType > &var)
Vue en écriture pour les variables materiaux scalaire.