Arcane  v3.14.10.0
Documentation utilisateur
Chargement...
Recherche...
Aucune correspondance
Référence de l'espace de nommage Arcane::math

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 >
min (const T &a, const T &b, const T &c)
 Retourne le minimum de trois éléments.
 
template<class 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.
 
__host__ __device__ double log (double v)
 Logarithme népérien de v.
 
__host__ __device__ long double log (long double v)
 Logarithme népérien 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)
 Arondir v à l'entier immédiatement inférieur.
 
__host__ __device__ long double floor (long double v)
 Arondir 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 puissance.
 
__host__ __device__ long double pow (long double x, long double y)
 Fonction puissance.
 
__host__ __device__ long double pow (double x, long double y)
 Fonction puissance.
 
__host__ __device__ long double pow (long double x, double y)
 Fonction 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 réels.
 
__host__ __device__ long double min (double a, long double b)
 Retourne le minimum de deux réels.
 
__host__ __device__ long double min (long double a, double b)
 Retourne le minimum de deux réels.
 
__host__ __device__ double min (double a, double b)
 Retourne le minimum de deux réels.
 
__host__ __device__ float min (float a, float b)
 Retourne le minimum de deux 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 réels.
 
__host__ __device__ long double max (double a, long double b)
 Retourne le maximum de deux réels.
 
__host__ __device__ long double max (long double a, double b)
 Retourne le maximum de deux 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 réels.
 
__host__ __device__ float max (float a, float b)
 Retourne le maximum de deux 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 réel.
 
__host__ __device__ double abs (double a)
 Retourne la valeur absolue d'un réel.
 
__host__ __device__ float abs (float a)
 Retourne la valeur absolue d'un 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'.
 
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.
 
template<class _Type >
constexpr __host__ __device__ bool isNearlyEqual (const _Type &a, const _Type &b)
 Teste si deux valeurs sont à un peu près égales. Pour les types entiers, cette fonction est équivalente à IsEqual(). Dans le cas de 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)
 Surcharge pour les reels.
 
template<class _Type >
constexpr __host__ __device__ bool isNearlyEqualWithEpsilon (const _Type &a, const _Type &b, const _Type &epsilon)
 Teste si deux valeurs sont à un peu près égales. Pour les types entiers, cette fonction est équivalente à IsEqual(). Dans le cas de 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)
 Surcharge pour les reels.
 
template<class _Type >
constexpr __host__ __device__ bool isEqual (const _Type &a, const _Type &b)
 Teste l'égalité bit à bit entre deux valeurs.
 
__host__ __device__ constexpr bool isEqual (Real a, Real b)
 Surcharge pour les reels.
 
template<class _Type >
constexpr __host__ __device__ bool isNearlyZeroWithEpsilon (const _Type &a, const _Type &epsilon)
 Teste si une valeur est à peu près égale à zéro à un epsilon près.
 
template<class _Type >
constexpr __host__ __device__ bool isNearlyZero (const _Type &a)
 Teste si une valeur est à peu près égale à zéro à l'epsilon standard près.
 
template<class _Type >
constexpr __host__ __device__ bool isZero (const _Type &a)
 Teste si une valeur est exactement égale à zéro.
 

Description détaillée

Espace de nom pour les fonctions mathématiques.

Cet espace de nom contient toutes les fonctions mathématiques utilisées par le code.

Documentation des fonctions

◆ abs() [1/2]

SimdReal Arcane::math::abs ( const SimdReal2 sr)
inline

Définition à la ligne 76 du fichier SimdMathUtils.h.

◆ abs() [2/2]

SimdReal Arcane::math::abs ( const SimdReal3 sr)
inline

Définition à la ligne 64 du fichier SimdMathUtils.h.

◆ add() [1/2]

template<typename T >
void Arcane::math::add ( ArrayView< T >  lhs,
ArrayView< T >  copy_array 
)
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 904 du fichier MathUtils.h.

Références Arccore::ArrayView< T >::data(), et Arccore::ArrayView< T >::size().

