Arcane  v3.14.10.0
Documentation développeur
Chargement...
Recherche...
Aucune correspondance
MultiArray2View.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/* MultiArray2View.h (C) 2000-2015 */
9/* */
10/* Vue d'un tableau 2D à taille multiple. */
11/*---------------------------------------------------------------------------*/
12#ifndef ARCANE_UTILS_MULTIARRAY2VIEW_H
13#define ARCANE_UTILS_MULTIARRAY2VIEW_H
14/*---------------------------------------------------------------------------*/
15/*---------------------------------------------------------------------------*/
16
18#include "arcane/utils/ArrayView.h"
19
20/*---------------------------------------------------------------------------*/
21/*---------------------------------------------------------------------------*/
22
23ARCANE_BEGIN_NAMESPACE
24
25/*---------------------------------------------------------------------------*/
26/*---------------------------------------------------------------------------*/
27
28template<typename DataType> class MultiArray2;
29
30/*---------------------------------------------------------------------------*/
31/*---------------------------------------------------------------------------*/
35template<class DataType>
37{
38 public:
41 : m_buffer(buf), m_indexes(indexes), m_sizes(sizes) { }
44 public:
46 Integer dim1Size() const { return m_sizes.size(); }
51 ARCANE_DEPRECATED_122 Integer size() const { return dim1Size(); }
53 IntegerConstArrayView dim2Sizes() const { return m_sizes; }
55 Integer totalNbElement() const { return m_buffer.size(); }
56 public:
59 {
60 return ArrayView<DataType>(this->m_sizes[i],&this->m_buffer[this->m_indexes[i]]);
61 }
64 {
65 return ConstArrayView<DataType>(this->m_sizes[i],this->m_buffer.data()+ (this->m_indexes[i]));
66 }
67 private:
68 ArrayView<DataType> m_buffer;
69 IntegerConstArrayView m_indexes;
71};
72
73/*---------------------------------------------------------------------------*/
74/*---------------------------------------------------------------------------*/
78template<class DataType>
80{
81 private:
82 friend class MultiArray2<DataType>;
83 public:
87 : m_buffer(buf), m_indexes(indexes), m_sizes(sizes) { }
90 public:
92 Integer dim1Size() const { return m_sizes.size(); }
97 ARCANE_DEPRECATED_122 Integer size() const { return dim1Size(); }
99 IntegerConstArrayView dim2Sizes() const { return m_sizes; }
101 Integer totalNbElement() const { return m_buffer.size(); }
102 public:
105 {
106 return ConstArrayView<DataType>(this->m_sizes[i],this->m_buffer.data()+ (this->m_indexes[i]));
107 }
108 private:
110 IntegerConstArrayView m_indexes;
111 IntegerConstArrayView m_sizes;
112};
113
114/*---------------------------------------------------------------------------*/
115/*---------------------------------------------------------------------------*/
116
117ARCANE_END_NAMESPACE
118
119/*---------------------------------------------------------------------------*/
120/*---------------------------------------------------------------------------*/
121
122#endif
Déclarations des types utilisés dans Arcane.
Vue constante sur un MultiArray2.
ConstMultiArray2View(ConstArrayView< DataType > buf, IntegerConstArrayView indexes, IntegerConstArrayView sizes)
Vue sur la tableau buf.
ConstArrayView< DataType > operator[](Integer i) const
i-ème élément du tableau
ARCANE_DEPRECATED_122 Integer size() const
Nombre d'éléments de la première dimension.
Integer dim1Size() const
Nombre d'éléments de la première dimension.
IntegerConstArrayView dim2Sizes() const
Nombre d'éléments de la deuxième dimension.
Integer totalNbElement() const
Nombre total d'éléments dans le tableau.
Lecteur des fichiers de maillage via la bibliothèque LIMA.
Definition Lima.cc:120
Vue modifiable sur un MultiArray2.
MultiArray2View(ArrayView< DataType > buf, IntegerConstArrayView indexes, IntegerConstArrayView sizes)
Vue sur la tableau buf.
IntegerConstArrayView dim2Sizes() const
Nombre d'éléments de la deuxième dimension.
Integer dim1Size() const
Nombre d'éléments de la première dimension.
ConstArrayView< DataType > operator[](Integer i) const
i-ème élément du tableau
ARCANE_DEPRECATED_122 Integer size() const
Nombre d'éléments de la première dimension.
Integer totalNbElement() const
Nombre total d'éléments dans le tableau.
ArrayView< DataType > operator[](Integer i)
i-ème élément du tableau
Classe de base des tableau 2D à taille multiple.
Definition MultiArray2.h:57
Vue constante d'un tableau de type T.