Arcane  v3.14.10.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-2022 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-2022 */
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
20#include "arcane/utils/Math.h"
21#include "arcane/utils/TraceInfo.h"
22
23/*---------------------------------------------------------------------------*/
24/*---------------------------------------------------------------------------*/
25
26namespace Arcane
27{
28
29/*---------------------------------------------------------------------------*/
30/*---------------------------------------------------------------------------*/
31/*!
32 * \brief Applique à \a ids un remplissage en fin de tableau.
33 *
34 * Cette méthode remplit les éléments de \a ids après la dernière valeur
35 * pour que \a ids ait un nombre d'éléments valide multiple de la taille
36 * d'un vecteur Simd.
37 *
38 * Le tableau associé à la vue doit avoir sufisamment de mémoire allouée
39 * pour remplir les éléments de padding sinon cela conduit à un
40 * débordement de tableau.
41 *
42 * Le remplissage se fait avec comme valeur celle du dernier élément
43 * valide de \a ids.
44 *
45 * Par exemple, si ids.size()==5 et que la taille de vecteur Simd est de 8,
46 * alors ids[5], ids[6] et ids[7] sont remplis avec la valeur de ids[4].
47 */
48//@{
49extern ARCANE_UTILS_EXPORT void
50applySimdPadding(ArrayView<Int32> ids);
51
52extern ARCANE_UTILS_EXPORT void
53applySimdPadding(ArrayView<Int16> ids);
54
55extern ARCANE_UTILS_EXPORT void
56applySimdPadding(ArrayView<Int64> ids);
57
58extern ARCANE_UTILS_EXPORT void
59applySimdPadding(ArrayView<Real> ids);
60//@}
61
62/*---------------------------------------------------------------------------*/
63/*---------------------------------------------------------------------------*/
64
65} // End namespace Arcane
66
67/*---------------------------------------------------------------------------*/
68/*---------------------------------------------------------------------------*/
69
70#endif
-*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-