◆ add() [2/2]

template<typename T >
void Arcane::math::add ( ArrayView< T >  lhs,
ConstArrayView< T >  copy_array 
)
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 885 du fichier MathUtils.h.

Références Arccore::ArrayView< T >::data(), Arccore::ConstArrayView< T >::data(), Arccore::ArrayView< T >::size(), et Arccore::ConstArrayView< T >::size().

◆ cross()

SimdReal3 Arcane::math::cross ( const SimdReal3 u,
const SimdReal3 v 
)
inline

Produit vectoriel de u par v dans \(R^3\).

Définition à la ligne 32 du fichier SimdMathUtils.h.

◆ cross2D()

SimdReal Arcane::math::cross2D ( const SimdReal3 u,
const SimdReal3 v 
)
inline

Produit vectoriel de u par v dans \(R^2\).

Définition à la ligne 45 du fichier SimdMathUtils.h.

◆ crossProduct3()

Real3 Arcane::math::crossProduct3 ( Real3  v1,
Real3  v2 
)
inline

Produit vectoriel de deux vecteurs à 3 composantes.

Obsolète:
Utiliser cross() à la place.

Définition à la ligne 706 du fichier MathUtils.h.

Références Arcane::Real3POD::x, Arcane::Real3POD::y, et Arcane::Real3POD::z.

◆ dot() [1/2]

SimdReal Arcane::math::dot ( const SimdReal2 u,
const SimdReal2 v 
)
inline

Définition à la ligne 57 du fichier SimdMathUtils.h.

◆ dot() [2/2]

SimdReal Arcane::math::dot ( const SimdReal3 u,
const SimdReal3 v 
)
inline

Définition à la ligne 51 du fichier SimdMathUtils.h.

◆ doubleContraction() [1/2]

__host__ __device__ Real Arcane::math::doubleContraction ( const Real2x2 u,
const Real2x2 v 
)
inline

} U_{i,j}V_{i,j}

Définition à la ligne 314 du fichier MathUtils.h.

Références Arcane::Real2POD::x, Arcane::Real2x2::x, Arcane::Real2POD::y, et Arcane::Real2x2::y.

◆ doubleContraction() [2/2]

__host__ __device__ Real Arcane::math::doubleContraction ( const Real3x3 u,
const Real3x3 v 
)
inline

} U_{i,j}V_{i,j}

Définition à la ligne 288 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.

◆ exp() [1/3]

apfloat Arcane::math::exp ( apfloat  v)
inline

Exponentielle de v.

Définition à la ligne 54 du fichier MathApfloat.h.

◆ exp() [2/3]

__host__ __device__ double Arcane::math::exp ( double  v)
inline

Exponentielle de v.

Définition à la ligne 116 du fichier Math.h.

◆ exp() [3/3]

__host__ __device__ long double Arcane::math::exp ( long double  v)
inline

Exponentielle de v.

Définition à la ligne 124 du fichier Math.h.

◆ floor() [1/3]

apfloat Arcane::math::floor ( apfloat  v)
inline

Arondir v à l'entier immédiatement inférieur.

Définition à la ligne 43 du fichier MathApfloat.h.

◆ floor() [2/3]

__host__ __device__ double Arcane::math::floor ( double  v)
inline

Arondir v à l'entier immédiatement inférieur.

Définition à la ligne 96 du fichier Math.h.

Référencé par pow(), pow(), et pow().

◆ floor() [3/3]

__host__ __device__ long double Arcane::math::floor ( long double  v)
inline

Arondir v à l'entier immédiatement inférieur.

Définition à la ligne 105 du fichier Math.h.

◆ inverseMatrix() [1/2]

__host__ __device__ Real3x3 Arcane::math::inverseMatrix ( const Real3x3 m)
inline

Calcul de l'inverse d'une matrice m.

Définition à la ligne 692 du fichier MathUtils.h.

Références Arcane::Real3x3::determinant(), et inverseMatrix().

◆ inverseMatrix() [2/2]

