Arcane  v3.15.0.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-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/* DataTypeTraits.h (C) 2000-2024 */
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/*---------------------------------------------------------------------------*/
26/*---------------------------------------------------------------------------*/
27
28namespace Arcane
29{
30
31/*---------------------------------------------------------------------------*/
32/*---------------------------------------------------------------------------*/
33
34class DataTypeScalarReal;
35
36/*---------------------------------------------------------------------------*/
37/*---------------------------------------------------------------------------*/
38
39template<typename DataType>
41class Real2Proxy;
42class Real3Proxy;
43class Real3x3Proxy;
44class Real2x2Proxy;
45template<typename Type>
46class BuiltInProxy;
47
48/*---------------------------------------------------------------------------*/
49/*---------------------------------------------------------------------------*/
50/*!
51 * \internal
52 * \brief Spécialisation de DataTypeTraitsT pour le type \c bool.
53 */
54template<>
55class DataTypeTraitsT<bool>
56{
57 public:
58
59 //! Type de donnée
60 typedef bool Type;
61
62 //! Type de donnée de base de ce type de donnée
63 typedef bool BasicType;
64
65 //! Nombre d'éléments du type de base
66 static constexpr int nbBasicType() { return 1; }
67
68 //! Nom du type de donnée
69 static constexpr const char* name() { return "Bool"; }
70
71 /*! Type de donnée
72 * \todo: creer type DT_Bool a la place.
73 */
74 static constexpr eDataType type() { return DT_Byte; }
75
76 //! Type de donnée de base.
77 static constexpr eBasicDataType basicDataType() { return eBasicDataType::Byte; }
78
79 //! Type du proxy associé
81
82 //! Elément initialisé à NAN
83 static Type nanValue() { return 0; }
84
85 //! Remplit les éléments de \a values avec des Nan.
86 static void fillNan(ArrayView<Type> values);
87
88 //! Valeur par défaut.
89 static constexpr Type defaultValue() { return false; }
90};
91
92/*---------------------------------------------------------------------------*/
93/*---------------------------------------------------------------------------*/
94/*!
95 * \internal
96 * \brief Spécialisation de DataTypeTraitsT pour le type \c Byte.
97 */
98template<>
100{
101 public:
102
103 //! Type de donnée
104 typedef Byte Type;
105
106 //! Type de donnée de base de ce type de donnée
108
109 //! Nombre d'éléments du type de base
110 static constexpr int nbBasicType() { return 1; }
111
112 //! Nom du type de donnée
113 static constexpr const char* name() { return "Byte"; }
114
115 //! Type de donnée
116 static constexpr eDataType type() { return DT_Byte; }
117
118 //! Type de donnée de base.
119 static constexpr eBasicDataType basicDataType() { return eBasicDataType::Byte; }
120
121 //! Type du proxy associé
123
124 //! Elément initialisé à NAN
125 static constexpr Type nanValue() { return 0; }
126
127 //! Remplit les éléments de \a values avec des Nan.
128 static void fillNan(ArrayView<Type> values);
129
130 //! Valeur par défaut.
131 static constexpr Type defaultValue() { return 0; }
132};
133
134/*---------------------------------------------------------------------------*/
135/*---------------------------------------------------------------------------*/
136/*!
137 * \internal
138 * \brief Spécialisation de DataTypeTraitsT pour le type \c Real.
139 */
140template<>
142{
143 public:
144
145 //! Type de donnée
146 typedef Real Type;
147
148 //! Type de donnée de base de ce type de donnée
149 typedef Real BasicType;
150
151 //! Nombre d'éléments du type de base
152 static constexpr int nbBasicType() { return 1; }
153
154 //! Nom du type de donnée
155 static constexpr const char* name() { return "Real"; }
156
157 //! Type de donnée
158 static constexpr eDataType type() { return DT_Real; }
159
160 //! Type de donnée de base.
161 // TODO: calculer automatiquement la taille
162 static constexpr eBasicDataType basicDataType() { return eBasicDataType::Float64; }
163
164 //! Type du proxy associé
166
167 //! Remplit les éléments de \a values avec des Nan.
168 static void fillNan(ArrayView<Type> values);
169
170 //! Valeur par défaut.
171 static constexpr Type defaultValue() { return 0.0; }
172};
173
174/*---------------------------------------------------------------------------*/
175/*---------------------------------------------------------------------------*/
176/*!
177 * \internal
178 * \brief Spécialisation de DataTypeTraitsT pour le type \c Float128
179 */
180template<>
182{
183 public:
184
185 //! Type de donnée
186 typedef Float128 Type;
187
188 //! Type de donnée de base de ce type de donnée
190
191 //! Nombre d'éléments du type de base
192 static constexpr int nbBasicType() { return 1; }
193
194 //! Nom du type de donnée
195 static constexpr const char* name() { return "Float128"; }
196
197 //! Type de donnée
198 static constexpr eDataType type() { return DT_Float128; }
199
200 //! Type de donnée de base.
201 // TODO: calculer automatiquement la taille
202 static constexpr eBasicDataType basicDataType() { return eBasicDataType::Float128; }
203
204 //! Type du proxy associé
206
207 //! Remplit les éléments de \a values avec des Nan.
208 static void fillNan(ArrayView<Type> values);
209
210 //! Valeur par défaut.
211 static constexpr Type defaultValue() { return Float128(0.0l); }
212};
213
214/*---------------------------------------------------------------------------*/
215/*---------------------------------------------------------------------------*/
216/*!
217 * \internal
218 * \brief Spécialisation de DataTypeTraitsT pour le type \c Float32.
219 */
220template<>
222{
223 public:
224
225 //! Type de donnée
226 typedef Float32 Type;
227
228 //! Type de donnée de base de ce type de donnée
230
231 //! Nombre d'éléments du type de base
232 static constexpr int nbBasicType() { return 1; }
233
234 //! Nom du type de donnée
235 static constexpr const char* name() { return "Float32"; }
236
237 //! Type de donnée
238 static constexpr eDataType type() { return DT_Float32; }
239
240 //! Type de donnée de base.
241 // TODO: calculer automatiquement la taille
242 static constexpr eBasicDataType basicDataType() { return eBasicDataType::Float32; }
243
244 //! Type du proxy associé
246
247 //! Remplit les éléments de \a values avec des Nan.
248 static void fillNan(ArrayView<Type> values);
249
250 //! Valeur par défaut.
251 static constexpr Type defaultValue() { return 0.0f; }
252};
253
254/*---------------------------------------------------------------------------*/
255/*---------------------------------------------------------------------------*/
256/*!
257 * \internal
258 * \brief Spécialisation de DataTypeTraitsT pour le type \c BFloat16.
259 */
260template<>
262{
263 public:
264
265 //! Type de donnée
266 typedef BFloat16 Type;
267
268 //! Type de donnée de base de ce type de donnée
270
271 //! Nombre d'éléments du type de base
272 static constexpr int nbBasicType() { return 1; }
273
274 //! Nom du type de donnée
275 static constexpr const char* name() { return "BFloat16"; }
276
277 //! Type de donnée
278 static constexpr eDataType type() { return DT_BFloat16; }
279
280 //! Type de donnée de base.
281 // TODO: calculer automatiquement la taille
282 static constexpr eBasicDataType basicDataType() { return eBasicDataType::BFloat16; }
283
284 //! Type du proxy associé
286
287 //! Remplit les éléments de \a values avec des Nan.
288 static void fillNan(ArrayView<Type> values);
289
290 //! Valeur par défaut.
291 static constexpr Type defaultValue() { return {}; }
292};
293
294/*---------------------------------------------------------------------------*/
295/*---------------------------------------------------------------------------*/
296/*!
297 * \internal
298 * \brief Spécialisation de DataTypeTraitsT pour le type \c Float16.
299 */
300template<>
302{
303 public:
304
305 //! Type de donnée
306 typedef Float16 Type;
307
308 //! Type de donnée de base de ce type de donnée
310
311 //! Nombre d'éléments du type de base
312 static constexpr int nbBasicType() { return 1; }
313
314 //! Nom du type de donnée
315 static constexpr const char* name() { return "Float16"; }
316
317 //! Type de donnée
318 static constexpr eDataType type() { return DT_Float16; }
319
320 //! Type de donnée de base.
321 // TODO: calculer automatiquement la taille
322 static constexpr eBasicDataType basicDataType() { return eBasicDataType::Float16; }
323
324 //! Type du proxy associé
326
327 //! Remplit les éléments de \a values avec des Nan.
328 static void fillNan(ArrayView<Type> values);
329
330 //! Valeur par défaut.
331 static constexpr Type defaultValue() { return {}; }
332};
333
334/*---------------------------------------------------------------------------*/
335/*---------------------------------------------------------------------------*/
336/*!
337 * \internal
338 * \brief Spécialisation de DataTypeTraitsT pour le type <tt>Integer</tt>.
339 */
340template<>
342{
343 public:
344
345 //! Type de donnée
346 typedef Int8 Type;
347
348 //! Type de donnée de base de ce type de donnée
350
351 //! Nombre d'éléments du type de base
352 static constexpr int nbBasicType() { return 1; }
353
354 //! Nom du type de donnée
355 static constexpr const char* name() { return "Int8"; }
356
357 //! Type de donnée
358 static constexpr eDataType type() { return DT_Int8; }
359
360 //! Type de donnée de base.
361 static constexpr eBasicDataType basicDataType() { return eBasicDataType::Int8; }
362
363 //! Type du proxy associé
365
366 //! Remplit les éléments de \a values avec des Nan.
367 static void fillNan(ArrayView<Type> values);
368
369 //! Valeur par défaut.
370 static constexpr Type defaultValue() { return 0; }
371};
372
373/*---------------------------------------------------------------------------*/
374/*---------------------------------------------------------------------------*/
375/*!
376 * \internal
377 * \brief Spécialisation de DataTypeTraitsT pour le type <tt>Integer</tt>.
378 */
379template<>
380class DataTypeTraitsT<Int16>
381{
382 public:
383
384 //! Type de donnée
385 typedef Int16 Type;
386
387 //! Type de donnée de base de ce type de donnée
388 typedef Int16 BasicType;
389
390 //! Nombre d'éléments du type de base
391 static constexpr int nbBasicType() { return 1; }
392
393 //! Nom du type de donnée
394 static constexpr const char* name() { return "Int16"; }
395
396 //! Type de donnée
397 static constexpr eDataType type() { return DT_Int16; }
398
399 //! Type de donnée de base.
400 static constexpr eBasicDataType basicDataType() { return eBasicDataType::Int16; }
401
402 //! Type du proxy associé
404
405 //! Remplit les éléments de \a values avec des Nan.
406 static void fillNan(ArrayView<Type> values);
407
408 //! Valeur par défaut.
409 static constexpr Type defaultValue() { return 0; }
410};
411
412/*---------------------------------------------------------------------------*/
413/*---------------------------------------------------------------------------*/
414/*!
415 * \internal
416 * \brief Spécialisation de DataTypeTraitsT pour le type <tt>Int32</tt>.
417 */
418template<>
419class DataTypeTraitsT<Int32>
420{
421 public:
422
423 //! Type de donnée
424 typedef Int32 Type;
425
426 //! Type de donnée de base de ce type de donnée
427 typedef Int32 BasicType;
428
429 //! Nombre d'éléments du type de base
430 static constexpr int nbBasicType() { return 1; }
431
432 //! Nom du type de donnée
433 static constexpr const char* name() { return "Int32"; }
434
435 //! Type de donnée
436 static constexpr eDataType type() { return DT_Int32; }
437
438 //! Type de donnée de base.
439 static constexpr eBasicDataType basicDataType() { return eBasicDataType::Int32; }
440
441 //! Type du proxy associé
443
444 //! Remplit les éléments de \a values avec des Nan.
445 static void fillNan(ArrayView<Type> values);
446
447 //! Valeur par défaut.
448 static constexpr Type defaultValue() { return 0; }
449};
450
451/*---------------------------------------------------------------------------*/
452/*---------------------------------------------------------------------------*/
453/*!
454 * \internal
455 * \brief Spécialisation de DataTypeTraitsT pour le type <tt>Int64</tt>.
456 */
457template<>
458class DataTypeTraitsT<Int64>
459{
460 public:
461
462 //! Type de donnée
463 typedef Int64 Type;
464
465 //! Type de donnée de base de ce type de donnée
466 typedef Int64 BasicType;
467
468 //! Nombre d'éléments du type de base
469 static constexpr int nbBasicType() { return 1; }
470
471 //! Nom du type de donnée
472 static constexpr const char* name() { return "Int64"; }
473
474 //! Type de donnée
475 static constexpr eDataType type() { return DT_Int64; }
476
477 //! Type de donnée de base.
478 static constexpr eBasicDataType basicDataType() { return eBasicDataType::Int64; }
479
480 //! Type du proxy associé
482
483 //! Remplit les éléments de \a values avec des Nan.
484 static void fillNan(ArrayView<Type> values);
485
486 //! Valeur par défaut.
487 static constexpr Type defaultValue() { return 0; }
488};
489
490/*---------------------------------------------------------------------------*/
491/*---------------------------------------------------------------------------*/
492/*!
493 * \internal
494 * \brief Spécialisation de DataTypeTraitsT pour le type <tt>Int128</tt>.
495 */
496template<>
498{
499 public:
500
501 //! Type de donnée
502 typedef Int128 Type;
503
504 //! Type de donnée de base de ce type de donnée
506
507 //! Nombre d'éléments du type de base
508 static constexpr int nbBasicType() { return 1; }
509
510 //! Nom du type de donnée
511 static constexpr const char* name() { return "Int128"; }
512
513 //! Type de donnée
514 static constexpr eDataType type() { return DT_Int128; }
515
516 //! Type de donnée de base.
517 static constexpr eBasicDataType basicDataType() { return eBasicDataType::Int128; }
518
519 //! Type du proxy associé
521
522 //! Remplit les éléments de \a values avec des Nan.
523 static void fillNan(ArrayView<Type> values);
524
525 //! Valeur par défaut.
526 static constexpr Type defaultValue() { return 0; }
527};
528
529/*---------------------------------------------------------------------------*/
530/*---------------------------------------------------------------------------*/
531/*!
532 * \internal
533 * \brief Spécialisation de DataTypeTraitsT pour le type <tt>String</tt>.
534 */
535template<>
537{
538 public:
539
540 //! Type de donnée
541 typedef String Type;
542
543 //! Type de donnée de base de ce type de donnée
545
546 //! Nombre d'éléments du type de base
547 static constexpr int nbBasicType() { return 1; }
548
549 //! Nom du type de donnée
550 static constexpr const char* name() { return "String"; }
551
552 //! Type de donnée
553 static constexpr eDataType type() { return DT_String; }
554
555 //! Type du proxy associé
557
558 //! Remplit les éléments de \a values avec des Nan.
559 static void fillNan(ArrayView<Type> values);
560
561 //! Valeur par défaut.
562 static ARCANE_CORE_EXPORT Type defaultValue();
563};
564
565/*---------------------------------------------------------------------------*/
566/*---------------------------------------------------------------------------*/
567/*!
568 * \internal
569 * \brief Spécialisation de DataTypeTraitsT pour le type <tt>Real2</tt>.
570 */
571template<>
573{
574 public:
575
576 //! Type de donnée
577 typedef Real2 Type;
578
579 //! Type de donnée de base de ce type de donnée
580 typedef Real BasicType;
581
582 //! Type de retour de operator[] pour ce type
583 using SubscriptType = Real;
584
585 //! Nombre d'éléments du type de base
586 static constexpr int nbBasicType() { return 2; }
587
588 //! Nom du type de donnée
589 static constexpr const char* name() { return "Real2"; }
590
591 //! Type de donnée
592 static constexpr eDataType type() { return DT_Real2; }
593
594 //! Type de donnée de base.
595 static constexpr eBasicDataType basicDataType() { return DataTypeTraitsT<Real>::basicDataType(); }
596
597 //! Type du proxy associé
599
600 //! Remplit les éléments de \a values avec des Nan.
601 static void fillNan(ArrayView<Type> values);
602
603 //! Valeur par défaut.
604 static ARCANE_CORE_EXPORT Type defaultValue();
605
606 public:
607
608 static constexpr bool HasSubscriptOperator() { return true; }
609 static constexpr bool HasComponentX() { return true; }
610 static constexpr bool HasComponentY() { return true; }
611
612 using ComponentType = Real;
613};
614
615/*---------------------------------------------------------------------------*/
616/*---------------------------------------------------------------------------*/
617/*!
618 * \internal
619 * \brief Spécialisation de DataTypeTraitsT pour le type <tt>Real3</tt>.
620 */
621template<>
623{
624 public:
625
626 //! Type de donnée
627 typedef Real3 Type;
628
629 //! Type de donnée de base de ce type de donnée
630 typedef Real BasicType;
631
632 //! Type de retour de operator[] pour ce type
633 using SubscriptType = Real;
634
635 //! Nombre d'éléments du type de base
636 static constexpr int nbBasicType() { return 3; }
637
638 //! Nom du type de donnée
639 static constexpr const char* name() { return "Real3"; }
640
641 //! Type de donnée
642 static constexpr eDataType type() { return DT_Real3; }
643
644 //! Type de donnée de base.
645 static constexpr eBasicDataType basicDataType() { return DataTypeTraitsT<Real>::basicDataType(); }
646
647 //! Type du proxy associé
649
650 //! Remplit les éléments de \a values avec des Nan.
651 static void fillNan(ArrayView<Type> values);
652
653 //! Valeur par défaut.
654 static ARCANE_CORE_EXPORT Type defaultValue();
655
656 static constexpr bool HasSubscriptOperator() { return true; }
657 static constexpr bool HasComponentX() { return true; }
658 static constexpr bool HasComponentY() { return true; }
659 static constexpr bool HasComponentZ() { return true; }
660
661 using ComponentType = Real;
662};
663
664/*---------------------------------------------------------------------------*/
665/*---------------------------------------------------------------------------*/
666/*!
667 * \internal
668 * \brief Spécialisation de DataTypeTraitsT pour le type <tt>Real2x2</tt>.
669 */
670template<>
672{
673 public:
674
675 //! Type de donnée
676 typedef Real2x2 Type;
677
678 //! Type de donnée de base de ce type de donnée
679 typedef Real BasicType;
680
681 //! Type de retour de operator[] pour ce type
683
684 //! Nombre d'éléments du type de base
685 static constexpr int nbBasicType() { return 4; }
686
687 //! Nom du type de donnée
688 static constexpr const char* name() { return "Real2x2"; }
689
690 //! Type de donnée
691 static constexpr eDataType type() { return DT_Real2x2; }
692
693 //! Type de donnée de base.
694 static constexpr eBasicDataType basicDataType() { return DataTypeTraitsT<Real>::basicDataType(); }
695
696 //! Type du proxy associé
698
699 //! Remplit les éléments de \a values avec des Nan.
700 static void fillNan(ArrayView<Type> values);
701
702 //! Valeur par défaut.
703 static ARCANE_CORE_EXPORT Type defaultValue();
704
705 static constexpr bool HasSubscriptOperator() { return true; }
706
707 static constexpr bool HasComponentXX() { return true; }
708 static constexpr bool HasComponentYX() { return true; }
709 static constexpr bool HasComponentXY() { return true; }
710 static constexpr bool HasComponentYY() { return true; }
711
712 static constexpr bool HasComponentX() { return true; }
713 static constexpr bool HasComponentY() { return true; }
714
715 using ComponentType = Real2;
716};
717
718/*---------------------------------------------------------------------------*/
719/*---------------------------------------------------------------------------*/
720/*!
721 * \internal
722 * \brief Spécialisation de DataTypeTraitsT pour le type <tt>Real3x3</tt>.
723 */
724template<>
726{
727 public:
728
729 //! Type de donnée
730 typedef Real3x3 Type;
731
732 //! Type de donnée de base de ce type de donnée
733 typedef Real BasicType;
734
735 //! Type de retour de operator[] pour ce type
737
738 //! Nombre d'éléments du type de base
739 static constexpr int nbBasicType() { return 9; }
740
741 //! Nom du type de donnée
742 static constexpr const char* name() { return "Real3x3"; }
743
744 //! Type de donnée
745 static constexpr eDataType type() { return DT_Real3x3; }
746
747 //! Type de donnée de base.
748 static constexpr eBasicDataType basicDataType() { return DataTypeTraitsT<Real>::basicDataType(); }
749
750 //! Type du proxy associé
752
753 //! Remplit les éléments de \a values avec des Nan.
754 static void fillNan(ArrayView<Type> values);
755
756 //! Valeur par défaut.
757 static ARCANE_CORE_EXPORT Type defaultValue();
758
759 static constexpr bool HasSubscriptOperator() { return true; }
760
761 static constexpr bool HasComponentXX() { return true; }
762 static constexpr bool HasComponentYX() { return true; }
763 static constexpr bool HasComponentZX() { return true; }
764 static constexpr bool HasComponentXY() { return true; }
765 static constexpr bool HasComponentYY() { return true; }
766 static constexpr bool HasComponentZY() { return true; }
767 static constexpr bool HasComponentXZ() { return true; }
768 static constexpr bool HasComponentYZ() { return true; }
769 static constexpr bool HasComponentZZ() { return true; }
770
771 static constexpr bool HasComponentX() { return true; }
772 static constexpr bool HasComponentY() { return true; }
773 static constexpr bool HasComponentZ() { return true; }
774
775 using ComponentType = Real3;
776};
777
778/*---------------------------------------------------------------------------*/
779/*---------------------------------------------------------------------------*/
780/*!
781 * \internal
782 * \brief Spécialisation de DataTypeTraitsT pour le type <tt>NumVector<Real,Size></tt>.
783 */
784template<int Size>
785class DataTypeTraitsT<NumVector<Real,Size>>
786{
787 public:
788
789 //! Type de donnée
790 typedef Real Type;
791
792 //! Type de donnée de base de ce type de donnée
793 typedef Real BasicType;
794
795 //! Type de retour de operator()(Int32) pour ce type
797
798 //! Nombre d'éléments du type de base
799 static constexpr int nbBasicType() { return Size; }
800
801 //! Type de donnée de base.
802 static constexpr eBasicDataType basicDataType() { return DataTypeTraitsT<Real>::basicDataType(); }
803};
804
805/*---------------------------------------------------------------------------*/
806/*---------------------------------------------------------------------------*/
807/*!
808 * \internal
809 * \brief Spécialisation de DataTypeTraitsT pour le type <tt>NumMatrix<Real,RowSize,ColumnSize></tt>.
810 */
811template<int RowSize,int ColumnSize>
812class DataTypeTraitsT<NumMatrix<Real,RowSize,ColumnSize>>
813{
814 public:
815
816 //! Type de donnée
817 typedef Real Type;
818
819 //! Type de donnée de base de ce type de donnée
820 typedef Real BasicType;
821
822 //! Type de retour de operator()(Int32,Int32) pour ce type
824
825 //! Nombre d'éléments du type de base
826 static constexpr int nbBasicType() { return RowSize * ColumnSize; }
827
828 //! Type de donnée de base.
829 static constexpr eBasicDataType basicDataType() { return DataTypeTraitsT<Real>::basicDataType(); }
830};
831
832/*---------------------------------------------------------------------------*/
833/*---------------------------------------------------------------------------*/
834
835} // End namespace Arcane
836
837/*---------------------------------------------------------------------------*/
838/*---------------------------------------------------------------------------*/
839
840#endif
841
Déclarations des types généraux de Arcane.
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.
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.
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 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.
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 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 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.
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 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 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.
static constexpr const char * name()
Nom du type de donnée.
static constexpr eBasicDataType basicDataType()
Type de donnée de base.
static constexpr eBasicDataType basicDataType()
Type de donnée de base.
Real3Proxy ProxyType
Type du proxy associé
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.
Real3x3Proxy ProxyType
Type du proxy associé
static constexpr eBasicDataType basicDataType()
Type de donnée de base.
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.
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.
BuiltInProxy< Real > ProxyType
Type du proxy associé
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.
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
Vue modifiable d'un tableau d'un type T.
Type flottant demi-précision.
Chaîne de caractères unicode.
-*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-
Arccore::Float128 Float128
Type représentant un floattan sur 128 bits.
Arccore::Int8 Int8
Type représentant un entier sur 8 bits.
float Float32
Type flottant IEEE-753 simple précision (binary32)
unsigned char Byte
Type d'un octet.
Definition UtilsTypes.h:148
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
double Real
Type représentant un réel.