Arcane  v3.14.10.0
Documentation utilisateur
Chargement...
Recherche...
Aucune correspondance
VariableDataTypeTraits.h
1// -*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-
2//-----------------------------------------------------------------------------
3// Copyright 2000-2023 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/* VariableDataTypeTraits.h (C) 2000-2023 */
9/* */
10/* Classes spécialisées pour caractériser les types de données. */
11/*---------------------------------------------------------------------------*/
12#ifndef ARCANE_VARIABLEDATATYPETRAITS_H
13#define ARCANE_VARIABLEDATATYPETRAITS_H
14/*---------------------------------------------------------------------------*/
15/*---------------------------------------------------------------------------*/
16
17#include "arcane/utils/PlatformUtils.h"
18#include "arcane/utils/ValueConvert.h"
19
21
22#include <cmath>
23
24/*---------------------------------------------------------------------------*/
25/*---------------------------------------------------------------------------*/
26
27namespace Arcane
28{
29
30/*---------------------------------------------------------------------------*/
31/*---------------------------------------------------------------------------*/
32/*!
33 * \brief Ecriture dans la chaine \a s d'un type basique de valeur \a v.
34 */
35template <typename DataType> inline void
36builtInDumpValue(String& s, const DataType& v)
37{
38 std::ostringstream sbuf;
39 sbuf << v << '\0';
40 s = sbuf.str();
41}
42
43/*---------------------------------------------------------------------------*/
44/*---------------------------------------------------------------------------*/
45/*!
46 * \internal
47 * \brief Classe template d'informations sur un type d'une variable.
48 *
49 * Cette classe doit être spécialisée pour chaque type.
50 */
51template <typename DataType>
53{
54 public:
55
56 static eDataType type() { return DT_Unknown; }
57};
58
59/*---------------------------------------------------------------------------*/
60/*---------------------------------------------------------------------------*/
61
62/*---------------------------------------------------------------------------*/
63/*---------------------------------------------------------------------------*/
64/*!
65 * \internal
66 * \brief Spécialisation de VariableDataTypeTraitsT pour le type <tt>byte</tt>.
67 */
68template <>
69class ARCANE_CORE_EXPORT VariableDataTypeTraitsT<Byte>
70{
71 public:
72
73 //! Type du paramètre template
74 typedef Byte Type;
75
76 //! Indique si le type peut être sauvé et relu
78
79 //! Indique si le type peut être subir une réduction
81
82 //! Indique si le type peut être subir une réduction Min/Max
84
85 //! Indique si le type est numérique
87
88 typedef Byte BasicType;
89
90 static constexpr Integer nbBasicType() { return 1; }
91
92 public:
93
94 //! Retourne le nom du type de la variable
95 static constexpr const char* typeName() { return "Byte"; }
96 //! Retourne le type de la variable
97 static constexpr eDataType type() { return DT_Byte; }
98 //! Ecrit dans la chaîne \a s la valeur de \a v
99 static void dumpValue(String& s, const Type& v) { builtInDumpValue(s, v); }
100 /*!
101 * \brief Stocke la conversion de la chaîne \a s en le type #Type dans \a v
102 * \retval true en cas d'échec,
103 * \retval false si la conversion est un succès
104 */
105 static bool getValue(Type& v, const String& s) { return builtInGetValue(v, s); }
106
107 static bool verifDifferent(Byte v1, Byte v2, Byte& diff,
108 [[maybe_unused]] bool is_nan_equal = false)
109 {
110 if (v1 != v2) {
111 if (math::isZero(v1))
112 diff = (Byte)(v1 - v2);
113 else
114 diff = (Byte)((v1 - v2) / v1);
115 return true;
116 }
117 return false;
118 }
119
120 static Byte normeMax(Byte v)
121 {
122 return (Byte)math::abs(v);
123 }
124};
125
126/*---------------------------------------------------------------------------*/
127/*---------------------------------------------------------------------------*/
128/*!
129 * \internal
130 * \brief Spécialisation de VariableDataTypeTraitsT pour le type \c Real.
131 */
132template <>
133class ARCANE_CORE_EXPORT VariableDataTypeTraitsT<Real>
134{
135 public:
136
137 //! Type du paramètre template
138 typedef Real Type;
139
140 //! Indique si le type peut être sauvé et relu
142
143 //! Indique si le type peut être subir une réduction
145
146 //! Indique si le type peut être subir une réduction Min/Max
148
149 //! Indique si le type est numérique
151
152 typedef Real BasicType;
153
154 static constexpr Integer nbBasicType() { return 1; }
155
156 public:
157
158 //! Retourne le nom du type de la variable
159 static constexpr const char* typeName() { return "Real"; }
160 //! Retourne le type de la variable
161 static constexpr eDataType type() { return DT_Real; }
162 //! Ecrit dans la chaîne \a s la valeur de \a v
163 static void dumpValue(String& s, const Type& v) { builtInDumpValue(s, v); }
164 /*!
165 * \brief Stocke la conversion de la chaîne \a s en le type #Type dans \a v
166 * \retval true en cas d'échec,
167 * \retval false si la conversion est un succès
168 */
169 static bool getValue(Type& v, const String& s) { return builtInGetValue(v, s); }
170
171 static bool verifDifferent(Real v1, Real v2, Real& diff, bool is_nan_equal = false)
172 {
173 if (is_nan_equal) {
174 if (std::isnan(v1) && std::isnan(v2))
175 return false;
176 }
177 // Vérifie avant de les comparer que les deux nombres sont valides
178 // pour éviter une exception flottante sur certaines plates-formes
179 if (platform::isDenormalized(v1) || platform::isDenormalized(v2)) {
180 diff = 1.0;
181 return true;
182 }
183 if (v1 != v2) {
184 if (math::abs(v1) < 1.e-100) // TH: plantait pour v1 tres petit(math::isZero(v1))
185 diff = v1 - v2;
186 else
187 diff = (v1 - v2) / v1;
188 return true;
189 }
190 return false;
191 }
192
193 static Real normeMax(Real v)
194 {
195 return math::abs(v);
196 }
197};
198
199/*---------------------------------------------------------------------------*/
200/*---------------------------------------------------------------------------*/
201/*!
202 * \internal
203 * \brief Spécialisation de VariableDataTypeTraitsT pour le type <tt>Int16</tt>.
204 */
205template <>
206class ARCANE_CORE_EXPORT VariableDataTypeTraitsT<Int16>
207{
208 public:
209
210 //! Type du paramètre template
211 typedef Int16 Type;
212
213 //! Indique si le type peut être sauvé et relu
215
216 //! Indique si le type peut être subir une réduction
218
219 //! Indique si le type peut être subir une réduction Min/Max
221
222 //! Indique si le type est numérique
224
225 typedef Int16 BasicType;
226
227 static constexpr Integer nbBasicType() { return 1; }
228
229 public:
230
231 //! Retourne le nom du type de la variable
232 static constexpr const char* typeName() { return "Int16"; }
233 //! Retourne le type de la variable
234 static constexpr eDataType type() { return DT_Int16; }
235 //! Ecrit dans la chaîne \a s la valeur de \a v
236 static void dumpValue(String& s, const Type& v) { builtInDumpValue(s, v); }
237 /*!
238 * \brief Stocke la conversion de la chaîne \a s en le type #Type dans \a v
239 * \retval true en cas d'échec,
240 * \retval false si la conversion est un succès
241 */
242 static bool getValue(Type& v, const String& s) { return builtInGetValue(v, s); }
243 static bool verifDifferent(Int16 v1, Int16 v2, Int16& diff,
244 [[maybe_unused]] bool is_nan_equal = false)
245 {
246 if (v1 != v2) {
247 if (math::isZero(v1))
248 diff = (Int16)(v1 - v2);
249 else
250 diff = (Int16)((v1 - v2) / v1);
251 return true;
252 }
253 return false;
254 }
255 static Int16 normeMax(Int16 v)
256 {
257 return math::abs(v);
258 }
259};
260
261/*---------------------------------------------------------------------------*/
262/*---------------------------------------------------------------------------*/
263/*!
264 * \internal
265 * \brief Spécialisation de VariableDataTypeTraitsT pour le type <tt>Int32</tt>.
266 */
267template <>
268class ARCANE_CORE_EXPORT VariableDataTypeTraitsT<Int32>
269{
270 public:
271
272 //! Type du paramètre template
273 typedef Int32 Type;
274
275 //! Indique si le type peut être sauvé et relu
277
278 //! Indique si le type peut être subir une réduction
280
281 //! Indique si le type peut être subir une réduction Min/Max
283
284 //! Indique si le type est numérique
286
287 typedef Int32 BasicType;
288
289 static constexpr Integer nbBasicType() { return 1; }
290
291 public:
292
293 //! Retourne le nom du type de la variable
294 static constexpr const char* typeName() { return "Int32"; }
295 //! Retourne le type de la variable
296 static constexpr eDataType type() { return DT_Int32; }
297 //! Ecrit dans la chaîne \a s la valeur de \a v
298 static void dumpValue(String& s, const Type& v) { builtInDumpValue(s, v); }
299 /*!
300 * \brief Stocke la conversion de la chaîne \a s en le type #Type dans \a v
301 * \retval true en cas d'échec,
302 * \retval false si la conversion est un succès
303 */
304 static bool getValue(Type& v, const String& s) { return builtInGetValue(v, s); }
305 static bool verifDifferent(Int32 v1, Int32 v2, Int32& diff,
306 [[maybe_unused]] bool is_nan_equal = false)
307 {
308 if (v1 != v2) {
309 if (math::isZero(v1))
310 diff = v1 - v2;
311 else
312 diff = (v1 - v2) / v1;
313 return true;
314 }
315 return false;
316 }
317 static Int32 normeMax(Int32 v)
318 {
319 return math::abs(v);
320 }
321};
322
323/*---------------------------------------------------------------------------*/
324/*---------------------------------------------------------------------------*/
325/*!
326 * \internal
327 * \brief Spécialisation de VariableDataTypeTraitsT pour le type <tt>Int64</tt>.
328 */
329template <>
330class ARCANE_CORE_EXPORT VariableDataTypeTraitsT<Int64>
331{
332 public:
333
334 //! Type du paramètre template
335 typedef Int64 Type;
336
337 //! Indique si le type peut être sauvé et relu
339
340 //! Indique si le type peut être subir une réduction
342
343 //! Indique si le type peut être subir une réduction Min/Max
345
346 //! Indique si le type est numérique
348
349 typedef Int64 BasicType;
350
351 static constexpr Integer nbBasicType() { return 1; }
352
353 public:
354
355 //! Retourne le nom du type de la variable
356 static constexpr const char* typeName() { return "Int64"; }
357 //! Retourne le type de la variable
358 static constexpr eDataType type() { return DT_Int64; }
359 //! Ecrit dans la chaîne \a s la valeur de \a v
360 static void dumpValue(String& s, const Type& v) { builtInDumpValue(s, v); }
361 /*!
362 * \brief Stocke la conversion de la chaîne \a s en le type #Type dans \a v
363 * \retval true en cas d'échec,
364 * \retval false si la conversion est un succès
365 */
366 static bool getValue(Type& v, const String& s) { return builtInGetValue(v, s); }
367
368 static bool verifDifferent(Type v1, Type v2, Type& diff,
369 [[maybe_unused]] bool is_nan_equal = false)
370 {
371 if (v1 != v2) {
372 if (math::isZero(v1))
373 diff = v1 - v2;
374 else
375 diff = (v1 - v2) / v1;
376 return true;
377 }
378 return false;
379 }
380 static Int64 normeMax(Int64 v)
381 {
382 return v;
383 }
384};
385
386/*---------------------------------------------------------------------------*/
387/*---------------------------------------------------------------------------*/
388/*!
389 * \internal
390 * \brief Spécialisation de VariableDataTypeTraitsT pour le type <tt>String</tt>.
391 */
392template <>
393class ARCANE_CORE_EXPORT VariableDataTypeTraitsT<String>
394{
395 public:
396
397 //! Type du paramètre template
398 typedef String Type;
399
400 //! Indique si le type peut être sauvé et relu
402
403 //! Indique si le type peut être subir une réduction
405
406 //! Indique si le type peut être subir une réduction Min/Max
408
409 //! Indique si le type est numérique
411
412 typedef String BasicType;
413
414 static constexpr Integer nbBasicType() { return 1; }
415
416 public:
417
418 //! Retourne le nom du type de la variable
419 static constexpr const char* typeName() { return "String"; }
420 //! Retourne le type de la variable
421 static constexpr eDataType type() { return DT_String; }
422 //! Ecrit dans la chaîne \a s la valeur de \a v
423 static void dumpValue(String& s, const Type& v) { s = v; }
424 /*!
425 * \brief Stocke la conversion de la chaîne \a s en le type #Type dans \a v
426 * \retval true en cas d'échec,
427 * \retval false si la conversion est un succès
428 */
429 static bool getValue(Type& v, const String& s) { return builtInGetValue(v, s); }
430
431 static bool verifDifferent(const Type v1, const Type& v2, Type&,
432 [[maybe_unused]] bool is_nan_equal = false)
433 {
434 return (v1 != v2);
435 }
436 static const char* normeMax(const char* v)
437 {
438 return v;
439 }
440};
441
442/*---------------------------------------------------------------------------*/
443/*---------------------------------------------------------------------------*/
444/*!
445 * \internal
446 * \brief Spécialisation de VariableDataTypeTraitsT pour le type <tt>Real2</tt>.
447 */
448template <>
449class ARCANE_CORE_EXPORT VariableDataTypeTraitsT<Real2>
450{
451 public:
452
453 //! Type du paramètre template
454 typedef Real2 Type;
455
456 //! Indique si le type peut être sauvé et relu
458
459 //! Indique si le type peut être subir une réduction
461
462 //! Indique si le type peut être subir une réduction Min/Max
464
465 //! Indique si le type est numérique
467
468 typedef Real BasicType;
469
470 static constexpr Integer nbBasicType() { return 2; }
471
472 private:
473
474 using SubTraits = VariableDataTypeTraitsT<Real>;
475
476 public:
477
478 //! Retourne le nom du type de la variable
479 static constexpr const char* typeName() { return "Real2"; }
480 //! Retourne le type de la variable
481 static constexpr eDataType type() { return DT_Real2; }
482 //! Ecrit dans la chaîne \a s la valeur de \a v
483 static void dumpValue(String& s, const Type&) { s = "N/A"; }
484 /*!
485 * \brief Stocke la conversion de la chaîne \a s en le type #Type dans \a v
486 * \retval true en cas d'échec,
487 * \retval false si la conversion est un succès
488 */
489 static bool getValue(Type& v, const String& s) { return builtInGetValue(v, s); }
490
491 static bool verifDifferent(Real2 v1, Real2 v2, Real2& diff, bool is_nan_equal = false)
492 {
493 bool is_different = false;
494 is_different |= SubTraits::verifDifferent(v1.x, v2.x, diff.x, is_nan_equal);
495 is_different |= SubTraits::verifDifferent(v1.y, v2.y, diff.y, is_nan_equal);
496 return is_different;
497 }
498
499 static Real normeMax(const Real2& v)
500 {
501 Real vx = SubTraits::normeMax(v.x);
502 Real vy = SubTraits::normeMax(v.y);
503 return math::max(vx, vy);
504 }
505};
506
507/*---------------------------------------------------------------------------*/
508/*---------------------------------------------------------------------------*/
509/*!
510 * \internal
511 * \brief Spécialisation de VariableDataTypeTraitsT pour le type <tt>Real3</tt>.
512 */
513template <>
514class ARCANE_CORE_EXPORT VariableDataTypeTraitsT<Real3>
515{
516 public:
517
518 //! Type du paramètre template
519 typedef Real3 Type;
520
521 //! Indique si le type peut être sauvé et relu
523
524 //! Indique si le type peut être subir une réduction
526
527 //! Indique si le type peut être subir une réduction Min/Max
529
530 //! Indique si le type est numérique
532
533 typedef Real BasicType;
534
535 static constexpr Integer nbBasicType() { return 3; }
536
537 private:
538
539 using SubTraits = VariableDataTypeTraitsT<Real>;
540
541 public:
542
543 //! Retourne le nom du type de la variable
544 static constexpr const char* typeName() { return "Real3"; }
545 //! Retourne le type de la variable
546 static constexpr eDataType type() { return DT_Real3; }
547 //! Ecrit dans la chaîne \a s la valeur de \a v
548 static void dumpValue(String& s, const Type&) { s = "N/A"; }
549 /*!
550 * \brief Stocke la conversion de la chaîne \a s en le type #Type dans \a v
551 * \retval true en cas d'échec,
552 * \retval false si la conversion est un succès
553 */
554 static bool getValue(Type& v, const String& s) { return builtInGetValue(v, s); }
555
556 static bool verifDifferent(Real3 v1, Real3 v2, Real3& diff, bool is_nan_equal = false)
557 {
558 bool is_different = false;
559 is_different |= SubTraits::verifDifferent(v1.x, v2.x, diff.x, is_nan_equal);
560 is_different |= SubTraits::verifDifferent(v1.y, v2.y, diff.y, is_nan_equal);
561 is_different |= SubTraits::verifDifferent(v1.z, v2.z, diff.z, is_nan_equal);
562 return is_different;
563 }
564
565 static Real normeMax(const Real3& v)
566 {
567 Real vx = SubTraits::normeMax(v.x);
568 Real vy = SubTraits::normeMax(v.y);
569 Real vz = SubTraits::normeMax(v.z);
570 return math::max(vx, math::max(vy, vz));
571 }
572};
573
574/*---------------------------------------------------------------------------*/
575/*---------------------------------------------------------------------------*/
576/*!
577 * \internal
578 * \brief Spécialisation de VariableDataTypeTraitsT pour le type <tt>Real3x3</tt>.
579 */
580template <>
581class ARCANE_CORE_EXPORT VariableDataTypeTraitsT<Real2x2>
582{
583 public:
584
585 //! Type du paramètre template
586 typedef Real2x2 Type;
587
588 //! Indique si le type peut être sauvé et relu
590
591 //! Indique si le type peut être subir une réduction
593
594 //! Indique si le type peut être subir une réduction Min/Max
596
597 //! Indique si le type est numérique
599
600 typedef Real BasicType;
601
602 static constexpr Integer nbBasicType() { return 4; }
603
604 private:
605
606 using SubTraits = VariableDataTypeTraitsT<Real2>;
607
608 public:
609
610 //! Retourne le nom du type de la variable
611 static constexpr const char* typeName() { return "Real2x2"; }
612 //! Retourne le type de la variable
613 static constexpr eDataType type() { return DT_Real2x2; }
614 //! Ecrit dans la chaîne \a s la valeur de \a v
615 static void dumpValue(String& s, const Type&) { s = "N/A"; }
616 /*!
617 * \brief Stocke la conversion de la chaîne \a s en le type #Type dans \a v
618 * \retval true en cas d'échec,
619 * \retval false si la conversion est un succès
620 */
621 static bool getValue(Type&, const String&) { return true; }
622
623 static bool verifDifferent(Real2x2 v1, Real2x2 v2, Real2x2& diff, bool is_nan_equal = false)
624 {
625 bool is_different = false;
626 is_different |= SubTraits::verifDifferent(v1.x, v2.x, diff.x, is_nan_equal);
627 is_different |= SubTraits::verifDifferent(v1.y, v2.y, diff.y, is_nan_equal);
628 return is_different;
629 }
630
631 static Real normeMax(const Real2x2& v)
632 {
633 Real vx = SubTraits::normeMax(v.x);
634 Real vy = SubTraits::normeMax(v.y);
635 return SubTraits::normeMax(Real2(vx, vy));
636 }
637};
638
639/*---------------------------------------------------------------------------*/
640/*---------------------------------------------------------------------------*/
641/*!
642 * \internal
643 * \brief Spécialisation de VariableDataTypeTraitsT pour le type <tt>Real3x3</tt>.
644 */
645template <>
646class ARCANE_CORE_EXPORT VariableDataTypeTraitsT<Real3x3>
647{
648 public:
649
650 //! Type du paramètre template
651 typedef Real3x3 Type;
652
653 //! Indique si le type peut être sauvé et relu
655
656 //! Indique si le type peut être subir une réduction
658
659 //! Indique si le type peut être subir une réduction Min/Max
661
662 //! Indique si le type est numérique
664
665 typedef Real BasicType;
666
667 static constexpr Integer nbBasicType() { return 9; }
668
669 private:
670
671 using SubTraits = VariableDataTypeTraitsT<Real3>;
672
673 public:
674
675 //! Retourne le nom du type de la variable
676 static constexpr const char* typeName() { return "Real3x3"; }
677 //! Retourne le type de la variable
678 static constexpr eDataType type() { return DT_Real3x3; }
679 //! Ecrit dans la chaîne \a s la valeur de \a v
680 static void dumpValue(String& s, const Type&) { s = "N/A"; }
681 /*!
682 * \brief Stocke la conversion de la chaîne \a s en le type #Type dans \a v
683 * \retval true en cas d'échec,
684 * \retval false si la conversion est un succès
685 */
686 static bool getValue(Type&, const String&) { return true; }
687
688 static bool verifDifferent(Real3x3 v1, Real3x3 v2, Real3x3& diff, bool is_nan_equal = false)
689 {
690 bool is_different = false;
691 is_different |= SubTraits::verifDifferent(v1.x, v2.x, diff.x, is_nan_equal);
692 is_different |= SubTraits::verifDifferent(v1.y, v2.y, diff.y, is_nan_equal);
693 is_different |= SubTraits::verifDifferent(v1.z, v2.z, diff.z, is_nan_equal);
694 return is_different;
695 }
696
697 static Real normeMax(const Real3x3& v)
698 {
699 Real vx = SubTraits::normeMax(v.x);
700 Real vy = SubTraits::normeMax(v.y);
701 Real vz = SubTraits::normeMax(v.z);
702 return VariableDataTypeTraitsT<Real3>::normeMax(Real3(vx, vy, vz));
703 }
704};
705
706/*---------------------------------------------------------------------------*/
707/*---------------------------------------------------------------------------*/
708
709} // namespace Arcane
710
711/*---------------------------------------------------------------------------*/
712/*---------------------------------------------------------------------------*/
713
714#endif
Fichier contenant les définitions des types de données gérés par Arcane.
Classe gérant un vecteur de réel de dimension 2.
Definition Real2.h:121
Classe gérant une matrice de réel de dimension 2x2.
Definition Real2x2.h:53
Real2 x
Première composante.
Definition Real2x2.h:98
Real2 y
Deuxième composante.
Definition Real2x2.h:99
Classe gérant un vecteur de réel de dimension 3.
Definition Real3.h:132
Classe gérant une matrice de réel de dimension 3x3.
Definition Real3x3.h:66
Real3 z
premier élément du triplet
Definition Real3x3.h:119
Real3 y
premier élément du triplet
Definition Real3x3.h:118
Real3 x
premier élément du triplet
Definition Real3x3.h:117
static constexpr eDataType type()
Retourne le type de la variable.
TrueType IsNumeric
Indique si le type est numérique.
TrueType HasDump
Indique si le type peut être sauvé et relu.
FalseType HasReduceMinMax
Indique si le type peut être subir une réduction Min/Max.
static void dumpValue(String &s, const Type &v)
Ecrit dans la chaîne s la valeur de v.
Byte Type
Type du paramètre template.
static constexpr const char * typeName()
Retourne le nom du type de la variable.
TrueType HasReduce
Indique si le type peut être subir une réduction.
static bool getValue(Type &v, const String &s)
Stocke la conversion de la chaîne s en le type Type dans v.
static constexpr const char * typeName()
Retourne le nom du type de la variable.
TrueType IsNumeric
Indique si le type est numérique.
static void dumpValue(String &s, const Type &v)
Ecrit dans la chaîne s la valeur de v.
static bool getValue(Type &v, const String &s)
Stocke la conversion de la chaîne s en le type Type dans v.
static constexpr eDataType type()
Retourne le type de la variable.
TrueType HasReduce
Indique si le type peut être subir une réduction.
TrueType HasDump
Indique si le type peut être sauvé et relu.
TrueType HasReduceMinMax
Indique si le type peut être subir une réduction Min/Max.
static bool getValue(Type &v, const String &s)
Stocke la conversion de la chaîne s en le type Type dans v.
TrueType HasReduceMinMax
Indique si le type peut être subir une réduction Min/Max.
static void dumpValue(String &s, const Type &v)
Ecrit dans la chaîne s la valeur de v.
TrueType HasDump
Indique si le type peut être sauvé et relu.
static constexpr const char * typeName()
Retourne le nom du type de la variable.
static constexpr eDataType type()
Retourne le type de la variable.
TrueType IsNumeric
Indique si le type est numérique.
TrueType HasReduce
Indique si le type peut être subir une réduction.
TrueType HasReduce
Indique si le type peut être subir une réduction.
static constexpr eDataType type()
Retourne le type de la variable.
static bool getValue(Type &v, const String &s)
Stocke la conversion de la chaîne s en le type Type dans v.
TrueType HasDump
Indique si le type peut être sauvé et relu.
TrueType IsNumeric
Indique si le type est numérique.
TrueType HasReduceMinMax
Indique si le type peut être subir une réduction Min/Max.
static void dumpValue(String &s, const Type &v)
Ecrit dans la chaîne s la valeur de v.
static constexpr const char * typeName()
Retourne le nom du type de la variable.
TrueType HasReduceMinMax
Indique si le type peut être subir une réduction Min/Max.
TrueType HasReduce
Indique si le type peut être subir une réduction.
static constexpr eDataType type()
Retourne le type de la variable.
TrueType HasDump
Indique si le type peut être sauvé et relu.
static void dumpValue(String &s, const Type &)
Ecrit dans la chaîne s la valeur de v.
static constexpr const char * typeName()
Retourne le nom du type de la variable.
static bool getValue(Type &v, const String &s)
Stocke la conversion de la chaîne s en le type Type dans v.
TrueType IsNumeric
Indique si le type est numérique.
static constexpr eDataType type()
Retourne le type de la variable.
TrueType IsNumeric
Indique si le type est numérique.
static constexpr const char * typeName()
Retourne le nom du type de la variable.
TrueType HasReduce
Indique si le type peut être subir une réduction.
TrueType HasReduceMinMax
Indique si le type peut être subir une réduction Min/Max.
Real2x2 Type
Type du paramètre template.
static bool getValue(Type &, const String &)
Stocke la conversion de la chaîne s en le type Type dans v.
TrueType HasDump
Indique si le type peut être sauvé et relu.
static void dumpValue(String &s, const Type &)
Ecrit dans la chaîne s la valeur de v.
static void dumpValue(String &s, const Type &)
Ecrit dans la chaîne s la valeur de v.
TrueType IsNumeric
Indique si le type est numérique.
TrueType HasReduce
Indique si le type peut être subir une réduction.
static constexpr const char * typeName()
Retourne le nom du type de la variable.
static bool getValue(Type &v, const String &s)
Stocke la conversion de la chaîne s en le type Type dans v.
static constexpr eDataType type()
Retourne le type de la variable.
TrueType HasDump
Indique si le type peut être sauvé et relu.
TrueType HasReduceMinMax
Indique si le type peut être subir une réduction Min/Max.
TrueType HasReduceMinMax
Indique si le type peut être subir une réduction Min/Max.
TrueType HasDump
Indique si le type peut être sauvé et relu.
static constexpr eDataType type()
Retourne le type de la variable.
static constexpr const char * typeName()
Retourne le nom du type de la variable.
TrueType HasReduce
Indique si le type peut être subir une réduction.
Real3x3 Type
Type du paramètre template.
static bool getValue(Type &, const String &)
Stocke la conversion de la chaîne s en le type Type dans v.
static void dumpValue(String &s, const Type &)
Ecrit dans la chaîne s la valeur de v.
TrueType IsNumeric
Indique si le type est numérique.
static bool getValue(Type &v, const String &s)
Stocke la conversion de la chaîne s en le type Type dans v.
static void dumpValue(String &s, const Type &v)
Ecrit dans la chaîne s la valeur de v.
static constexpr eDataType type()
Retourne le type de la variable.
TrueType HasReduceMinMax
Indique si le type peut être subir une réduction Min/Max.
TrueType IsNumeric
Indique si le type est numérique.
TrueType HasDump
Indique si le type peut être sauvé et relu.
static constexpr const char * typeName()
Retourne le nom du type de la variable.
TrueType HasReduce
Indique si le type peut être subir une réduction.
FalseType HasReduceMinMax
Indique si le type peut être subir une réduction Min/Max.
static constexpr eDataType type()
Retourne le type de la variable.
static constexpr const char * typeName()
Retourne le nom du type de la variable.
FalseType IsNumeric
Indique si le type est numérique.
TrueType HasDump
Indique si le type peut être sauvé et relu.
FalseType HasReduce
Indique si le type peut être subir une réduction.
static void dumpValue(String &s, const Type &v)
Ecrit dans la chaîne s la valeur de v.
static bool getValue(Type &v, const String &s)
Stocke la conversion de la chaîne s en le type Type dans v.
String Type
Type du paramètre template.
Chaîne de caractères unicode.
-*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-
void builtInDumpValue(String &s, const DataType &v)
Ecriture dans la chaine s d'un type basique de valeur v.
unsigned char Byte
Type d'un octet.
Definition UtilsTypes.h:142
eDataType
Type d'une donnée.
Definition DataTypes.h:39
@ 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_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_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:54
@ DT_String
Donnée de type chaîne de caractère UTF-8.
Definition DataTypes.h:45
@ 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
double Real
Type représentant un réel.
Real y
deuxième composante du couple
Definition Real2.h:35
Real x
première composante du couple
Definition Real2.h:34
Real y
deuxième composante du triplet
Definition Real3.h:36
Real z
troisième composante du triplet
Definition Real3.h:37
Real x
première composante du triplet
Definition Real3.h:35