12#ifndef ARCANE_UTILS_EXTENTSV_H
13#define ARCANE_UTILS_EXTENTSV_H
26 template <
class...
Int32>
constexpr int doSum(
Int32... x)
30 constexpr int oneIfDynamic(
Int32 x)
36 template <
class...
Int32>
constexpr int nbDynamic(
Int32... args)
38 return doSum(oneIfDynamic(args)...);
47template <
typename IndexType_>
54 static constexpr int rank() {
return 0; }
55 static constexpr int nb_dynamic = 0;
56 static constexpr bool isDynamic1D() {
return false; }
68template <
typename IndexType_, Int32 X0>
73 static constexpr int rank() {
return 1; }
74 static constexpr int nb_dynamic = impl::extent::nbDynamic(
X0);
75 static constexpr bool is_full_dynamic() {
return (nb_dynamic == 1); }
76 static constexpr bool isDynamic1D() {
return (nb_dynamic == 1); }
86 using IndexType ARCANE_DEPRECATED_REASON(
"Use 'MDIndexType' instead") =
ArrayIndex<1>;
94template <
typename IndexType_, Int32 X0, Int32 X1>
99 static constexpr int rank() {
return 2; }
100 static constexpr int nb_dynamic = impl::extent::nbDynamic(
X0,
X1);
101 static constexpr bool is_full_dynamic() {
return (nb_dynamic == 2); }
102 static constexpr bool isDynamic1D() {
return false; }
111 using IndexType ARCANE_DEPRECATED_REASON(
"Use 'MDIndexType' instead") =
ArrayIndex<2>;
119template <
typename IndexType_, Int32 X0, Int32 X1, Int32 X2>
124 static constexpr int rank() {
return 3; }
125 static constexpr int nb_dynamic = impl::extent::nbDynamic(
X0,
X1,
X2);
126 static constexpr bool is_full_dynamic() {
return (nb_dynamic == 3); }
127 static constexpr bool isDynamic1D() {
return false; }
135 using IndexType ARCANE_DEPRECATED_REASON(
"Use 'MDIndexType' instead") =
MDIndex<3>;
143template <
typename IndexType_, Int32 X0, Int32 X1, Int32 X2, Int32 X3>
148 static constexpr int rank() {
return 4; }
149 static constexpr int nb_dynamic = impl::extent::nbDynamic(
X0,
X1,
X2,
X3);
150 static constexpr bool is_full_dynamic() {
return (nb_dynamic == 4); }
151 static constexpr bool isDynamic1D() {
return false; }
158 using IndexType ARCANE_DEPRECATED_REASON(
"Use 'MDIndexType' instead") =
MDIndex<4>;
Déclarations des types utilisés dans Arcane.
Spécialisation pour les dimensions des tableaux à 0 dimensions.
Lecteur des fichiers de maillage via la bibliothèque LIMA.
Spécialisation pour contenir les dimensions d'un tableau à 4 dimensions.
Spécialisation pour contenir les dimensions d'un tableau à 3 dimensions.
Spécialisation pour contenir les dimensions d'un tableau à 2 dimensions.
Spécialisation pour contenir les dimensions d'un tableau à 1 dimension.
-*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-
constexpr Int32 DynExtent
Constante pour indiquer que la dimension d'un tableau est dynamique.