__host__ __device__ Real3x3 Arcane::math::inverseMatrix ( const Real3x3 m,
Real  d 
)
inline

Calcul de l'inverse d'une matrice m en supposant connu son déterminant d.

Définition à la ligne 677 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().

◆ isEqual() [1/2]

template<class _Type >
constexpr __host__ __device__ bool Arcane::math::isEqual ( const _Type &  a,
const _Type &  b 
)
inlineconstexpr

Teste l'égalité bit à bit entre deux valeurs.

Valeurs retournées
truesi les deux valeurs sont égales,
falsesinon.

Définition à la ligne 253 du fichier Numeric.h.

Références Arcane::TypeEqualT< T >::isEqual().

Référencé par Arcane::CaseTable::_findValue(), et Arcane::VariableRefScalarT< DataType >::isEqual().

◆ isEqual() [2/2]

__host__ __device__ constexpr bool Arcane::math::isEqual ( Real  a,
Real  b 
)
inlineconstexpr

Surcharge pour les reels.

Définition à la ligne 260 du fichier Numeric.h.

Références Arcane::TypeEqualT< T >::isEqual().

◆ isNearlyEqual() [1/2]

template<class _Type >
constexpr __host__ __device__ bool Arcane::math::isNearlyEqual ( const _Type &  a,
const _Type &  b 
)
inlineconstexpr

Teste si deux valeurs sont à un peu près égales. Pour les types entiers, cette fonction est équivalente à IsEqual(). Dans le cas de 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().

Valeurs retournées
truesi les deux valeurs sont égales,
falsesinon.

Définition à la ligne 212 du fichier Numeric.h.

Références Arcane::TypeEqualT< T >::isNearlyEqual().

Référencé par Arcane::VariableRefScalarT< DataType >::isNearlyEqual().

◆ isNearlyEqual() [2/2]

constexpr __host__ __device__ bool Arcane::math::isNearlyEqual ( Real  a,
Real  b 
)
inlineconstexpr

Surcharge pour les reels.

Définition à la ligne 219 du fichier Numeric.h.

Références Arcane::TypeEqualT< T >::isNearlyEqual().

◆ isNearlyEqualWithEpsilon() [1/2]

template<class _Type >
constexpr __host__ __device__ bool Arcane::math::isNearlyEqualWithEpsilon ( const _Type &  a,
const _Type &  b,
const _Type &  epsilon 
)
inlineconstexpr

Teste si deux valeurs sont à un peu près égales. Pour les types entiers, cette fonction est équivalente à IsEqual(). Dans le cas de 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.

Valeurs retournées
truesi les deux valeurs sont égales,
falsesinon.

Définition à la ligne 235 du fichier Numeric.h.

Références Arcane::TypeEqualT< T >::isNearlyEqualWithEpsilon().

◆ isNearlyEqualWithEpsilon() [2/2]

__host__ __device__ constexpr bool Arcane::math::isNearlyEqualWithEpsilon ( Real  a,
Real  b,
Real  epsilon 
)
inlineconstexpr

Surcharge pour les reels.

Définition à la ligne 242 du fichier Numeric.h.

Références Arcane::TypeEqualT< T >::isNearlyEqualWithEpsilon().

◆ isNearlyId()

bool Arcane::math::isNearlyId ( Real3x3  m,
Real  epsilon = 1.e-10 
)
inline

Vérifie qu'une matrice vaut bien la matrice identité.

Définition à la ligne 822 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.

◆ isNearlyZero()

template<class _Type >
constexpr __host__ __device__ bool Arcane::math::isNearlyZero ( const _Type &  a)
inlineconstexpr

Teste si une valeur est à peu près égale à zéro à l'epsilon standard près.

L'epsilon standard est celui retourné par FloatInfo<_Type>::nearlyEpsilon().

Voir également
isNearlyZero(const _Type& a,const _Type& epsilon).

Définition à la ligne 289 du fichier Numeric.h.

Références Arcane::TypeEqualT< T >::isNearlyZero().

◆ isNearlyZeroWithEpsilon()

