Espace de nom pour les fonctions mathématiques. Plus de détails...
Fonctions | |
| __host__ __device__ Real3 | vecMul (Real3 u, Real3 v) |
| Produit vectoriel de u par v dans \(R^3\). | |
| __host__ __device__ Real | vecMul2D (Real3 u, Real3 v) |
| Produit vectoriel de u par v dans \(R^2\). | |
| __host__ __device__ Real | cross2D (Real3 u, Real3 v) |
| Produit vectoriel de u par v dans \(R^2\). | |
| __host__ __device__ Real | dot (Real2 u, Real2 v) |
| Produit scalaire de u par v dans \(R^2\). | |
| __host__ __device__ Real | scaMul (Real2 u, Real2 v) |
| Produit scalaire de u par v dans \(R^2\). | |
| __host__ __device__ Real | dot (Real3 u, Real3 v) |
| Produit scalaire de u par v. | |
| __host__ __device__ Real | scaMul (Real3 u, Real3 v) |
| Produit scalaire de u par v. | |
| __host__ __device__ Real | mixteMul (Real3 u, Real3 v, Real3 w) |
| Produit mixte de u, v et w. | |
| __host__ __device__ Real | matDet (Real3 u, Real3 v, Real3 w) |
| Déterminant de la matrice u,v,w. | |
| Real3x3 | prodTens (Real3 u, Real3 v) |
| Produit tensoriel de deux vecteurs Real3. | |
| __host__ __device__ Real3 | prodTensVec (Real3x3 t, Real3 v) |
| Produit matrice-vecteur entre un tenseur et un vecteur. | |
| __host__ __device__ Real2 | prodTensVec (Real2x2 t, Real2 v) |
| __host__ __device__ Real3 | prodVecTens (Real3 v, Real3x3 t) |
| Produit transposé(vecteur) matrice entre la transposée d'un vecteur et une matrice. | |
| __host__ __device__ Real3x3 | matrixProduct (const Real3x3 &t, const Real3x3 &v) |
| Produit matrice-matrice entre deux tenseurs. | |
| __host__ __device__ Real3x3 | transpose (const Real3x3 &t) |
| Transpose la matrice. | |
| __host__ __device__ Real3x3 | matrixTranspose (const Real3x3 &t) |
| Transpose la matrice. | |
| __host__ __device__ Real | doubleContraction (const Real3x3 &u, const Real3x3 &v) |
| __host__ __device__ Real | doubleContraction (const Real2x2 &u, const Real2x2 &v) |
| __host__ __device__ Real2 | min (Real2 a, Real2 b) |
| Retourne le minimum de deux Real2. | |
| __host__ __device__ Real3 | min (Real3 a, Real3 b) |
| Retourne le minimum de deux Real3. | |
| __host__ __device__ Real2x2 | min (const Real2x2 &a, const Real2x2 &b) |
| Retourne le minimum de deux Real2x2. | |
| __host__ __device__ Real3x3 | min (const Real3x3 &a, const Real3x3 &b) |
| Retourne le minimum de deux Real3x3. | |
| template<class T> | |
| T | min (const T &a, const T &b, const T &c) |
| Retourne le minimum de trois éléments. | |
| template<class T> | |
| T | max (const T &a, const T &b, const T &c) |
| Retourne le maximum de trois éléments. | |
| __host__ __device__ Real2 | max (Real2 a, Real2 b) |
| Retourne le maximum de deux Real2. | |
| __host__ __device__ Real3 | max (Real3 a, Real3 b) |
| Retourne le maximum de deux Real3. | |
| __host__ __device__ Real2x2 | max (const Real2x2 &a, const Real2x2 &b) |
| Retourne le maximum de deux Real2x2. | |
| __host__ __device__ Real3x3 | max (const Real3x3 &a, const Real3x3 &b) |
| Retourne le maximum de deux Real3x3. | |
| __host__ __device__ Real | min4Real (Real a, Real b, Real c, Real d) |
| retourne le min de quatre Real | |
| __host__ __device__ Real | max4Real (Real a, Real b, Real c, Real d) |
| retourne le max de quatre Real | |
| __host__ __device__ Real | min8Real (const Real a[8]) |
| retourne le min de huit Real | |
| Real | max8Real (const Real a[8]) |
| retourne le max de huit Real | |
| __host__ __device__ Real | minMod (Real a, Real b, Real c, Real d) |
| retourne le Min mod de quatre Real | |
| __host__ __device__ Real | minMod2 (Real a, Real b) |
| retourne le Min mod de deux Reals | |
| __host__ __device__ Real | maxMod2 (Real a, Real b) |
| retourne le Max mod de deux Reals | |
| Real | relativeError (Real a, Real b) |
| Retourne l'erreur relative entre deux scalaires a et b. | |
| Real | relativeError (const Real3x3 &T1, const Real3x3 &T2) |
| Retourne l'erreur relative entre deux tenseurs T1 et T2. | |
| Real | relativeError2 (Real a, Real b) |
| Retourne l'erreur relative entre deux scalaires a et b relativement à b. | |
| Real | relativeError1 (Real a, Real b) |
| Retourne l'erreur relative entre deux scalaires a et b relativement à a. | |
| bool | searchExtrema (ConstArrayView< Real2 > array, Real &xmin, Real &xmax, Real &ymin, Real &ymax, bool need_init) |
| Recherche les valeurs extrèmes d'un tableau de couple (x,y). | |
| __host__ __device__ Real | matrixDeterminant (Real3x3 m) |
| Calcul du déterminant d'une matrice 3x3. | |
| Real | normeR3 (Real3 v1) |
| Norme d'un vecteur. | |
| __host__ __device__ Real3x3 | matrix3x3Id () |
| Matrice identite. | |
| __host__ __device__ Real3x3 | inverseMatrix (const Real3x3 &m, Real d) |
| Calcul de l'inverse d'une matrice m en supposant connu son déterminant d. | |
| __host__ __device__ Real3x3 | inverseMatrix (const Real3x3 &m) |
| Calcul de l'inverse d'une matrice m. | |
| Real3 | crossProduct3 (Real3 v1, Real3 v2) |
| Produit vectoriel de deux vecteurs à 3 composantes. | |
| __host__ __device__ Real3 | cross (Real3 v1, Real3 v2) |
| Produit vectoriel de deux vecteurs à 3 composantes. | |
| __host__ __device__ Real3 | normalizeReal3 (Real3 v) |
| Normalisation d'un Real3. | |
| Real3 | normalizedCrossProduct3 (Real3 v1, Real3 v2) |
| Produit vectoriel normalisé. | |
| Real3x3 | matrix3x3Transp (Real3x3 m) |
| Real3x3 | matrix3x3Prod (Real3x3 m1, Real3x3 m2) |
| Multiplication de 2 matrices 3x3. | |
| __host__ __device__ Real3 | multiply (const Real3x3 &m, Real3 v) |
| Produit matrice 3x3 . vecteur. | |
| bool | isNearlyId (Real3x3 m, Real epsilon=1.e-10) |
| Vérifie qu'une matrice vaut bien la matrice identité. | |
| Real3 | planarSymmetric (Real3 u, Real3 n) |
| Symétrie d'un vecteur u par rapport à un plan de normale n. | |
| Real3 | axisSymmetric (Real3 u, Real3 a) |
| Symétrie d'un vecteur u par rapport à un axe de vecteur directeur a . | |
| template<typename T> | |
| void | add (ArrayView< T > lhs, ConstArrayView< T > copy_array) |
| Ajoute le tableau copy_array dans l'instance. | |
| template<typename T> | |
| void | add (ArrayView< T > lhs, ArrayView< T > copy_array) |
| Ajoute le tableau copy_array dans l'instance. | |
| template<typename T> | |
| void | sub (ArrayView< T > lhs, ConstArrayView< T > copy_array) |
| Soustrait le tableau copy_array de l'instance. | |
| template<typename T> | |
| void | sub (ArrayView< T > lhs, ArrayView< T > copy_array) |
| Soustrait le tableau copy_array de l'instance. | |
| template<typename T> | |
| void | mult (ArrayView< T > lhs, ConstArrayView< T > copy_array) |
| Multiplie terme à terme les éléments de l'instance par les éléments du tableau copy_array. | |
| template<typename T> | |
| void | mult (ArrayView< T > lhs, ArrayView< T > copy_array) |
| Multiplie terme à terme les éléments de l'instance par les éléments du tableau copy_array. | |
| template<typename T> | |
| void | mult (ArrayView< T > lhs, T o) |
| Multiplie tous les éléments du tableau par le réel o. | |
| template<typename T> | |
| void | power (ArrayView< T > lhs, T o) |
| Met à la puissance o tous les éléments du tableau. | |
| SimdReal3 | cross (const SimdReal3 &u, const SimdReal3 &v) |
| Produit vectoriel de u par v dans \(R^3\). | |
| SimdReal | cross2D (const SimdReal3 &u, const SimdReal3 &v) |
| Produit vectoriel de u par v dans \(R^2\). | |
| SimdReal | dot (const SimdReal3 &u, const SimdReal3 &v) |
| SimdReal | dot (const SimdReal2 &u, const SimdReal2 &v) |
| SimdReal | abs (const SimdReal3 &sr) |
| SimdReal | abs (const SimdReal2 &sr) |
| SimdReal | normL2 (const SimdReal3 &sr) |
| SimdReal | normL2 (const SimdReal2 &sr) |
| SimdReal | mixteMul (const SimdReal3 &u, const SimdReal3 &v, const SimdReal3 &w) |
| Produit mixte de u, v et w. | |
| SimdReal3x3 | prodTens (const SimdReal3 &u, const SimdReal3 &v) |
| SimdReal3x3 | matrixProduct (const SimdReal3x3 &t, const SimdReal3x3 &v) |
| Produit matrice matrice entre deux tenseurs. | |
| SimdReal3x3 | matrixTranspose (const SimdReal3x3 &t) |
| Transpose la matrice. | |
| __host__ __device__ SimdReal2 | min (const SimdReal2 &a, const SimdReal2 &b) |
| Retourne le minimum de deux SimdReal2. | |
| __host__ __device__ SimdReal3 | min (const SimdReal3 &a, const SimdReal3 &b) |
| Retourne le minimum de deux SimdReal3. | |
| SimdReal2x2 | min (const SimdReal2x2 &a, const SimdReal2x2 &b) |
| Retourne le minimum de deux SimdReal2x2. | |
| SimdReal3x3 | min (const SimdReal3x3 &a, const SimdReal3x3 &b) |
| Retourne le minimum de deux SimdReal3x3. | |
| __host__ __device__ SimdReal2 | max (const SimdReal2 &a, const SimdReal2 &b) |
| Retourne le maximum de deux SimdReal2. | |
| __host__ __device__ SimdReal3 | max (const SimdReal3 &a, const SimdReal3 &b) |
| Retourne le maximum de deux SimdReal3. | |
| SimdReal2x2 | max (const SimdReal2x2 &a, const SimdReal2x2 &b) |
| Retourne le maximum de deux SimdReal2x2. | |
| SimdReal3x3 | max (const SimdReal3x3 &a, const SimdReal3x3 &b) |
| Retourne le maximum de deux SimdReal3x3. | |
| template<class _Type> | |
| bool | isNearlyZero (const BuiltInProxy< _Type > &a) |
| template<class _Type> | |
| bool | isZero (const BuiltInProxy< _Type > &a) |
| Teste si une valeur est exactement égale à zéro. | |
| double | truncateDouble (double v, Integer nb_digit) |
| Tronque la précision du réel v à nb_digit chiffres significatifs. | |
| void | truncateDouble (ArrayView< double > values, Integer nb_digit) |
| Tronque la précision du tableau de réels values à nb_digit chiffres significatifs. | |
| apfloat | log (apfloat v) |
| Logarithme népérien de v. | |
| apfloat | floor (apfloat v) |
| Arondir v à l'entier immédiatement inférieur. | |
| apfloat | exp (apfloat v) |
| Exponentielle de v. | |
| apfloat | sqrt (apfloat v) |
| Racine carrée de v. | |
| apfloat | pow (apfloat x, apfloat y) |
| Fonction puissance. | |
| apfloat | min (apfloat a, apfloat b) |
| Retourne le minimum de deux réels. | |
| apfloat | max (apfloat a, apfloat b) |
| Retourne le maximum de deux réels. | |
| apfloat | abs (apfloat a) |
| Retourne la valeur absolue d'un réel. | |
| EMULSimdReal | min (EMULSimdReal a, EMULSimdReal b) |
| EMULSimdReal | min (EMULSimdReal a, Real b) |
| EMULSimdReal | min (Real a, EMULSimdReal b) |
| EMULSimdReal | max (EMULSimdReal a, EMULSimdReal b) |
| EMULSimdReal | max (EMULSimdReal a, Real b) |
| EMULSimdReal | max (Real a, EMULSimdReal b) |
| EMULSimdReal | sqrt (EMULSimdReal a) |
| EMULSimdReal | exp (EMULSimdReal a) |
| EMULSimdReal | log10 (EMULSimdReal a) |
| __host__ __device__ double | log (double v) |
| Logarithme naturel de v. | |
| __host__ __device__ long double | log (long double v) |
| Logarithme naturel de v. | |
| __host__ __device__ double | log10 (double v) |
| Logarithme décimal de v. | |
| __host__ __device__ long double | log10 (long double v) |
| Logarithme décimal de v. | |
| __host__ __device__ double | floor (double v) |
| Arrondit v à l'entier immédiatement inférieur. | |
| __host__ __device__ long double | floor (long double v) |
| Arrondit v à l'entier immédiatement inférieur. | |
| __host__ __device__ double | exp (double v) |
| Exponentielle de v. | |
| __host__ __device__ long double | exp (long double v) |
| Exponentielle de v. | |
| __host__ __device__ double | sqrt (double v) |
| Racine carrée de v. | |
| __host__ __device__ long double | sqrt (long double v) |
| Racine carrée de v. | |
| __host__ __device__ double | pow (double x, double y) |
| Fonction de puissance. | |
| __host__ __device__ long double | pow (long double x, long double y) |
| Fonction de puissance. | |
| __host__ __device__ long double | pow (double x, long double y) |
| Fonction de puissance. | |
| __host__ __device__ long double | pow (long double x, double y) |
| Fonction de puissance. | |
| template<class T> | |
| __host__ __device__ T | min (const T &a, const T &b) |
| Retourne le minimum de deux éléments. | |
| __host__ __device__ long double | min (long double a, long double b) |
| Retourne le minimum de deux nombres réels. | |
| __host__ __device__ long double | min (double a, long double b) |
| Retourne le minimum de deux nombres réels. | |
| __host__ __device__ long double | min (long double a, double b) |
| Retourne le minimum de deux nombres réels. | |
| __host__ __device__ double | min (double a, double b) |
| Retourne le minimum de deux nombres réels. | |
| __host__ __device__ float | min (float a, float b) |
| Retourne le minimum de deux nombres réels. | |
| __host__ __device__ int | min (int a, int b) |
| Retourne le minimum de deux entiers. | |
| template<class T> | |
| __host__ __device__ T | max (const T &a, const T &b) |
| Retourne le maximum de deux éléments. | |
| __host__ __device__ long double | max (long double a, long double b) |
| Retourne le maximum de deux nombres réels. | |
| __host__ __device__ long double | max (double a, long double b) |
| Retourne le maximum de deux nombres réels. | |
| __host__ __device__ long double | max (long double a, double b) |
| Retourne le maximum de deux nombres réels. | |
| __host__ __device__ unsigned long | max (unsigned long a, unsigned long b) |
| Retourne le maximum de deux entiers. | |
| __host__ __device__ double | max (double a, double b) |
| Retourne le maximum de deux nombres réels. | |
| __host__ __device__ float | max (float a, float b) |
| Retourne le maximum de deux nombres réels. | |
| __host__ __device__ Int16 | max (Int16 a, Int16 b) |
| Retourne le maximum de deux Int16. | |
| __host__ __device__ Int32 | max (Int32 a, Int32 b) |
| Retourne le maximum de deux Int32. | |
| __host__ __device__ Int64 | max (Int32 a, Int64 b) |
| Retourne le maximum de deux Int32. | |
| __host__ __device__ Int64 | max (Int64 a, Int32 b) |
| Retourne le maximum de deux Int64. | |
| __host__ __device__ Int64 | max (Int64 a, Int64 b) |
| Retourne le maximum de deux Int64. | |
| __host__ __device__ long double | abs (long double a) |
| Retourne la valeur absolue d'un nombre réel. | |
| __host__ __device__ double | abs (double a) |
| Retourne la valeur absolue d'un nombre réel. | |
| __host__ __device__ float | abs (float a) |
| Retourne la valeur absolue d'un nombre réel. | |
| __host__ __device__ short | abs (short a) |
| Retourne la valeur absolue d'un 'int'. | |
| __host__ __device__ int | abs (int a) |
| Retourne la valeur absolue d'un 'int'. | |
| __host__ __device__ long | abs (long a) |
| Retourne la valeur absolue d'un 'long'. | |
| __host__ __device__ long long | abs (long long a) |
| Retourne la valeur absolue d'un 'long'. | |
| template<typename DataType, int Size> | |
| constexpr __host__ __device__ bool | isNearlyZero (const NumVector< DataType, Size > &v) |
| Compare le vecteur avec le vecteur nul. | |
| template<typename DataType, int RowSize, int ColumnSize> | |
| constexpr __host__ __device__ bool | isNearlyZero (const NumMatrix< DataType, RowSize, ColumnSize > &v) |
| Compare la matrice avec la matrice nulle. | |
| template<typename DataType, int Size> | |
| constexpr __host__ __device__ DataType | squareNormL2 (const NumVector< DataType, Size > &v) |
| Retourne le carré de la norme L2 du vecteur. | |
| template<typename DataType, int Size> | |
| __host__ __device__ Real | normL2 (const NumVector< DataType, Size > &v) |
| Retourne la norme L2 du vecteur. | |
| constexpr __host__ __device__ bool | isNearlyZero (const Real2 &v) |
| Indique si l'instance est proche de l'instance zéro. | |
| constexpr __host__ __device__ Real | squareNormL2 (const Real2 &v) |
| Retourne la norme au carré du couple $ \(x^2+y^2+z^2$\). | |
| __host__ __device__ Real | normL2 (const Real2 &v) |
| Retourne la norme du couple $ \(\sqrt{x^2+y^2+z^2}$\). | |
| Real2 & | mutableNormalize (Real2 &v) |
| Normalise le couple. | |
| Real2 | normalizeL2 (const Real2 &v) |
| Retourne le couple v normalisé par la norme L2. | |
| constexpr __host__ __device__ bool | isNearlyZero (const Real2x2 &v) |
| Compare la matrice avec la matrice nulle. | |
| constexpr __host__ __device__ Real | squareNormL2 (const Real3 &v) |
| Retourne le carré de la norme L2 du triplet $ \(x^2+y^2+z^2\). | |
| constexpr __host__ __device__ bool | isNearlyZero (const Real3 &v) |
| Indique si l'instance est proche de l'instance nulle. | |
| __host__ __device__ Real | normL2 (const Real3 &v) |
| Retourne la norme L2 du triplet $ \(\sqrt{v.x^2+v.y^2+v.z^2}\). | |
| Real3 & | mutableNormalize (Real3 &v) |
| Normalise le triplet v. | |
| Real3 | normalizeL2 (const Real3 &v) |
| Retourne le triplet v normalisé avec la norme L2. | |
| constexpr __host__ __device__ bool | isNearlyZero (const Real3x3 &v) |
| Compare la matrice avec la matrice nulle. | |
| template<class Type> | |
| constexpr __host__ __device__ bool | isNearlyEqual (const Type &a, const Type &b) |
| Teste si deux valeurs sont approximativement égales. Pour les types entiers, cette fonction est équivalente à IsEqual(). Dans le cas des types réels, les deux nombres sont considérés comme égaux si et seulement si la valeur absolue de leur différence relative est inférieure à un epsilon donné. Cet epsilon est égal à float_info<Type>::nearlyEpsilon(). | |
| constexpr __host__ __device__ bool | isNearlyEqual (Real a, Real b) |
| Overload pour les réels. | |
| template<class Type> | |
| constexpr __host__ __device__ bool | isNearlyEqualWithEpsilon (const Type &a, const Type &b, const Type &epsilon) |
| Teste si deux valeurs sont approximativement égales. Pour les types entiers, cette fonction est équivalente à IsEqual(). Dans le cas des types réels, les deux nombres sont considérés comme égaux si et seulement si la valeur absolue de leur différence relative est inférieure à epsilon. | |
| __host__ __device__ constexpr bool | isNearlyEqualWithEpsilon (Real a, Real b, Real epsilon) |
| Overload pour les réels. | |
| template<class Type> | |
| constexpr __host__ __device__ bool | isEqual (const Type &a, const Type &b) |
| Teste l'égalité bit par bit entre deux valeurs. | |
| __host__ __device__ constexpr bool | isEqual (Real a, Real b) |
| Overload pour les réels. | |
| template<class Type> | |
| constexpr __host__ __device__ bool | isNearlyZeroWithEpsilon (const Type &a, const Type &epsilon) |
| Teste si une valeur est approximativement égale à zéro dans un epsilon. | |
| template<class Type> | |
| constexpr __host__ __device__ bool | isNearlyZero (const Type &a) |
| Teste si une valeur est approximativement égale à zéro en utilisant l'epsilon standard. | |
| template<class Type> | |
| constexpr __host__ __device__ bool | isZero (const Type &a) |
| Teste si une valeur est exactement égale à zéro. | |
Espace de nom pour les fonctions mathématiques.
Espace de noms pour les fonctions mathématiques.
Cet espace de nom contient toutes les fonctions mathématiques utilisées par le code.
Cet espace de noms contient toutes les fonctions mathématiques utilisées par le code.
Définition à la ligne 76 du fichier SimdMathUtils.h.
Définition à la ligne 64 du fichier SimdMathUtils.h.
|
inline |
Ajoute le tableau copy_array dans l'instance.
Comme aucune allocation mémoire n'est effectuée, le nombre d'éléments de copy_array doit être inférieur ou égal au nombre d'éléments courant. S'il est inférieur, les éléments du tableau courant situés à la fin du tableau sont inchangés
Définition à la ligne 945 du fichier MathUtils.h.
Références Arcane::ArrayView< T >::data(), et Arcane::ArrayView< T >::size().
|
inline |
Ajoute le tableau copy_array dans l'instance.
Comme aucune allocation mémoire n'est effectuée, le nombre d'éléments de copy_array doit être inférieur ou égal au nombre d'éléments courant. S'il est inférieur, les éléments du tableau courant situés à la fin du tableau sont inchangés
Définition à la ligne 926 du fichier MathUtils.h.
Références Arcane::ArrayView< T >::data(), Arcane::ConstArrayView< T >::data(), Arcane::ArrayView< T >::size(), et Arcane::ConstArrayView< T >::size().
Produit vectoriel de u par v dans \(R^3\).
Définition à la ligne 32 du fichier SimdMathUtils.h.
Produit vectoriel de u par v dans \(R^2\).
Définition à la ligne 45 du fichier SimdMathUtils.h.
Produit vectoriel de deux vecteurs à 3 composantes.
Définition à la ligne 740 du fichier MathUtils.h.
Références Arcane::Real3POD::x, Arcane::Real3POD::y, et Arcane::Real3POD::z.
Définition à la ligne 57 du fichier SimdMathUtils.h.
Définition à la ligne 51 du fichier SimdMathUtils.h.
|
inline |
} U_{i,j}V_{i,j}
Définition à la ligne 324 du fichier MathUtils.h.
Références Arcane::Real2POD::x, Arcane::Real2x2::x, Arcane::Real2POD::y, et Arcane::Real2x2::y.
|
inline |
} U_{i,j}V_{i,j}
Définition à la ligne 297 du fichier MathUtils.h.
Références Arcane::Real3POD::x, Arcane::Real3x3::x, Arcane::Real3POD::y, Arcane::Real3x3::y, Arcane::Real3POD::z, et Arcane::Real3x3::z.
|
inline |
Exponentielle de v.
Définition à la ligne 54 du fichier MathApfloat.h.
|
inline |
Exponentielle de v.
Définition à la ligne 121 du fichier MathBase.h.
|
inline |
Définition à la ligne 118 du fichier SimdOperation.h.
|
inline |
Exponentielle de v.
Définition à la ligne 130 du fichier MathBase.h.
|
inline |
Arondir v à l'entier immédiatement inférieur.
Définition à la ligne 43 du fichier MathApfloat.h.
Référencé par Arcane::OutputChecker::check(), pow(), pow(), et pow().
|
inline |
Arrondit v à l'entier immédiatement inférieur.
Définition à la ligne 100 du fichier MathBase.h.
|
inline |
Arrondit v à l'entier immédiatement inférieur.
Définition à la ligne 109 du fichier MathBase.h.
Calcul de l'inverse d'une matrice m.
Définition à la ligne 725 du fichier MathUtils.h.
Références Arcane::Real3x3::determinant(), et inverseMatrix().
Calcul de l'inverse d'une matrice m en supposant connu son déterminant d.
Définition à la ligne 709 du fichier MathUtils.h.
Références Arcane::Real3POD::x, Arcane::Real3x3::x, Arcane::Real3POD::y, Arcane::Real3x3::y, Arcane::Real3POD::z, et Arcane::Real3x3::z.
Référencé par inverseMatrix().
|
inlineconstexpr |
Teste l'égalité bit par bit entre deux valeurs.
| true | si les deux valeurs sont égales, |
| false | sinon. |
Définition à la ligne 269 du fichier TypeEqual.h.
Références Arcane::TypeEqualT< T >::isEqual().
Référencé par Arcane::CaseTable::_findValue(), Arcane::OutputChecker::check(), et Arcane::VariableRefScalarT< Byte >::isEqual().
Overload pour les réels.
Définition à la ligne 276 du fichier TypeEqual.h.
Références Arcane::TypeEqualT< T >::isEqual().
|
inlineconstexpr |
Teste si deux valeurs sont approximativement égales. Pour les types entiers, cette fonction est équivalente à IsEqual(). Dans le cas des types réels, les deux nombres sont considérés comme égaux si et seulement si la valeur absolue de leur différence relative est inférieure à un epsilon donné. Cet epsilon est égal à float_info<Type>::nearlyEpsilon().
| true | si les deux valeurs sont égales, |
| false | sinon. |
Définition à la ligne 228 du fichier TypeEqual.h.
Références Arcane::TypeEqualT< T >::isNearlyEqual().
Référencé par Arcane::VariableRefScalarT< Byte >::isNearlyEqual().
Overload pour les réels.
Définition à la ligne 235 du fichier TypeEqual.h.
Références Arcane::TypeEqualT< T >::isNearlyEqual().
|
inlineconstexpr |
Teste si deux valeurs sont approximativement égales. Pour les types entiers, cette fonction est équivalente à IsEqual(). Dans le cas des types réels, les deux nombres sont considérés comme égaux si et seulement si la valeur absolue de leur différence relative est inférieure à epsilon.
| true | si les deux valeurs sont égales, |
| false | sinon. |
Définition à la ligne 251 du fichier TypeEqual.h.
Références Arcane::TypeEqualT< T >::isNearlyEqualWithEpsilon().
|
inlineconstexpr |
Overload pour les réels.
Définition à la ligne 258 du fichier TypeEqual.h.
Références Arcane::TypeEqualT< T >::isNearlyEqualWithEpsilon().
Vérifie qu'une matrice vaut bien la matrice identité.
Définition à la ligne 860 du fichier MathUtils.h.
Références Arcane::Real3POD::x, Arcane::Real3x3::x, Arcane::Real3POD::y, Arcane::Real3x3::y, Arcane::Real3POD::z, et Arcane::Real3x3::z.
|
inline |
Définition à la ligne 154 du fichier BuiltInProxy.h.
|
constexpr |
Compare la matrice avec la matrice nulle.
La matrice est nulle si et seulement si chacun de ses composants est inférieur à un epsilon donné. La valeur epsilon utilisée est celle de float_info<value_type>::nearlyEpsilon():
\[A=0 \Leftrightarrow |A.x|<\epsilon,|A.y|<\epsilon,|A.z|<\epsilon \]
| vrai | si la matrice est égale à la matrice nulle, |
| faux | sinon. |
Définition à la ligne 65 du fichier MathNumeric.h.
|
constexpr |
Compare le vecteur avec le vecteur nul.
La matrice est presque nulle si et seulement si chacun de ses composants est inférieur à un epsilon donné. La valeur epsilon utilisée est celle de FloatInfo<DataType>::nearlyEpsilon():
\[A=0 \Leftrightarrow |A.x|<\epsilon,|A.y|<\epsilon,|A.z|<\epsilon \]
Définition à la ligne 43 du fichier MathNumeric.h.
|
inlineconstexpr |
Indique si l'instance est proche de l'instance zéro.
| true | si math::isNearlyZero() est vrai pour chaque composante. |
| faux | sinon. |
Définition à la ligne 31 du fichier MathReal2.h.
Références Arcane::Real2POD::x, et Arcane::Real2POD::y.
|
constexpr |
Compare la matrice avec la matrice nulle.
La matrice est nulle si et seulement si chacun de ses composants est inférieur à un epsilon donné. La valeur epsilon utilisée est celle de float_info<value_type>::nearlyEpsilon():
\[A=0 \Leftrightarrow |A.x|<\epsilon,|A.y|<\epsilon\]
| true | si la matrice est égale à la matrice nulle, |
| false | sinon. |
Définition à la ligne 36 du fichier MathReal2x2.h.
Références Arcane::Real2x2::x, et Arcane::Real2x2::y.
|
inlineconstexpr |
Indique si l'instance est proche de l'instance nulle.
| true | si math::isNearlyZero() est vrai pour chaque composante. |
| false | sinon. |
Définition à la ligne 43 du fichier MathReal3.h.
Références Arcane::Real3POD::x, Arcane::Real3POD::y, et Arcane::Real3POD::z.
|
inlineconstexpr |
Compare la matrice avec la matrice nulle.
La matrice est nulle si et seulement si chacun de ses composants est inférieur à un epsilon donné. La valeur epsilon utilisée est celle de float_info<value_type>::nearlyEpsilon():
\[A=0 \Leftrightarrow |A.x|<\epsilon,|A.y|<\epsilon,|A.z|<\epsilon \]
| true | si la matrice est égale à la matrice nulle, |
| false | sinon. |
Définition à la ligne 36 du fichier MathReal3x3.h.
Références Arcane::Real3x3::x, Arcane::Real3x3::y, et Arcane::Real3x3::z.
|
inlineconstexpr |
Teste si une valeur est approximativement égale à zéro en utilisant l'epsilon standard.
L'epsilon standard est celui retourné par FloatInfo<Type>::nearlyEpsilon().
Définition à la ligne 305 du fichier TypeEqual.h.
Références Arcane::TypeEqualT< T >::isNearlyZero().
|
inlineconstexpr |
Teste si une valeur est approximativement égale à zéro dans un epsilon.
Pour les types entiers, cette fonction est équivalente à IsZero(). Dans le cas des types réels, la valeur est considérée comme égale à zéro si et seulement si sa valeur absolue est inférieure à un epsilon donné par la fonction float_info<Type>::nearlyEpsilon().
| true | si les deux valeurs sont égales, |
| false | sinon. |
Définition à la ligne 292 du fichier TypeEqual.h.
|
inline |
Teste si une valeur est exactement égale à zéro.
| true | si vaut zéro, |
| false | sinon. |
Définition à la ligne 164 du fichier BuiltInProxy.h.
Références isZero(), et Arcane::TypeEqualT< T >::isZero().
Référencé par Arcane::CaseTable::_findValue(), Arcane::OutputChecker::check(), isZero(), Arcane::VariableRefScalarT< Byte >::isZero(), mutableNormalize(), mutableNormalize(), Arcane::Real2Proxy::normalize(), Arcane::Real3Proxy::normalize(), normalizeL2(), normalizeL2(), relativeError(), relativeError1(), et relativeError2().
|
inlineconstexpr |
Teste si une valeur est exactement égale à zéro.
| true | si est zéro, |
| false | sinon. |
Définition à la ligne 316 du fichier TypeEqual.h.
Références Arcane::TypeEqualT< T >::isZero().
|
inline |
Logarithme népérien de v.
Définition à la ligne 30 du fichier MathApfloat.h.
Références Arcane::arcaneMathError(), et Arcane::Convert::toDouble().
|
inline |
Logarithme naturel de v.
Définition à la ligne 42 du fichier MathBase.h.
Références Arcane::arcaneMathError().
|
inline |
Logarithme naturel de v.
Définition à la ligne 55 du fichier MathBase.h.
Références Arcane::arcaneMathError().
|
inline |
Logarithme décimal de v.
Définition à la ligne 71 du fichier MathBase.h.
Références Arcane::arcaneMathError().
|
inline |
Définition à la ligne 127 du fichier SimdOperation.h.
|
inline |
Logarithme décimal de v.
Définition à la ligne 84 du fichier MathBase.h.
Références Arcane::arcaneMathError().
Déterminant de la matrice u,v,w.
Définition à la ligne 173 du fichier MathUtils.h.
Références Arcane::Real3POD::x, Arcane::Real3POD::y, et Arcane::Real3POD::z.
|
inline |
Matrice identite.
Définition à la ligne 695 du fichier MathUtils.h.
Multiplication de 2 matrices 3x3.
Définition à la ligne 826 du fichier MathUtils.h.
Références Arcane::Real3x3::fromColumns(), Arcane::Real3POD::x, Arcane::Real3x3::x, Arcane::Real3POD::y, Arcane::Real3x3::y, Arcane::Real3POD::z, et Arcane::Real3x3::z.
Calcul du déterminant d'une matrice 3x3.
Définition à la ligne 669 du fichier MathUtils.h.
Références Arcane::Real3x3::determinant().
|
inline |
Définition à la ligne 87 du fichier SimdOperation.h.
|
inline |
Définition à la ligne 92 du fichier SimdOperation.h.
|
inline |
Définition à la ligne 97 du fichier SimdOperation.h.
retourne le max de quatre Real
Définition à la ligne 477 du fichier MathUtils.h.
Références max().
Référencé par max8Real(), et minMod().
retourne le max de huit Real
Définition à la ligne 500 du fichier MathUtils.h.
Références max(), et max4Real().
|
inline |
Définition à la ligne 70 du fichier SimdOperation.h.
|
inline |
Définition à la ligne 75 du fichier SimdOperation.h.
|
inline |
Définition à la ligne 80 du fichier SimdOperation.h.
retourne le min de quatre Real
Définition à la ligne 465 du fichier MathUtils.h.
Références min().
Référencé par min8Real(), et minMod().
retourne le min de huit Real
Définition à la ligne 489 du fichier MathUtils.h.
Références min(), et min4Real().
|
inline |
Produit mixte de u, v et w.
Définition à la ligne 112 du fichier SimdMathUtils.h.
|
inline |
Multiplie terme à terme les éléments de l'instance par les éléments du tableau copy_array.
Comme aucune allocation mémoire n'est effectuée, le nombre d'éléments de copy_array doit être inférieur ou égal au nombre d'éléments courant. S'il est inférieur, les éléments du tableau courant situés à la fin du tableau sont inchangés
Définition à la ligne 1025 du fichier MathUtils.h.
Références Arcane::ArrayView< T >::constView(), et mult().
|
inline |
Multiplie terme à terme les éléments de l'instance par les éléments du tableau copy_array.
Comme aucune allocation mémoire n'est effectuée, le nombre d'éléments de copy_array doit être inférieur ou égal au nombre d'éléments courant. S'il est inférieur, les éléments du tableau courant situés à la fin du tableau sont inchangés
Définition à la ligne 1004 du fichier MathUtils.h.
Références Arcane::ArrayView< T >::data(), Arcane::ConstArrayView< T >::data(), Arcane::ArrayView< T >::size(), et Arcane::ConstArrayView< T >::size().
Référencé par mult().
|
inline |
Multiplie tous les éléments du tableau par le réel o.
Définition à la ligne 1034 du fichier MathUtils.h.
Références Arcane::ArrayView< T >::data(), et Arcane::ArrayView< T >::size().
Produit matrice 3x3 . vecteur.
Définition à la ligne 847 du fichier MathUtils.h.
Références Arcane::Real3POD::x, Arcane::Real3x3::x, Arcane::Real3POD::y, Arcane::Real3x3::y, Arcane::Real3POD::z, et Arcane::Real3x3::z.
Normalise le couple.
Si le couple n'est pas nul, divise chaque composante par la norme du couple (abs()), de sorte qu'après avoir appelé cette méthode, abs() soit égal à 1. Si le couple est nul, ne fait rien.
Définition à la ligne 55 du fichier MathReal2.h.
Références Arcane::Real2::divSame(), et isZero().
Référencé par Arcane::Real2::normalize().
Normalise le triplet v.
Si le triplet n'est pas nul, divise chaque composante par la norme du triplet (abs()), de sorte qu'après avoir appelé cette méthode, math::normL2() soit égal à 1. Si le triplet est nul, ne fait rien.
Définition à la ligne 61 du fichier MathReal3.h.
Références Arcane::Real3::divSame(), et isZero().
Retourne le couple v normalisé par la norme L2.
Si math::normL2(v) n'est pas nul, retourne le couple v divisé par math::normL2(v). Sinon, retourne v.
Définition à la ligne 69 du fichier MathReal2.h.
Références isZero().
Retourne le triplet v normalisé avec la norme L2.
Si `math::normL2(v)` n'est pas nul, retourne le triplet v divisé par `math::normL2(v)`. Sinon, retourne v.
Définition à la ligne 75 du fichier MathReal3.h.
Références isZero().
Norme d'un vecteur.
Définition à la ligne 683 du fichier MathUtils.h.
Références sqrt(), Arcane::Real3POD::x, Arcane::Real3POD::y, et Arcane::Real3POD::z.
| __host__ __device__ Real Arcane::math::normL2 | ( | const NumVector< DataType, Size > & | v | ) |
Retourne la norme L2 du vecteur.
Définition à la ligne 91 du fichier MathNumeric.h.
Références sqrt(), et squareNormL2().
Retourne la norme du couple $ \(\sqrt{x^2+y^2+z^2}$\).
Définition à la ligne 43 du fichier MathReal2.h.
Références sqrt(), et squareNormL2().
Retourne la norme L2 du triplet $ \(\sqrt{v.x^2+v.y^2+v.z^2}\).
Définition à la ligne 49 du fichier MathReal3.h.
Références sqrt(), et squareNormL2().
Définition à la ligne 98 du fichier SimdMathUtils.h.
Définition à la ligne 87 du fichier SimdMathUtils.h.
|
inline |
Fonction puissance.
Calcul x à la puissance y.
Définition à la ligne 84 du fichier MathApfloat.h.
Références Arcane::arcaneMathError(), floor(), et Arcane::Convert::toDouble().
Référencé par power().
|
inline |
Fonction de puissance.
Calcule x à la puissance y.
Définition à la ligne 175 du fichier MathBase.h.
Références Arcane::arcaneMathError(), et floor().
|
inline |
Fonction de puissance.
Calcule x à la puissance y.
Définition à la ligne 213 du fichier MathBase.h.
Références Arcane::arcaneMathError().
|
inline |
Fonction de puissance.
Calcule x à la puissance y.
Définition à la ligne 231 du fichier MathBase.h.
Références Arcane::arcaneMathError(), et floor().
|
inline |
Fonction de puissance.
Calcule x à la puissance y.
Définition à la ligne 195 du fichier MathBase.h.
Références Arcane::arcaneMathError().
|
inline |
Met à la puissance o tous les éléments du tableau.
Définition à la ligne 1045 du fichier MathUtils.h.
Références Arcane::ArrayView< T >::data(), pow(), et Arcane::ArrayView< T >::size().
|
inline |
Définition à la ligne 121 du fichier SimdMathUtils.h.
Définition à la ligne 216 du fichier MathUtils.h.
Retourne l'erreur relative entre deux tenseurs T1 et T2.
L'erreur relative est calculée comme le max des erreurs relatives sur chacune des composantes des tenseurs.
Définition à la ligne 574 du fichier MathUtils.h.
Références max(), relativeError(), Arcane::Real3POD::x, Arcane::Real3x3::x, Arcane::Real3POD::y, Arcane::Real3x3::y, Arcane::Real3POD::z, et Arcane::Real3x3::z.
Retourne l'erreur relative entre deux scalaires a et b.
L'erreur relative est calculée par :
\(\frac{a-b}{|a|+|b|}\)
Définition à la ligne 557 du fichier MathUtils.h.
Références isZero().
Référencé par relativeError().
Retourne l'erreur relative entre deux scalaires a et b relativement à a.
L'erreur relative est calculée par :
\(\frac{a-b}{(|b|)}\)
Définition à la ligne 618 du fichier MathUtils.h.
Références isZero().
Retourne l'erreur relative entre deux scalaires a et b relativement à b.
L'erreur relative est calculée par :
\(\frac{a-b}{(|b|)}\)
Définition à la ligne 601 du fichier MathUtils.h.
Références isZero().
|
inline |
Recherche les valeurs extrèmes d'un tableau de couple (x,y).
Définition à la ligne 631 du fichier MathUtils.h.
Références Arcane::ConstArrayView< T >::size().
|
inline |
Racine carrée de v.
Définition à la ligne 65 du fichier MathApfloat.h.
Références Arcane::arcaneMathError(), et Arcane::Convert::toDouble().
Référencé par normalizeReal3(), normeR3(), normL2(), normL2(), et normL2().
|
inline |
Racine carrée de v.
Définition à la ligne 142 du fichier MathBase.h.
Références Arcane::arcaneMathError().
|
inline |
Définition à la ligne 109 du fichier SimdOperation.h.
|
inline |
Racine carrée de v.
Définition à la ligne 155 du fichier MathBase.h.
Références Arcane::arcaneMathError().
|
constexpr |
Retourne le carré de la norme L2 du vecteur.
Définition à la ligne 78 du fichier MathNumeric.h.
Retourne la norme au carré du couple $ \(x^2+y^2+z^2$\).
Définition à la ligne 37 du fichier MathReal2.h.
Références Arcane::Real2POD::x, et Arcane::Real2POD::y.
Retourne le carré de la norme L2 du triplet $ \(x^2+y^2+z^2\).
Définition à la ligne 32 du fichier MathReal3.h.
Références Arcane::Real3POD::x, Arcane::Real3POD::y, et Arcane::Real3POD::z.
|
inline |
Soustrait le tableau copy_array de l'instance.
Comme aucune allocation mémoire n'est effectuée, le nombre d'éléments de copy_array doit être inférieur ou égal au nombre d'éléments courant. S'il est inférieur, les éléments du tableau courant situés à la fin du tableau sont inchangés
Définition à la ligne 983 du fichier MathUtils.h.
Références Arcane::ArrayView< T >::data(), et Arcane::ArrayView< T >::size().
|
inline |
Soustrait le tableau copy_array de l'instance.
Comme aucune allocation mémoire n'est effectuée, le nombre d'éléments de copy_array doit être inférieur ou égal au nombre d'éléments courant. S'il est inférieur, les éléments du tableau courant situés à la fin du tableau sont inchangés
Définition à la ligne 964 du fichier MathUtils.h.
Références Arcane::ArrayView< T >::data(), Arcane::ConstArrayView< T >::data(), Arcane::ArrayView< T >::size(), et Arcane::ConstArrayView< T >::size().
Transpose la matrice.
Définition à la ligne 265 du fichier MathUtils.h.
Références Arcane::Real3POD::x, Arcane::Real3x3::x, Arcane::Real3POD::y, Arcane::Real3x3::y, Arcane::Real3POD::z, et Arcane::Real3x3::z.
Tronque la précision du tableau de réels values à nb_digit chiffres significatifs.
En sortie, chaque élément de values est modifié comme après appel à truncateDouble(double v,Integer nb_digit).
Définition à la ligne 86 du fichier Math.cc.
Références Arcane::ArrayView< T >::size().
|
extern |
Tronque la précision du réel v à nb_digit chiffres significatifs.
Pour un réel double précision en IEEE 754, le nombre de bits significatif est de 15 ou 16 suivant la valeur. Il est à noter qu'il n'est possible de manière simple et rapide de tronquer la précision à une valeur donnée. C'est pourquoi nb_digit représente un nombre de chiffre approximatif. Notamment, il n'est pas possible de descendre en dessous de 8 chiffres significatifs.
Si nb_digit est inférieur ou égal à zéro ou supérieur à 15, c'est la valeur v qui est retourné.