12#ifndef ARCANE_DATATYPE_DATATYPETRAITS_H
13#define ARCANE_DATATYPE_DATATYPETRAITS_H
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"
41class DataTypeScalarReal;
46template<
typename DataType>
52template<
typename Type>
76 static constexpr const char*
name() {
return "Bool"; }
120 static constexpr const char*
name() {
return "Byte"; }
162 static constexpr const char*
name() {
return "Real"; }
202 static constexpr const char*
name() {
return "Float128"; }
242 static constexpr const char*
name() {
return "Float32"; }
282 static constexpr const char*
name() {
return "BFloat16"; }
322 static constexpr const char*
name() {
return "Float16"; }
362 static constexpr const char*
name() {
return "Int8"; }
401 static constexpr const char*
name() {
return "Int16"; }
440 static constexpr const char*
name() {
return "Int32"; }
479 static constexpr const char*
name() {
return "Int64"; }
518 static constexpr const char*
name() {
return "Int128"; }
557 static constexpr const char*
name() {
return "String"; }
596 static constexpr const char*
name() {
return "Real2"; }
615 static constexpr bool HasSubscriptOperator() {
return true; }
616 static constexpr bool HasComponentX() {
return true; }
617 static constexpr bool HasComponentY() {
return true; }
619 using ComponentType =
Real;
646 static constexpr const char*
name() {
return "Real3"; }
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; }
668 using ComponentType =
Real;
695 static constexpr const char*
name() {
return "Real2x2"; }
712 static constexpr bool HasSubscriptOperator() {
return true; }
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; }
719 static constexpr bool HasComponentX() {
return true; }
720 static constexpr bool HasComponentY() {
return true; }
722 using ComponentType = Real2;
749 static constexpr const char*
name() {
return "Real3x3"; }
766 static constexpr bool HasSubscriptOperator() {
return true; }
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; }
778 static constexpr bool HasComponentX() {
return true; }
779 static constexpr bool HasComponentY() {
return true; }
780 static constexpr bool HasComponentZ() {
return true; }
782 using ComponentType = Real3;
818template<
int RowSize,
int ColumnSize>
833 static constexpr int nbBasicType() {
return RowSize * ColumnSize; }
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.
BFloat16 Type
Type de donnée.
static void fillNan(ArrayView< Type > values)
Remplit les éléments de values avec des Nan.
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.
Float128 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 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.
Float16 Type
Type de donnée.
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 Type
Type de donnée.
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.
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.
Int128 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.
Int16 BasicType
Type de donnée de base de ce type de donnée.
BuiltInProxy< Int32 > ProxyType
Type du proxy associé
Int16 Type
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 constexpr const char * name()
Nom du type de donnée.
Int32 Type
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.
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.
static constexpr int nbBasicType()
Nombre d'éléments du type de base.
BuiltInProxy< Int64 > ProxyType
Type du proxy associé
Int64 Type
Type de donnée.
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.
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.
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.
Real2 Type
Type de donnée.
static Type defaultValue()
Valeur par défaut.
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.
Real2x2 Type
Type de donnée.
static Type defaultValue()
Valeur par défaut.
static void fillNan(ArrayView< Type > values)
Remplit les éléments de values avec des Nan.
static constexpr eBasicDataType basicDataType()
Type de donnée de base.
static Type defaultValue()
Valeur par défaut.
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.
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.
Real3 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.
Real3x3Proxy ProxyType
Type du proxy associé
static constexpr eBasicDataType basicDataType()
Type de donnée de base.
Real3x3 Type
Type de donnée.
static Type defaultValue()
Valeur par défaut.
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.
BuiltInProxy< Real > ProxyType
Type du proxy associé
String Type
Type de donnée.
static void fillNan(ArrayView< Type > values)
Remplit les éléments de values avec des Nan.
static Type defaultValue()
Valeur par défaut.
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 sur 128 bits.
Type flottant demi-précision.
Type entier sur 128 bits.
Petite matrice de taille fixe contenant RowSize lignes et ColumnSize colonnes.
Petit vecteur de taille fixe de N données numériques.
Classe gérant un vecteur de réel de dimension 2.
Classe gérant un vecteur de réel de dimension 2.
Classe gérant une matrice de réel de dimension 2x2.
Classe gérant un vecteur de réel de dimension 3.
Classe gérant une matrice de réel de dimension 3x3.
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.
@ Float32
Donnée de type Float32.
@ Float16
Donnée de type Float16.
@ Int128
Donnée de type entier 128 bits.
@ Int16
Donnée de type entier 16 bits.
@ Int8
< Donnée de type BFloat16
@ Byte
Donnée de type octet.
@ Int32
Donnée de type entier 32 bits.
@ Float64
Donnée de type Float64.
@ Float128
Donnée de type Float128.
@ Int64
Donnée de type entier 64 bits.
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.
float Float32
Type flottant IEEE-753 simple précision.
eDataType
Type d'une donnée.
@ DT_Float32
Donnée de type 'Float32'.
@ DT_Int128
Donnée de type entier sur 128 bits.
@ DT_Real2x2
Donnée de type tenseur 3x3.
@ DT_Int16
Donnée de type entier 16 bits.
@ DT_Int8
Donnée de type entier sur 8 bits.
@ DT_Real3x3
Donnée de type tenseur 3x3.
@ DT_Int32
Donnée de type entier 32 bits.
@ DT_Real3
Donnée de type vecteur 3.
@ DT_Float16
Donnée de type 'Float16'.
@ DT_Int64
Donnée de type entier 64 bits.
@ DT_String
Donnée de type chaîne de caractère UTF-8.
@ DT_BFloat16
Donnée de type 'BFloat16'.
@ DT_Real2
Donnée de type vecteur 2.
@ DT_Real
Donnée de type réel.
@ DT_Byte
Donnée de type octet.
@ DT_Float128
Donnée de type flottant sur 128 bits.
std::int32_t Int32
Type entier signé sur 32 bits.