template<class _Type >
constexpr __host__ __device__ bool Arcane::math::isNearlyZeroWithEpsilon ( const _Type &  a,
const _Type &  epsilon 
)
inlineconstexpr

Teste si une valeur est à peu près égale à zéro à un epsilon près.

Pour les types entiers, cette fonction est équivalente à IsZero(). Dans le cas de 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().

Valeurs retournées
truesi les deux valeurs sont égales,
falsesinon.

Définition à la ligne 276 du fichier Numeric.h.

◆ isZero()

template<class _Type >
constexpr __host__ __device__ bool Arcane::math::isZero ( const _Type &  a)
inlineconstexpr

Teste si une valeur est exactement égale à zéro.

Valeurs retournées
truesi vaut zéro,
falsesinon.

Définition à la ligne 300 du fichier Numeric.h.

Références Arcane::TypeEqualT< T >::isZero().

◆ log() [1/3]

apfloat Arcane::math::log ( apfloat  v)
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().

◆ log() [2/3]

__host__ __device__ double Arcane::math::log ( double  v)
inline

Logarithme népérien de v.

Définition à la ligne 40 du fichier Math.h.

Références Arcane::arcaneMathError().

◆ log() [3/3]

__host__ __device__ long double Arcane::math::log ( long double  v)
inline

Logarithme népérien de v.

Définition à la ligne 53 du fichier Math.h.

Références Arcane::arcaneMathError().

◆ log10() [1/2]

__host__ __device__ double Arcane::math::log10 ( double  v)
inline

Logarithme décimal de v.

Définition à la ligne 68 du fichier Math.h.

Références Arcane::arcaneMathError().

◆ log10() [2/2]

__host__ __device__ long double Arcane::math::log10 ( long double  v)
inline

Logarithme décimal de v.

Définition à la ligne 81 du fichier Math.h.

Références Arcane::arcaneMathError().

◆ matDet()

__host__ __device__ Real Arcane::math::matDet ( Real3  u,
Real3  v,
Real3  w 
)
inline

Déterminant de la matrice u,v,w.

Définition à la ligne 170 du fichier MathUtils.h.

Références Arcane::Real3POD::x, Arcane::Real3POD::y, et Arcane::Real3POD::z.

◆ matrix3x3Id()

__host__ __device__ Real3x3 Arcane::math::matrix3x3Id ( )
inline

Matrice identite.

Définition à la ligne 664 du fichier MathUtils.h.

◆ matrix3x3Prod()

Real3x3 Arcane::math::matrix3x3Prod ( Real3x3  m1,
Real3x3  m2 
)
inline

Multiplication de 2 matrices 3x3.

Avertissement
Cette méthode n'utilise pas la convention habituelle des Real3x3. Elle suppose qu'ils sont rangés en colonne. En général, il faut utiliser matrixProduct() à la place.

Définition à la ligne 788 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.

◆ matrixDeterminant()

__host__ __device__ Real Arcane::math::matrixDeterminant ( Real3x3  m)
inline

Calcul du déterminant d'une matrice 3x3.

Définition à la ligne 640 du fichier MathUtils.h.

Références Arcane::Real3x3::determinant().

◆ max4Real()

__host__ __device__ Real Arcane::math::max4Real ( Real  a,
Real  b,
Real  c,
Real  d 
)
inline

retourne le max de quatre Real

Définition à la ligne 457 du fichier MathUtils.h.

Références max().

Référencé par max8Real(), et minMod().

◆ max8Real()

Real Arcane::math::max8Real ( const Real  a[8])
inline

retourne le max de huit Real

Définition à la ligne 478 du fichier MathUtils.h.

Références max(), et max4Real().

◆ min4Real()

__host__ __device__ Real Arcane::math::min4Real ( Real  a,
Real  b,
Real  c,
Real  d 
)
inline

retourne le min de quatre Real

Définition à la ligne 446 du fichier MathUtils.h.

Références min().

Référencé par min8Real(), et minMod().

◆ min8Real()

__host__ __device__ Real Arcane::math::min8Real ( const Real  a[8])
inline

