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;
78 : SpanViewBase(command)
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;
117 : SpanViewBase(command)
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
190 using Accessor = DataViewGetterSetter<DataType>;
199template <
typename DataType>
auto
210template <
typename DataType>
auto
213 using Accessor = DataViewGetterSetter<DataType>;
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'.
Vue en lecture, écriture ou lecture/écriture sur un 'Span'.
Informations pour construire une vue pour les données sur accélérateur.
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.
Vue d'un tableau d'éléments de type T.
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.