12#ifndef ARCANE_UTILS_MDDIM_H
13#define ARCANE_UTILS_MDDIM_H
32 template <
class...
Int32>
constexpr int doSum(
Int32... x)
36 constexpr int oneIfDynamic(
Int32 x)
42 template <
class...
Int32>
constexpr int nbDynamic(
Int32... args)
44 return doSum(oneIfDynamic(args)...);
53template <
typename IndexType_>
60 static constexpr int rank() {
return 0; }
61 static constexpr int nb_dynamic = 0;
73template <
typename IndexType_, Int32 X0>
78 static constexpr int rank() {
return 1; }
79 static constexpr int nb_dynamic = impl::extent::nbDynamic(
X0);
80 static constexpr bool is_full_dynamic() {
return (nb_dynamic == 1); }
99template <
typename IndexType_, Int32 X0, Int32 X1>
104 static constexpr int rank() {
return 2; }
105 static constexpr int nb_dynamic = impl::extent::nbDynamic(
X0,
X1);
106 static constexpr bool is_full_dynamic() {
return (nb_dynamic == 2); }
124template <
typename IndexType_, Int32 X0, Int32 X1, Int32 X2>
129 static constexpr int rank() {
return 3; }
130 static constexpr int nb_dynamic = impl::extent::nbDynamic(
X0,
X1,
X2);
131 static constexpr bool is_full_dynamic() {
return (nb_dynamic == 3); }
148template <
typename IndexType_, Int32 X0, Int32 X1, Int32 X2, Int32 X3>
153 static constexpr int rank() {
return 4; }
154 static constexpr int nb_dynamic = impl::extent::nbDynamic(
X0,
X1,
X2,
X3);
155 static constexpr bool is_full_dynamic() {
return (nb_dynamic == 4); }
230#define ARCANE_USE_TYPE_FOR_EXTENT
231#define A_MDRANK_TYPE(rank_name) typename rank_name
232#define A_MDRANK_RANK_VALUE(rank_name) (rank_name ::rank())
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 -*-
ExtentsV< Int32, DynExtent, DynExtent, DynExtent > MDDim3
Constante pour un tableau dynamique de rang 3.
constexpr Int32 DynExtent
Constante pour indiquer que la dimension d'un tableau est dynamique.
ExtentsV< Int32, DynExtent, DynExtent, DynExtent, DynExtent > MDDim4
Constante pour un tableau dynamique de rang 4.
ExtentsV< Int32 > MDDim0
Constante pour un tableau dynamique de rang 0.
ExtentsV< Int32, DynExtent, DynExtent > MDDim2
Constante pour un tableau dynamique de rang 2.
ExtentsV< Int32, DynExtent > MDDim1
Constante pour un tableau dynamique de rang 1.