retourne le min de huit Real

Définition à la ligne 468 du fichier MathUtils.h.

Références min(), et min4Real().

◆ mixteMul()

SimdReal Arcane::math::mixteMul ( const SimdReal3 u,
const SimdReal3 v,
const SimdReal3 w 
)
inline

Produit mixte de u, v et w.

Définition à la ligne 112 du fichier SimdMathUtils.h.

Références cross(), et dot().

◆ mult() [1/3]

template<typename T >
void Arcane::math::mult ( ArrayView< T >  lhs,
ArrayView< T >  copy_array 
)
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 984 du fichier MathUtils.h.

Références Arccore::ArrayView< T >::constView(), et mult().

◆ mult() [2/3]

template<typename T >
void Arcane::math::mult ( ArrayView< T >  lhs,
ConstArrayView< T >  copy_array 
)
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 963 du fichier MathUtils.h.

Références Arccore::ArrayView< T >::data(), Arccore::ConstArrayView< T >::data(), Arccore::ArrayView< T >::size(), et Arccore::ConstArrayView< T >::size().

Référencé par mult().

◆ mult() [3/3]

template<typename T >
void Arcane::math::mult ( ArrayView< T >  lhs,
o 
)
inline

Multiplie tous les éléments du tableau par le réel o.

Définition à la ligne 993 du fichier MathUtils.h.

Références Arccore::ArrayView< T >::data(), et Arccore::ArrayView< T >::size().

◆ multiply()

__host__ __device__ Real3 Arcane::math::multiply ( const Real3x3 m,
Real3  v 
)
inline

Produit matrice 3x3 . vecteur.

Définition à la ligne 809 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.

◆ normeR3()

Real Arcane::math::normeR3 ( Real3  v1)
inline

Norme d'un vecteur.

Obsolète:
Utiliser Real3.abs() à la place.

Définition à la ligne 653 du fichier MathUtils.h.

Références sqrt(), Arcane::Real3POD::x, Arcane::Real3POD::y, et Arcane::Real3POD::z.

◆ normL2() [1/2]

SimdReal Arcane::math::normL2 ( const SimdReal2 sr)
inline

Définition à la ligne 98 du fichier SimdMathUtils.h.

◆ normL2() [2/2]

SimdReal Arcane::math::normL2 ( const SimdReal3 sr)
inline

Définition à la ligne 87 du fichier SimdMathUtils.h.

◆ pow() [1/5]

apfloat Arcane::math::pow ( apfloat  x,
apfloat  y 
)
inline

Fonction puissance.

Calcul x à la puissance y.

Précondition
x>=0 ou y entier

Définition à la ligne 84 du fichier MathApfloat.h.

Références Arcane::arcaneMathError(), floor(), et Arcane::Convert::toDouble().

◆ pow() [2/5]

__host__ __device__ double Arcane::math::pow ( double  x,
double  y 
)
inline

Fonction puissance.

Calcul x à la puissance y.

Précondition
x>=0 ou y entier

Définition à la ligne 166 du fichier Math.h.

Références Arcane::arcaneMathError(), et floor().

Référencé par power().

◆ pow() [3/5]

__host__ __device__ long double Arcane::math::pow ( double  x,
long double  y 
)
inline

Fonction puissance.

Calcul x à la puissance y.

Précondition
x>=0 ou y entier

Définition à la ligne 202 du fichier Math.h.

Références Arcane::arcaneMathError().

◆ pow() [4/5]

__host__ __device__ long double Arcane::math::pow ( long double  x,
double  y 
)
inline

Fonction puissance.

Calcul x à la puissance y.

Précondition
x>=0 ou y entier

Définition à la ligne 219 du fichier Math.h.

Références Arcane::arcaneMathError(), et floor().

◆ pow() [5/5]

__host__ __device__ long double Arcane::math::pow ( long double  x,
long double  y 
)
inline

Fonction puissance.

Calcul x à la puissance y.

Précondition
x>=0 ou y entier

