12#ifndef ARCANE_UTILS_NUMARRAYCONTAINER_H
13#define ARCANE_UTILS_NUMARRAYCONTAINER_H
17#include "arcane/utils/Array.h"
18#include "arcane/utils/MemoryRessource.h"
19#include "arcane/utils/ArcaneCxx20.h"
56template <
typename DataType>
65 static constexpr Int32 _typeSize() {
return static_cast<Int32
>(
sizeof(DataType)); }
92 m_memory_ressource =
r;
98 m_memory_ressource =
rhs.m_memory_ressource;
104 , m_memory_ressource(
rhs.m_memory_ressource)
115 m_memory_ressource =
rhs.m_memory_ressource;
129 std::swap(m_memory_ressource,
rhs.m_memory_ressource);
134 void copyInitializerList(std::initializer_list<DataType>
alist)
139 for (
auto x :
alist) {
163 NumArrayBaseCommon::_memoryAwareFill(asWritableBytes(destination), destination.size(), &v, _typeSize(), indexes, queue);
171 NumArrayBaseCommon::_memoryAwareFill(asWritableBytes(destination), destination.size(), &v, _typeSize(), queue);
179 asWritableBytes(to1DSpan()), m_memory_ressource, queue);
181 void _resizeAndCopy(
const ThatClass& v)
184 _memoryAwareCopy(v, v.memoryRessource(),
nullptr);
File d'exécution pour un accélérateur.
Lecteur des fichiers de maillage via la bibliothèque LIMA.
Implémentation commune à pour NumArray.
Container pour la classe NumArray.
void fill(const DataType &v, RunQueue *queue)
Remplit les éléments de l'instance la valeur v.
void fill(const DataType &v, SmallSpan< const Int32 > indexes, RunQueue *queue)
Remplit les indices données par indexes avec la valeur v.
void copyOnly(const Span< const DataType > &v, eMemoryRessource input_ressource, RunQueue *queue=nullptr)
Copie les valeurs de v dans l'instance.
void setDebugName(const String &name)
Positionne le nom du tableau pour les informations de debug.
String debugName() const
Nom de debug (nul si aucun nom spécifié)
void _move(ThatClassType &rhs) ARCCORE_NOEXCEPT
Implémente l'opérateur d'assignement par déplacement.
void _resizeNoInit(Int64 s, RunQueue *queue=nullptr)
Redimensionne sans initialiser les nouvelles valeurs.
void _initFromAllocator(IMemoryAllocator *a, Int64 acapacity)
Construit un tableau avec un allocateur spécifique a.
Integer capacity() const
Capacité (nombre d'éléments alloués) du vecteur.
void _swap(ThatClassType &rhs) ARCCORE_NOEXCEPT
Échange les valeurs de l'instance avec celles de rhs.
Classe de base des vecteurs 1D de données.
Span< const DataType > span() const
Vue immutable sur ce tableau.
void fill(ConstReferenceType value)
Remplit le tableau avec la valeur value.
Span< const DataType > constSpan() const
Vue constante sur ce tableau.
Interface d'un allocateur pour la mémoire.
Options pour configurer les allocations.
eMemoryRessource
Liste des ressources mémoire disponibles.
@ UnifiedMemory
Alloue en utilisant la mémoire unifiée.