Arcane  v3.15.0.0
Documentation développeur
Chargement...
Recherche...
Aucune correspondance
DataTypes.h
Aller à la documentation de ce fichier.
1// -*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-
2//-----------------------------------------------------------------------------
3// Copyright 2000-2024 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/* DataTypes.h (C) 2000-2024 */
9/* */
10/* Définition des types liées aux données. */
11/*---------------------------------------------------------------------------*/
12#ifndef ARCANE_CORE_DATATYPES_DATATYPES_H
13#define ARCANE_CORE_DATATYPES_DATATYPES_H
14/*---------------------------------------------------------------------------*/
15/*---------------------------------------------------------------------------*/
16
18
19#include <iosfwd>
20
21/*---------------------------------------------------------------------------*/
22/*---------------------------------------------------------------------------*/
23
24namespace Arcane
25{
26
27// NOTE: Swig 4.2.0 ne gère pas bien le 'Int32´.
28// (cela fonctionne avec Swig 4.1.1)
29/*---------------------------------------------------------------------------*/
30/*---------------------------------------------------------------------------*/
34#ifndef SWIG
35enum eDataType : Int32
36#else
37enum eDataType
38#endif
39{
40 DT_Byte = 0,
41 DT_Real = 1,
53 DT_Int8 = 13,
55 DT_Int128 = 15,
56 DT_Unknown = 16
57};
58
60static constexpr Int32 NB_ARCANE_DATA_TYPE = 17;
61
62/*---------------------------------------------------------------------------*/
63/*---------------------------------------------------------------------------*/
68{
69 public:
70 static constexpr const char* N_BYTE = "Byte";
71 static constexpr const char* N_REAL = "Real";
72 static constexpr const char* N_INT16 = "Int16";
73 static constexpr const char* N_INT32 = "Int32";
74 static constexpr const char* N_INT64 = "Int64";
75 static constexpr const char* N_STRING = "String";
76 static constexpr const char* N_REAL2 = "Real2";
77 static constexpr const char* N_REAL3 = "Real3";
78 static constexpr const char* N_REAL2x2 = "Real2x2";
79 static constexpr const char* N_REAL3x3 = "Real3x3";
80 static constexpr const char* N_BFLOAT16 = "BFloat16";
81 static constexpr const char* N_FLOAT16 = "Float16";
82 static constexpr const char* N_FLOAT32 = "Float32";
83 static constexpr const char* N_INT8 = "Int8";
84 static constexpr const char* N_FLOAT128 = "Float128";
85 static constexpr const char* N_INT128 = "Int128";
86 static constexpr const char* N_UNKNOWN = "Unknown";
87};
88
89/*---------------------------------------------------------------------------*/
90/*---------------------------------------------------------------------------*/
91
93extern "C++" ARCANE_CORE_EXPORT const char*
95
97extern "C++" ARCANE_CORE_EXPORT eDataType
98dataTypeFromName(const char* name,bool& has_error);
99
101extern "C++" ARCANE_CORE_EXPORT eDataType
102dataTypeFromName(const char* name);
103
105extern "C++" ARCANE_CORE_EXPORT Integer
107
109extern "C++" ARCANE_CORE_EXPORT std::ostream&
110operator<< (std::ostream& ostr,eDataType data_type);
111
113extern "C++" ARCANE_CORE_EXPORT std::istream&
114operator>> (std::istream& istr,eDataType& data_type);
115
116
117/*---------------------------------------------------------------------------*/
118/*---------------------------------------------------------------------------*/
172
173/*---------------------------------------------------------------------------*/
174/*---------------------------------------------------------------------------*/
175
177extern "C++" ARCANE_CORE_EXPORT void
179
181extern "C++" ARCANE_CORE_EXPORT eDataInitialisationPolicy
183
184/*---------------------------------------------------------------------------*/
185/*---------------------------------------------------------------------------*/
188{
189 TT_None = 0,
190 TT_Read = 1,
191 TT_Write = 2
192};
193
194/*---------------------------------------------------------------------------*/
195/*---------------------------------------------------------------------------*/
196
197} // End namespace Arcane
198
199// Macro pour instantier une classe template pour tous les types numériques
200#define ARCANE_INTERNAL_INSTANTIATE_TEMPLATE_FOR_NUMERIC_DATATYPE1(class_name)\
201template class class_name <Real>;\
202template class class_name <Real3>;\
203template class class_name <Real3x3>;\
204template class class_name <Real2>;\
205template class class_name <Real2x2>;
206
207// Macro pour instantier une classe template pour tous les types numériques
208#define ARCANE_INTERNAL_INSTANTIATE_TEMPLATE_FOR_NUMERIC_DATATYPE2(class_name)\
209template class class_name <Int8>;\
210template class class_name <Int16>;\
211template class class_name <Int32>;\
212template class class_name <Int64>;\
213template class class_name <Byte>
214
215// Macro pour instantier une classe template pour tous les types numériques
216#define ARCANE_INTERNAL_INSTANTIATE_TEMPLATE_FOR_NUMERIC_DATATYPE3(class_name)\
217template class class_name <BFloat16>;\
218template class class_name <Float16>;\
219template class class_name <Float32>;
220
221// Macro pour instantier une classe template pour tous les types numériques
222#define ARCANE_INTERNAL_INSTANTIATE_TEMPLATE_FOR_NUMERIC_DATATYPE(class_name)\
223 ARCANE_INTERNAL_INSTANTIATE_TEMPLATE_FOR_NUMERIC_DATATYPE1(class_name);\
224 ARCANE_INTERNAL_INSTANTIATE_TEMPLATE_FOR_NUMERIC_DATATYPE2(class_name);\
225 ARCANE_INTERNAL_INSTANTIATE_TEMPLATE_FOR_NUMERIC_DATATYPE3(class_name)
226
227/*---------------------------------------------------------------------------*/
228/*---------------------------------------------------------------------------*/
229
230#endif
Déclarations des types utilisés dans Arcane.
Liste des noms pour eDataType.
Definition DataTypes.h:68
Lecteur des fichiers de maillage via la bibliothèque LIMA.
Definition Lima.cc:149
std::ostream & operator<<(std::ostream &o, eExecutionPolicy exec_policy)
Affiche le nom de la politique d'exécution.
-*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-
ARCANE_DATATYPE_EXPORT Integer dataTypeSize(eDataType type)
Taille du type de donnée type (qui doit être différent de DT_String)
Definition DataTypes.cc:109
void setGlobalDataInitialisationPolicy(eDataInitialisationPolicy init_policy)
Positionne la politique d'initialisation des variables.
Definition DataTypes.cc:156
eDataInitialisationPolicy
Type de politique d'initialisation possible pour une donnée.
Definition DataTypes.h:131
@ DIP_InitInitialWithNanResizeWithDefault
Initialisation avec des NaN pour à la création et le constructeur par défaut ensuite.
Definition DataTypes.h:170
@ DIP_Legacy
Initialisation en mode historique.
Definition DataTypes.h:161
@ DIP_None
Pas d'initialisation forcée.
Definition DataTypes.h:133
@ DIP_InitWithNan
Initialisation avec des NaN (Not a Number)
Definition DataTypes.h:148
@ DIP_InitWithDefault
Initialisation avec le constructeur par défaut.
Definition DataTypes.h:140
eDataInitialisationPolicy getGlobalDataInitialisationPolicy()
Récupère la politique d'initialisation des variables.
Definition DataTypes.cc:162
eTraceType
Type de trace possible.
Definition DataTypes.h:188
std::istream & operator>>(std::istream &istr, eItemKind &item_kind)
Opérateur d'entrée depuis un flot.
eDataType
Type d'une donnée.
Definition DataTypes.h:39
@ DT_Float32
Donnée de type 'Float32'.
Definition DataTypes.h:52
@ DT_Int128
Donnée de type entier sur 128 bits.
Definition DataTypes.h:55
@ DT_Real2x2
Donnée de type tenseur 3x3.
Definition DataTypes.h:48
@ DT_Int16
Donnée de type entier 16 bits.
Definition DataTypes.h:42
@ DT_Int8
Donnée de type entier sur 8 bits.
Definition DataTypes.h:53
@ DT_Real3x3
Donnée de type tenseur 3x3.
Definition DataTypes.h:49
@ DT_Int32
Donnée de type entier 32 bits.
Definition DataTypes.h:43
@ DT_Real3
Donnée de type vecteur 3.
Definition DataTypes.h:47
@ DT_Float16
Donnée de type 'Float16'.
Definition DataTypes.h:51
@ DT_Int64
Donnée de type entier 64 bits.
Definition DataTypes.h:44
@ DT_Unknown
Donnée de type inconnue ou non initialisée.
Definition DataTypes.h:56
@ DT_String
Donnée de type chaîne de caractère UTF-8.
Definition DataTypes.h:45
@ DT_BFloat16
Donnée de type 'BFloat16'.
Definition DataTypes.h:50
@ DT_Real2
Donnée de type vecteur 2.
Definition DataTypes.h:46
@ DT_Real
Donnée de type réel.
Definition DataTypes.h:41
@ DT_Byte
Donnée de type octet.
Definition DataTypes.h:40
@ DT_Float128
Donnée de type flottant sur 128 bits.
Definition DataTypes.h:54
ARCANE_DATATYPE_EXPORT eDataType dataTypeFromName(const char *name, bool &has_error)
Trouve le type associé à name.
Definition DataTypes.cc:92
const char * dataTypeName(eDataType type)
Nom du type de donnée.
Definition DataTypes.cc:70