Définition à la ligne 185 du fichier Math.h.

Références Arcane::arcaneMathError().

◆ power()

template<typename T >
void Arcane::math::power ( ArrayView< T >  lhs,
o 
)
inline

Met à la puissance o tous les éléments du tableau.

Définition à la ligne 1004 du fichier MathUtils.h.

Références Arccore::ArrayView< T >::data(), pow(), et Arccore::ArrayView< T >::size().

◆ prodTens()

SimdReal3x3 Arcane::math::prodTens ( const SimdReal3 u,
const SimdReal3 v 
)
inline

Définition à la ligne 121 du fichier SimdMathUtils.h.

◆ prodTensVec()

__host__ __device__ Real2 Arcane::math::prodTensVec ( Real2x2  t,
Real2  v 
)
inline

Définition à la ligne 212 du fichier MathUtils.h.

◆ relativeError() [1/2]

Real Arcane::math::relativeError ( const Real3x3 T1,
const Real3x3 T2 
)
inline

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 549 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.

◆ relativeError() [2/2]

Real Arcane::math::relativeError ( Real  a,
Real  b 
)
inline

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 533 du fichier MathUtils.h.

Référencé par relativeError().

◆ relativeError1()

Real Arcane::math::relativeError1 ( Real  a,
Real  b 
)
inline

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 591 du fichier MathUtils.h.

◆ relativeError2()

Real Arcane::math::relativeError2 ( Real  a,
Real  b 
)
inline

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 575 du fichier MathUtils.h.

◆ searchExtrema()

bool Arcane::math::searchExtrema ( ConstArrayView< Real2 array,
Real &  xmin,
Real &  xmax,
Real &  ymin,
Real &  ymax,
bool  need_init 
)
inline

Recherche les valeurs extrèmes d'un tableau de couple (x,y).

Définition à la ligne 603 du fichier MathUtils.h.

Références Arccore::ConstArrayView< T >::size().

◆ sqrt() [1/3]

apfloat Arcane::math::sqrt ( apfloat  v)
inline

Racine carrée de v.

Définition à la ligne 65 du fichier MathApfloat.h.

Références Arcane::arcaneMathError(), et Arcane::Convert::toDouble().

◆ sqrt() [2/3]

__host__ __device__ double Arcane::math::sqrt ( double  v)
inline

Racine carrée de v.

Définition à la ligne 135 du fichier Math.h.

Références Arcane::arcaneMathError().

Référencé par normalizeReal3(), et normeR3().

◆ sqrt() [3/3]

__host__ __device__ long double Arcane::math::sqrt ( long double  v)
inline

Racine carrée de v.

Définition à la ligne 147 du fichier Math.h.

Références Arcane::arcaneMathError().

◆ sub() [1/2]

template<typename T >
void Arcane::math::sub ( ArrayView< T >  lhs,
ArrayView< T >  copy_array 
)
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 942 du fichier MathUtils.h.

Références Arccore::ArrayView< T >::data(), et Arccore::ArrayView< T >::size().

◆ sub() [2/2]

template<typename T >
void Arcane::math::sub ( ArrayView< T >  lhs,
ConstArrayView< T >  copy_array 
)
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 923 du fichier MathUtils.h.

Références Arccore::ArrayView< T >::data(), Arccore::ConstArrayView< T >::data(), Arccore::ArrayView< T >::size(), et Arccore::ConstArrayView< T >::size().

◆ transpose()

__host__ __device__ Real3x3 Arcane::math::transpose ( const Real3x3 t)
inline

Transpose la matrice.

Obsolète:
Utiliser matrixTranspose() à la place.

Définition à la ligne 258 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.

◆ truncateDouble() [1/2]

void Arcane::math::truncateDouble ( ArrayView< double >  values,
Integer  nb_digit 
)
extern

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 Arccore::ArrayView< T >::size().

◆ truncateDouble() [2/2]

double Arcane::math::truncateDouble ( double  v,
Integer  nb_digit 
)
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é.

Définition à la ligne 77 du fichier Math.cc.