Arcane  v4.1.1.0
Documentation utilisateur
Chargement...
Recherche...
Aucune correspondance
DataTypeTraits.h
1// -*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-
2//-----------------------------------------------------------------------------
3// Copyright 2000-2025 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/* DataTypeTraits.h (C) 2000-2025 */
9/* */
10/* Caractéristiques d'un type de donnée. */
11/*---------------------------------------------------------------------------*/
12#ifndef ARCANE_DATATYPE_DATATYPETRAITS_H
13#define ARCANE_DATATYPE_DATATYPETRAITS_H
14/*---------------------------------------------------------------------------*/
15/*---------------------------------------------------------------------------*/
16
17#include "arcane/utils/BasicDataType.h"
18#include "arcane/utils/BFloat16.h"
19#include "arcane/utils/Float16.h"
20#include "arcane/utils/Float128.h"
21#include "arcane/utils/Int128.h"
22
24/*
25 * NOTE: Les fonctions telles que HasSubscriptOperator(), HasComponent*()
26 * ne sont plus utilisées depuis décembre 2025. Avant elles étaient utilisées
27 * par DataViewSetter et DataViewGetterSetter mais avec le passage au C++20
28 * ce n'est plus le cas. Il en est de même avec les types ComponentType,
29 * SubscriptType, FunctionCall1ReturnType ou FunctionCall2ReturnType.
30 * On pourra donc à terme rendre ces types obsolètes puis les supprimer.
31 */
32/*---------------------------------------------------------------------------*/
33/*---------------------------------------------------------------------------*/
34
35namespace Arcane
36{
37
38/*---------------------------------------------------------------------------*/
39/*---------------------------------------------------------------------------*/
40
41class DataTypeScalarReal;
42
43/*---------------------------------------------------------------------------*/
44/*---------------------------------------------------------------------------*/
45
46template<typename DataType>
48class Real2Proxy;
49class Real3Proxy;
50class Real3x3Proxy;
51class Real2x2Proxy;
52template<typename Type>
53class BuiltInProxy;
54
55/*---------------------------------------------------------------------------*/
56/*---------------------------------------------------------------------------*/
57/*!
58 * \internal
59 * \brief Spécialisation de DataTypeTraitsT pour le type \c bool.
60 */
61template<>
62class DataTypeTraitsT<bool>
63{
64 public:
65
66 //! Type de donnée
67 typedef bool Type;
68
69 //! Type de donnée de base de ce type de donnée
70 typedef bool BasicType;
71
72 //! Nombre d'éléments du type de base
73 static constexpr int nbBasicType() { return 1; }
74
75 //! Nom du type de donnée
76 static constexpr const char* name() { return "Bool"; }
77
78 /*! Type de donnée
79 * \todo: creer type DT_Bool a la place.
80 */
81 static constexpr eDataType type() { return DT_Byte; }
82
83 //! Type de donnée de base.
84 static constexpr eBasicDataType basicDataType() { return eBasicDataType::Byte; }
85
86 //! Type du proxy associé
88
89 //! Elément initialisé à NAN
90 static Type nanValue() { return 0; }
91
92 //! Remplit les éléments de \a values avec des Nan.
93 static void fillNan(ArrayView<Type> values);
94
95 //! Valeur par défaut.
96 static constexpr Type defaultValue() { return false; }
97};
98
99/*---------------------------------------------------------------------------*/
100/*---------------------------------------------------------------------------*/
101/*!
102 * \internal
103 * \brief Spécialisation de DataTypeTraitsT pour le type \c Byte.
104 */
105template<>
107{
108 public:
109
110 //! Type de donnée
111 typedef Byte Type;
112
113 //! Type de donnée de base de ce type de donnée
115
116 //! Nombre d'éléments du type de base
117 static constexpr int nbBasicType() { return 1; }
118
119 //! Nom du type de donnée
120 static constexpr const char* name() { return "Byte"; }
121
122 //! Type de donnée
123 static constexpr eDataType type() { return DT_Byte; }
124
125 //! Type de donnée de base.
126 static constexpr eBasicDataType basicDataType() { return eBasicDataType::Byte; }
127
128 //! Type du proxy associé
130
131 //! Elément initialisé à NAN
132 static constexpr Type nanValue() { return 0; }
133
134 //! Remplit les éléments de \a values avec des Nan.
135 static void fillNan(ArrayView<Type> values);
136
137 //! Valeur par défaut.
138 static constexpr Type defaultValue() { return 0; }
139};
140
141/*---------------------------------------------------------------------------*/
142/*---------------------------------------------------------------------------*/
143/*!
144 * \internal
145 * \brief Spécialisation de DataTypeTraitsT pour le type \c Real.
146 */
147template<>
149{
150 public:
151
152 //! Type de donnée
153 typedef Real Type;
154
155 //! Type de donnée de base de ce type de donnée
157
158 //! Nombre d'éléments du type de base
159 static constexpr int nbBasicType() { return 1; }
160
161 //! Nom du type de donnée
162 static constexpr const char* name() { return "Real"; }
163
164 //! Type de donnée
165 static constexpr eDataType type() { return DT_Real; }
166
167 //! Type de donnée de base.
168 // TODO: calculer automatiquement la taille
170
171 //! Type du proxy associé
173
174 //! Remplit les éléments de \a values avec des Nan.
175 static void fillNan(ArrayView<Type> values);
176
177 //! Valeur par défaut.
178 static constexpr Type defaultValue() { return 0.0; }
179};
180
181/*---------------------------------------------------------------------------*/
182/*---------------------------------------------------------------------------*/
183/*!
184 * \internal
185 * \brief Spécialisation de DataTypeTraitsT pour le type \c Float128
186 */
187template<>
189{
190 public:
191
192 //! Type de donnée
193 typedef Float128 Type;
194
195 //! Type de donnée de base de ce type de donnée
197
198 //! Nombre d'éléments du type de base
199 static constexpr int nbBasicType() { return 1; }
200
201 //! Nom du type de donnée
202 static constexpr const char* name() { return "Float128"; }
203
204 //! Type de donnée
205 static constexpr eDataType type() { return DT_Float128; }
206
207 //! Type de donnée de base.
208 // TODO: calculer automatiquement la taille
210
211 //! Type du proxy associé
213
214 //! Remplit les éléments de \a values avec des Nan.
215 static void fillNan(ArrayView<Type> values);
216
217 //! Valeur par défaut.
218 static constexpr Type defaultValue() { return Float128(0.0l); }
219};
220
221/*---------------------------------------------------------------------------*/
222/*---------------------------------------------------------------------------*/
223/*!
224 * \internal
225 * \brief Spécialisation de DataTypeTraitsT pour le type \c Float32.
226 */
227template<>
229{
230 public:
231
232 //! Type de donnée
233 typedef Float32 Type;
234
235 //! Type de donnée de base de ce type de donnée
237
238 //! Nombre d'éléments du type de base
239 static constexpr int nbBasicType() { return 1; }
240
241 //! Nom du type de donnée
242 static constexpr const char* name() { return "Float32"; }
243
244 //! Type de donnée
245 static constexpr eDataType type() { return DT_Float32; }
246
247 //! Type de donnée de base.
248 // TODO: calculer automatiquement la taille
250
251 //! Type du proxy associé
253
254 //! Remplit les éléments de \a values avec des Nan.
255 static void fillNan(ArrayView<Type> values);
256
257 //! Valeur par défaut.
258 static constexpr Type defaultValue() { return 0.0f; }
259};
260
261/*---------------------------------------------------------------------------*/
262/*---------------------------------------------------------------------------*/
263/*!
264 * \internal
265 * \brief Spécialisation de DataTypeTraitsT pour le type \c BFloat16.
266 */
267template<>
269{
270 public:
271
272 //! Type de donnée
273 typedef BFloat16 Type;
274
275 //! Type de donnée de base de ce type de donnée
277
278 //! Nombre d'éléments du type de base
279 static constexpr int nbBasicType() { return 1; }
280
281 //! Nom du type de donnée
282 static constexpr const char* name() { return "BFloat16"; }
283
284 //! Type de donnée
285 static constexpr eDataType type() { return DT_BFloat16; }
286
287 //! Type de donnée de base.
288 // TODO: calculer automatiquement la taille
289 static constexpr eBasicDataType basicDataType() { return eBasicDataType::BFloat16; }
290
291 //! Type du proxy associé
293
294 //! Remplit les éléments de \a values avec des Nan.
295 static void fillNan(ArrayView<Type> values);
296
297 //! Valeur par défaut.
298 static constexpr Type defaultValue() { return {}; }
299};
300
301/*---------------------------------------------------------------------------*/
302/*---------------------------------------------------------------------------*/
303/*!
304 * \internal
305 * \brief Spécialisation de DataTypeTraitsT pour le type \c Float16.
306 */
307template<>
309{
310 public:
311
312 //! Type de donnée
313 typedef Float16 Type;
314
315 //! Type de donnée de base de ce type de donnée
317
318 //! Nombre d'éléments du type de base
319 static constexpr int nbBasicType() { return 1; }
320
321 //! Nom du type de donnée
322 static constexpr const char* name() { return "Float16"; }
323
324 //! Type de donnée
325 static constexpr eDataType type() { return DT_Float16; }
326
327 //! Type de donnée de base.
328 // TODO: calculer automatiquement la taille
330
331 //! Type du proxy associé
333
334 //! Remplit les éléments de \a values avec des Nan.
335 static void fillNan(ArrayView<Type> values);
336
337 //! Valeur par défaut.
338 static constexpr Type defaultValue() { return {}; }
339};
340
341/*---------------------------------------------------------------------------*/
342/*---------------------------------------------------------------------------*/
343/*!
344 * \internal
345 * \brief Spécialisation de DataTypeTraitsT pour le type <tt>Integer</tt>.
346 */
347template<>
349{
350 public:
351
352 //! Type de donnée
353 typedef Int8 Type;
354
355 //! Type de donnée de base de ce type de donnée
357
358 //! Nombre d'éléments du type de base
359 static constexpr int nbBasicType() { return 1; }
360
361 //! Nom du type de donnée
362 static constexpr const char* name() { return "Int8"; }
363
364 //! Type de donnée
365 static constexpr eDataType type() { return DT_Int8; }
366
367 //! Type de donnée de base.
368 static constexpr eBasicDataType basicDataType() { return eBasicDataType::Int8; }
369
370 //! Type du proxy associé
372
373 //! Remplit les éléments de \a values avec des Nan.
374 static void fillNan(ArrayView<Type> values);
375
376 //! Valeur par défaut.
377 static constexpr Type defaultValue() { return 0; }
378};
379
380/*---------------------------------------------------------------------------*/
381/*---------------------------------------------------------------------------*/
382/*!
383 * \internal
384 * \brief Spécialisation de DataTypeTraitsT pour le type <tt>Integer</tt>.
385 */
386template<>
388{
389 public:
390
391 //! Type de donnée
392 typedef Int16 Type;
393
394 //! Type de donnée de base de ce type de donnée
396
397 //! Nombre d'éléments du type de base
398 static constexpr int nbBasicType() { return 1; }
399
400 //! Nom du type de donnée
401 static constexpr const char* name() { return "Int16"; }
402
403 //! Type de donnée
404 static constexpr eDataType type() { return DT_Int16; }
405
406 //! Type de donnée de base.
408
409 //! Type du proxy associé
411
412 //! Remplit les éléments de \a values avec des Nan.
413 static void fillNan(ArrayView<Type> values);
414
415 //! Valeur par défaut.
416 static constexpr Type defaultValue() { return 0; }
417};
418
419/*---------------------------------------------------------------------------*/
420/*---------------------------------------------------------------------------*/
421/*!
422 * \internal
423 * \brief Spécialisation de DataTypeTraitsT pour le type <tt>Int32</tt>.
424 */
425template<>
427{
428 public:
429
430 //! Type de donnée
431 typedef Int32 Type;
432
433 //! Type de donnée de base de ce type de donnée
435
436 //! Nombre d'éléments du type de base
437 static constexpr int nbBasicType() { return 1; }
438
439 //! Nom du type de donnée
440 static constexpr const char* name() { return "Int32"; }
441
442 //! Type de donnée
443 static constexpr eDataType type() { return DT_Int32; }
444
445 //! Type de donnée de base.
447
448 //! Type du proxy associé
450
451 //! Remplit les éléments de \a values avec des Nan.
452 static void fillNan(ArrayView<Type> values);
453
454 //! Valeur par défaut.
455 static constexpr Type defaultValue() { return 0; }
456};
457
458/*---------------------------------------------------------------------------*/
459/*---------------------------------------------------------------------------*/
460/*!
461 * \internal
462 * \brief Spécialisation de DataTypeTraitsT pour le type <tt>Int64</tt>.
463 */
464template<>
466{
467 public:
468
469 //! Type de donnée
470 typedef Int64 Type;
471
472 //! Type de donnée de base de ce type de donnée
474
475 //! Nombre d'éléments du type de base
476 static constexpr int nbBasicType() { return 1; }
477
478 //! Nom du type de donnée
479 static constexpr const char* name() { return "Int64"; }
480
481 //! Type de donnée
482 static constexpr eDataType type() { return DT_Int64; }
483
484 //! Type de donnée de base.
486
487 //! Type du proxy associé
489
490 //! Remplit les éléments de \a values avec des Nan.
491 static void fillNan(ArrayView<Type> values);
492
493 //! Valeur par défaut.
494 static constexpr Type defaultValue() { return 0; }
495};
496
497/*---------------------------------------------------------------------------*/
498/*---------------------------------------------------------------------------*/
499/*!
500 * \internal
501 * \brief Spécialisation de DataTypeTraitsT pour le type <tt>Int128</tt>.
502 */
503template<>
505{
506 public:
507
508 //! Type de donnée
509 typedef Int128 Type;
510
511 //! Type de donnée de base de ce type de donnée
513
514 //! Nombre d'éléments du type de base
515 static constexpr int nbBasicType() { return 1; }
516
517 //! Nom du type de donnée
518 static constexpr const char* name() { return "Int128"; }
519
520 //! Type de donnée
521 static constexpr eDataType type() { return DT_Int128; }
522
523 //! Type de donnée de base.
525
526 //! Type du proxy associé
528
529 //! Remplit les éléments de \a values avec des Nan.
530 static void fillNan(ArrayView<Type> values);
531
532 //! Valeur par défaut.
533 static constexpr Type defaultValue() { return 0; }
534};
535
536/*---------------------------------------------------------------------------*/
537/*---------------------------------------------------------------------------*/
538/*!
539 * \internal
540 * \brief Spécialisation de DataTypeTraitsT pour le type <tt>String</tt>.
541 */
542template<>
544{
545 public:
546
547 //! Type de donnée
548 typedef String Type;
549
550 //! Type de donnée de base de ce type de donnée
552
553 //! Nombre d'éléments du type de base
554 static constexpr int nbBasicType() { return 1; }
555
556 //! Nom du type de donnée
557 static constexpr const char* name() { return "String"; }
558
559 //! Type de donnée
560 static constexpr eDataType type() { return DT_String; }
561
562 //! Type du proxy associé
564
565 //! Remplit les éléments de \a values avec des Nan.
566 static void fillNan(ArrayView<Type> values);
567
568 //! Valeur par défaut.
569 static ARCANE_CORE_EXPORT Type defaultValue();
570};
571
572/*---------------------------------------------------------------------------*/
573/*---------------------------------------------------------------------------*/
574/*!
575 * \internal
576 * \brief Spécialisation de DataTypeTraitsT pour le type <tt>Real2</tt>.
577 */
578template<>
580{
581 public:
582
583 //! Type de donnée
584 typedef Real2 Type;
585
586 //! Type de donnée de base de ce type de donnée
588
589 //! Type de retour de operator[] pour ce type
591
592 //! Nombre d'éléments du type de base
593 static constexpr int nbBasicType() { return 2; }
594
595 //! Nom du type de donnée
596 static constexpr const char* name() { return "Real2"; }
597
598 //! Type de donnée
599 static constexpr eDataType type() { return DT_Real2; }
600
601 //! Type de donnée de base.
603
604 //! Type du proxy associé
606
607 //! Remplit les éléments de \a values avec des Nan.
608 static void fillNan(ArrayView<Type> values);
609
610 //! Valeur par défaut.
611 static ARCANE_CORE_EXPORT Type defaultValue();
612
613 public:
614
615 static constexpr bool HasSubscriptOperator() { return true; }
616 static constexpr bool HasComponentX() { return true; }
617 static constexpr bool HasComponentY() { return true; }
618
619 using ComponentType = Real;
620};
621
622/*---------------------------------------------------------------------------*/
623/*---------------------------------------------------------------------------*/
624/*!
625 * \internal
626 * \brief Spécialisation de DataTypeTraitsT pour le type <tt>Real3</tt>.
627 */
628template<>
630{
631 public:
632
633 //! Type de donnée
634 typedef Real3 Type;
635
636 //! Type de donnée de base de ce type de donnée
638
639 //! Type de retour de operator[] pour ce type
641
642 //! Nombre d'éléments du type de base
643 static constexpr int nbBasicType() { return 3; }
644
645 //! Nom du type de donnée
646 static constexpr const char* name() { return "Real3"; }
647
648 //! Type de donnée
649 static constexpr eDataType type() { return DT_Real3; }
650
651 //! Type de donnée de base.
653
654 //! Type du proxy associé
656
657 //! Remplit les éléments de \a values avec des Nan.
658 static void fillNan(ArrayView<Type> values);
659
660 //! Valeur par défaut.
661 static ARCANE_CORE_EXPORT Type defaultValue();
662
663 static constexpr bool HasSubscriptOperator() { return true; }
664 static constexpr bool HasComponentX() { return true; }
665 static constexpr bool HasComponentY() { return true; }
666 static constexpr bool HasComponentZ() { return true; }
667
668 using ComponentType = Real;
669};
670
671/*---------------------------------------------------------------------------*/
672/*---------------------------------------------------------------------------*/
673/*!
674 * \internal
675 * \brief Spécialisation de DataTypeTraitsT pour le type <tt>Real2x2</tt>.
676 */
677template<>
679{
680 public:
681
682 //! Type de donnée
683 typedef Real2x2 Type;
684
685 //! Type de donnée de base de ce type de donnée
687
688 //! Type de retour de operator[] pour ce type
690
691 //! Nombre d'éléments du type de base
692 static constexpr int nbBasicType() { return 4; }
693
694 //! Nom du type de donnée
695 static constexpr const char* name() { return "Real2x2"; }
696
697 //! Type de donnée
698 static constexpr eDataType type() { return DT_Real2x2; }
699
700 //! Type de donnée de base.
702
703 //! Type du proxy associé
705
706 //! Remplit les éléments de \a values avec des Nan.
707 static void fillNan(ArrayView<Type> values);
708
709 //! Valeur par défaut.
710 static ARCANE_CORE_EXPORT Type defaultValue();
711
712 static constexpr bool HasSubscriptOperator() { return true; }
713
714 static constexpr bool HasComponentXX() { return true; }
715 static constexpr bool HasComponentYX() { return true; }
716 static constexpr bool HasComponentXY() { return true; }
717 static constexpr bool HasComponentYY() { return true; }
718
719 static constexpr bool HasComponentX() { return true; }
720 static constexpr bool HasComponentY() { return true; }
721
722 using ComponentType = Real2;
723};
724
725/*---------------------------------------------------------------------------*/
726/*---------------------------------------------------------------------------*/
727/*!
728 * \internal
729 * \brief Spécialisation de DataTypeTraitsT pour le type <tt>Real3x3</tt>.
730 */
731template<>
733{
734 public:
735
736 //! Type de donnée
737 typedef Real3x3 Type;
738
739 //! Type de donnée de base de ce type de donnée
741
742 //! Type de retour de operator[] pour ce type
744
745 //! Nombre d'éléments du type de base
746 static constexpr int nbBasicType() { return 9; }
747
748 //! Nom du type de donnée
749 static constexpr const char* name() { return "Real3x3"; }
750
751 //! Type de donnée
752 static constexpr eDataType type() { return DT_Real3x3; }
753
754 //! Type de donnée de base.
756
757 //! Type du proxy associé
759
760 //! Remplit les éléments de \a values avec des Nan.
761 static void fillNan(ArrayView<Type> values);
762
763 //! Valeur par défaut.
764 static ARCANE_CORE_EXPORT Type defaultValue();
765
766 static constexpr bool HasSubscriptOperator() { return true; }
767
768 static constexpr bool HasComponentXX() { return true; }
769 static constexpr bool HasComponentYX() { return true; }
770 static constexpr bool HasComponentZX() { return true; }
771 static constexpr bool HasComponentXY() { return true; }
772 static constexpr bool HasComponentYY() { return true; }
773 static constexpr bool HasComponentZY() { return true; }
774 static constexpr bool HasComponentXZ() { return true; }
775 static constexpr bool HasComponentYZ() { return true; }
776 static constexpr bool HasComponentZZ() { return true; }
777
778 static constexpr bool HasComponentX() { return true; }
779 static constexpr bool HasComponentY() { return true; }
780 static constexpr bool HasComponentZ() { return true; }
781
782 using ComponentType = Real3;
783};
784
785/*---------------------------------------------------------------------------*/
786/*---------------------------------------------------------------------------*/
787/*!
788 * \internal
789 * \brief Spécialisation de DataTypeTraitsT pour le type <tt>NumVector<Real,Size></tt>.
790 */
791template<int Size>
793{
794 public:
795
796 //! Type de donnée
797 typedef Real Type;
798
799 //! Type de donnée de base de ce type de donnée
801
802 //! Type de retour de operator()(Int32) pour ce type
804
805 //! Nombre d'éléments du type de base
806 static constexpr int nbBasicType() { return Size; }
807
808 //! Type de donnée de base.
810};
811
812/*---------------------------------------------------------------------------*/
813/*---------------------------------------------------------------------------*/
814/*!
815 * \internal
816 * \brief Spécialisation de DataTypeTraitsT pour le type <tt>NumMatrix<Real,RowSize,ColumnSize></tt>.
817 */
818template<int RowSize,int ColumnSize>
819class DataTypeTraitsT<NumMatrix<Real,RowSize,ColumnSize>>
820{
821 public:
822
823 //! Type de donnée
824 typedef Real Type;
825
826 //! Type de donnée de base de ce type de donnée
828
829 //! Type de retour de operator()(Int32,Int32) pour ce type
831
832 //! Nombre d'éléments du type de base
833 static constexpr int nbBasicType() { return RowSize * ColumnSize; }
834
835 //! Type de donnée de base.
837};
838
839/*---------------------------------------------------------------------------*/
840/*---------------------------------------------------------------------------*/
841
842} // End namespace Arcane
843
844/*---------------------------------------------------------------------------*/
845/*---------------------------------------------------------------------------*/
846
847#endif
848
Déclarations des types généraux de Arcane.
Vue modifiable d'un tableau d'un type T.
Proxy d'un type du langage.
static constexpr eBasicDataType basicDataType()
Type de donnée de base.
static constexpr int nbBasicType()
Nombre d'éléments du type de base.
static constexpr const char * name()
Nom du type de donnée.
static constexpr eDataType type()
Type de donnée.
BFloat16 BasicType
Type de donnée de base de ce type de donnée.
static constexpr Type defaultValue()
Valeur par défaut.
static void fillNan(ArrayView< Type > values)
Remplit les éléments de values avec des Nan.
Definition DataTypes.cc:248
BuiltInProxy< BFloat16 > ProxyType
Type du proxy associé
static constexpr eBasicDataType basicDataType()
Type de donnée de base.
static constexpr int nbBasicType()
Nombre d'éléments du type de base.
static constexpr const char * name()
Nom du type de donnée.
static constexpr eDataType type()
Type de donnée.
Byte BasicType
Type de donnée de base de ce type de donnée.
static constexpr Type defaultValue()
Valeur par défaut.
static constexpr Type nanValue()
Elément initialisé à NAN.
BuiltInProxy< Byte > ProxyType
Type du proxy associé
static constexpr eBasicDataType basicDataType()
Type de donnée de base.
Float128 BasicType
Type de donnée de base de ce type de donnée.
static constexpr const char * name()
Nom du type de donnée.
static constexpr eDataType type()
Type de donnée.
static constexpr int nbBasicType()
Nombre d'éléments du type de base.
BuiltInProxy< Float128 > ProxyType
Type du proxy associé
static void fillNan(ArrayView< Type > values)
Remplit les éléments de values avec des Nan.
static constexpr Type defaultValue()
Valeur par défaut.
static constexpr int nbBasicType()
Nombre d'éléments du type de base.
static constexpr const char * name()
Nom du type de donnée.
static constexpr eBasicDataType basicDataType()
Type de donnée de base.
static constexpr eDataType type()
Type de donnée.
static constexpr Type defaultValue()
Valeur par défaut.
static void fillNan(ArrayView< Type > values)
Remplit les éléments de values avec des Nan.
Definition DataTypes.cc:254
Float16 BasicType
Type de donnée de base de ce type de donnée.
BuiltInProxy< Float16 > ProxyType
Type du proxy associé
BuiltInProxy< Float32 > ProxyType
Type du proxy associé
Float32 BasicType
Type de donnée de base de ce type de donnée.
static void fillNan(ArrayView< Type > values)
Remplit les éléments de values avec des Nan.
Definition DataTypes.cc:242
static constexpr Type defaultValue()
Valeur par défaut.
static constexpr eBasicDataType basicDataType()
Type de donnée de base.
static constexpr eDataType type()
Type de donnée.
static constexpr const char * name()
Nom du type de donnée.
static constexpr int nbBasicType()
Nombre d'éléments du type de base.
static constexpr eBasicDataType basicDataType()
Type de donnée de base.
Int128 BasicType
Type de donnée de base de ce type de donnée.
static constexpr eDataType type()
Type de donnée.
static void fillNan(ArrayView< Type > values)
Remplit les éléments de values avec des Nan.
static constexpr const char * name()
Nom du type de donnée.
static constexpr int nbBasicType()
Nombre d'éléments du type de base.
BuiltInProxy< Int128 > ProxyType
Type du proxy associé
static constexpr Type defaultValue()
Valeur par défaut.
static constexpr eBasicDataType basicDataType()
Type de donnée de base.
static constexpr eDataType type()
Type de donnée.
static void fillNan(ArrayView< Type > values)
Remplit les éléments de values avec des Nan.
Definition DataTypes.cc:203
Int16 BasicType
Type de donnée de base de ce type de donnée.
BuiltInProxy< Int32 > ProxyType
Type du proxy associé
static constexpr int nbBasicType()
Nombre d'éléments du type de base.
static constexpr Type defaultValue()
Valeur par défaut.
static constexpr const char * name()
Nom du type de donnée.
static constexpr Type defaultValue()
Valeur par défaut.
BuiltInProxy< Int32 > ProxyType
Type du proxy associé
static constexpr const char * name()
Nom du type de donnée.
static constexpr eBasicDataType basicDataType()
Type de donnée de base.
Int32 BasicType
Type de donnée de base de ce type de donnée.
static constexpr eDataType type()
Type de donnée.
static constexpr int nbBasicType()
Nombre d'éléments du type de base.
static void fillNan(ArrayView< Type > values)
Remplit les éléments de values avec des Nan.
Definition DataTypes.cc:209
static constexpr eBasicDataType basicDataType()
Type de donnée de base.
static constexpr Type defaultValue()
Valeur par défaut.
static constexpr eDataType type()
Type de donnée.
Int64 BasicType
Type de donnée de base de ce type de donnée.
static void fillNan(ArrayView< Type > values)
Remplit les éléments de values avec des Nan.
Definition DataTypes.cc:215
static constexpr int nbBasicType()
Nombre d'éléments du type de base.
BuiltInProxy< Int64 > ProxyType
Type du proxy associé
static constexpr const char * name()
Nom du type de donnée.
static constexpr Type defaultValue()
Valeur par défaut.
static constexpr eBasicDataType basicDataType()
Type de donnée de base.
static constexpr int nbBasicType()
Nombre d'éléments du type de base.
static constexpr eDataType type()
Type de donnée.
Int8 BasicType
Type de donnée de base de ce type de donnée.
static void fillNan(ArrayView< Type > values)
Remplit les éléments de values avec des Nan.
Definition DataTypes.cc:197
BuiltInProxy< Int8 > ProxyType
Type du proxy associé
static constexpr const char * name()
Nom du type de donnée.
static constexpr eBasicDataType basicDataType()
Type de donnée de base.
Real BasicType
Type de donnée de base de ce type de donnée.
static constexpr int nbBasicType()
Nombre d'éléments du type de base.
Real FunctionCall2ReturnType
Type de retour de operator()(Int32,Int32) pour ce type.
static constexpr eBasicDataType basicDataType()
Type de donnée de base.
static constexpr int nbBasicType()
Nombre d'éléments du type de base.
Real BasicType
Type de donnée de base de ce type de donnée.
Real FunctionCall1ReturnType
Type de retour de operator()(Int32) pour ce type.
static void fillNan(ArrayView< Type > values)
Remplit les éléments de values avec des Nan.
Definition DataTypes.cc:260
static constexpr eBasicDataType basicDataType()
Type de donnée de base.
static constexpr eDataType type()
Type de donnée.
Real BasicType
Type de donnée de base de ce type de donnée.
Real2Proxy ProxyType
Type du proxy associé
static constexpr const char * name()
Nom du type de donnée.
static Type defaultValue()
Valeur par défaut.
Definition DataTypes.cc:305
static constexpr int nbBasicType()
Nombre d'éléments du type de base.
Real SubscriptType
Type de retour de operator[] pour ce type.
Real BasicType
Type de donnée de base de ce type de donnée.
Real2x2Proxy ProxyType
Type du proxy associé
static constexpr eDataType type()
Type de donnée.
static constexpr int nbBasicType()
Nombre d'éléments du type de base.
Real2 SubscriptType
Type de retour de operator[] pour ce type.
static constexpr const char * name()
Nom du type de donnée.
static Type defaultValue()
Valeur par défaut.
Definition DataTypes.cc:311
static void fillNan(ArrayView< Type > values)
Remplit les éléments de values avec des Nan.
Definition DataTypes.cc:266
static constexpr eBasicDataType basicDataType()
Type de donnée de base.
static Type defaultValue()
Valeur par défaut.
Definition DataTypes.cc:293
static constexpr eBasicDataType basicDataType()
Type de donnée de base.
Real3Proxy ProxyType
Type du proxy associé
static void fillNan(ArrayView< Type > values)
Remplit les éléments de values avec des Nan.
Definition DataTypes.cc:278
Real BasicType
Type de donnée de base de ce type de donnée.
static constexpr const char * name()
Nom du type de donnée.
static constexpr int nbBasicType()
Nombre d'éléments du type de base.
Real SubscriptType
Type de retour de operator[] pour ce type.
static constexpr eDataType type()
Type de donnée.
static constexpr eDataType type()
Type de donnée.
static constexpr int nbBasicType()
Nombre d'éléments du type de base.
static void fillNan(ArrayView< Type > values)
Remplit les éléments de values avec des Nan.
Definition DataTypes.cc:272
Real3x3Proxy ProxyType
Type du proxy associé
static constexpr eBasicDataType basicDataType()
Type de donnée de base.
static Type defaultValue()
Valeur par défaut.
Definition DataTypes.cc:299
static constexpr const char * name()
Nom du type de donnée.
Real BasicType
Type de donnée de base de ce type de donnée.
Real3 SubscriptType
Type de retour de operator[] pour ce type.
static constexpr int nbBasicType()
Nombre d'éléments du type de base.
static constexpr const char * name()
Nom du type de donnée.
static constexpr eBasicDataType basicDataType()
Type de donnée de base.
static constexpr eDataType type()
Type de donnée.
Real BasicType
Type de donnée de base de ce type de donnée.
static constexpr Type defaultValue()
Valeur par défaut.
static void fillNan(ArrayView< Type > values)
Remplit les éléments de values avec des Nan.
Definition DataTypes.cc:236
BuiltInProxy< Real > ProxyType
Type du proxy associé
static void fillNan(ArrayView< Type > values)
Remplit les éléments de values avec des Nan.
Definition DataTypes.cc:221
static Type defaultValue()
Valeur par défaut.
Definition DataTypes.cc:287
String BasicType
Type de donnée de base de ce type de donnée.
static constexpr const char * name()
Nom du type de donnée.
static constexpr int nbBasicType()
Nombre d'éléments du type de base.
String ProxyType
Type du proxy associé
static constexpr eDataType type()
Type de donnée.
static constexpr eDataType type()
static constexpr eBasicDataType basicDataType()
Type de donnée de base.
bool BasicType
Type de donnée de base de ce type de donnée.
static constexpr const char * name()
Nom du type de donnée.
static constexpr int nbBasicType()
Nombre d'éléments du type de base.
static constexpr Type defaultValue()
Valeur par défaut.
static Type nanValue()
Elément initialisé à NAN.
BuiltInProxy< bool > ProxyType
Type du proxy associé
static void fillNan(ArrayView< Type > values)
Remplit les éléments de values avec des Nan.
Type flottant demi-précision.
Petite matrice de taille fixe contenant RowSize lignes et ColumnSize colonnes.
Definition NumMatrix.h:42
Petit vecteur de taille fixe de N données numériques.
Definition NumVector.h:43
Classe gérant un vecteur de réel de dimension 2.
Definition Real2Proxy.h:40
Classe gérant un vecteur de réel de dimension 2.
Definition Real2.h:121
Proxy du type 'Real2x2'.
Classe gérant une matrice de réel de dimension 2x2.
Definition Real2x2.h:53
Proxy d'un Real3.
Definition Real3Proxy.h:37
Classe gérant un vecteur de réel de dimension 3.
Definition Real3.h:132
Proxy d'un 'Real3x3'.
Classe gérant une matrice de réel de dimension 3x3.
Definition Real3x3.h:66
Chaîne de caractères unicode.
-*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-
std::int8_t Int8
Type entier signé sur 8 bits.
std::int64_t Int64
Type entier signé sur 64 bits.
eBasicDataType
Type d'une donnée de base.
std::int16_t Int16
Type entier signé sur 16 bits.
double Real
Type représentant un réel.
unsigned char Byte
Type d'un octet.
Definition BaseTypes.h:43
float Float32
Type flottant IEEE-753 simple précision.
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_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
std::int32_t Int32
Type entier signé sur 32 bits.