Arcane  v3.16.0.0
Documentation utilisateur
Chargement...
Recherche...
Aucune correspondance
arcane/src/arcane/utils/ArrayView.h
1// -*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-
2//-----------------------------------------------------------------------------
3// Copyright 2000-2025 CEA (www.cea.fr) IFPEN (www.ifpenergiesnouvelles.com)
4// See the top-level COPYRIGHT file for details.
5// SPDX-License-Identifier: Apache-2.0
6//-----------------------------------------------------------------------------
7/*---------------------------------------------------------------------------*/
8/* ArrayView.h (C) 2000-2025 */
9/* */
10/* Types définissant les vues de tableaux C. */
11/*---------------------------------------------------------------------------*/
12#ifndef ARCANE_UTILS_ARRAYVIEW_H
13#define ARCANE_UTILS_ARRAYVIEW_H
14/*---------------------------------------------------------------------------*/
15/*---------------------------------------------------------------------------*/
16
17#include "arccore/base/ArrayView.h"
18#include "arccore/base/Span.h"
19
21
22/*---------------------------------------------------------------------------*/
23/*---------------------------------------------------------------------------*/
24
25namespace Arcane
26{
27
28/*---------------------------------------------------------------------------*/
29/*---------------------------------------------------------------------------*/
30/*!
31 * \brief Applique à \a ids un remplissage en fin de tableau.
32 *
33 * Cette méthode remplit les éléments de \a ids après la dernière valeur
34 * pour que \a ids ait un nombre d'éléments valide multiple de la taille
35 * d'un vecteur Simd.
36 *
37 * Le tableau associé à la vue doit avoir sufisamment de mémoire allouée
38 * pour remplir les éléments de padding sinon cela conduit à un
39 * débordement de tableau.
40 *
41 * Le remplissage se fait avec comme valeur celle du dernier élément
42 * valide de \a ids.
43 *
44 * Par exemple, si ids.size()==5 et que la taille de vecteur Simd est de 8,
45 * alors ids[5], ids[6] et ids[7] sont remplis avec la valeur de ids[4].
46 */
47//@{
48extern ARCANE_UTILS_EXPORT void
49applySimdPadding(ArrayView<Int32> ids);
50
51extern ARCANE_UTILS_EXPORT void
52applySimdPadding(ArrayView<Int16> ids);
53
54extern ARCANE_UTILS_EXPORT void
55applySimdPadding(ArrayView<Int64> ids);
56
57extern ARCANE_UTILS_EXPORT void
58applySimdPadding(ArrayView<Real> ids);
59//@}
60
61/*---------------------------------------------------------------------------*/
62/*---------------------------------------------------------------------------*/
63
64} // End namespace Arcane
65
66/*---------------------------------------------------------------------------*/
67/*---------------------------------------------------------------------------*/
68
69#endif
Déclarations des types utilisés dans Arcane.
Vue modifiable d'un tableau d'un type T.
-*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-