Classe gérant une matrice de réel de dimension 3x3. Plus de détails...
#include <arcane/utils/Real3x3.h>
Fonctions membres publiques | |
constexpr __host__ __device__ | Real3x3 () |
Construit la matrice avec tous les coefficiants nuls. | |
constexpr __host__ __device__ | Real3x3 (Real3 ax, Real3 ay, Real3 az) |
Construit la matrice avec les lignes (ax,ay,az) | |
ARCANE_DEPRECATED_116 | Real3x3 (Real ax, Real ay, Real az, Real bx, Real by, Real bz, Real cx, Real cy, Real cz) |
Construit le tenseur ((ax,bx,cx),(ay,by,cy),(az,bz,cz)). | |
Real3x3 (const Real3x3 &f)=default | |
Construit un triplet identique à f. | |
constexpr __host__ __device__ | Real3x3 (const Real3x3POD &f) |
Construit un triplet identique à f. | |
constexpr __host__ __device__ | Real3x3 (Real v) |
Construit l'instance avec le triplet (v,v,v). | |
Real3x3 & | operator= (const Real3x3 &f)=default |
Opérateur de recopie. | |
constexpr __host__ __device__ Real3x3 & | operator= (Real v) |
Affecte à l'instance le triplet (v,v,v). | |
constexpr __host__ __device__ Real3x3 | copy () const |
Retourne une copie de la matrice. | |
constexpr __host__ __device__ Real3x3 & | reset () |
Remet à zéro les coefficients de la matrice. | |
constexpr __host__ __device__ Real3x3 & | assign (Real3 ax, Real3 ay, Real3 az) |
Affecte à l'instance les lignes (ax,ay,az) | |
constexpr __host__ __device__ Real3x3 & | assign (Real3x3 f) |
Copie la matrice f. | |
constexpr __host__ __device__ bool | isNearlyZero () const |
Compare la matrice avec la matrice nulle. | |
std::istream & | assign (std::istream &i) |
Lit la matrice sur le flot i La matrice est lue sous la forme de trois Real3. | |
std::ostream & | print (std::ostream &o) const |
Ecrit le triplet sur le flot o lisible par un assign() | |
std::ostream & | printXyz (std::ostream &o) const |
Ecrit le triplet sur le flot o sous la forme (x,y,z) | |
constexpr __host__ __device__ Real3x3 & | add (Real3x3 b) |
Ajoute b au triplet. | |
constexpr __host__ __device__ Real3x3 & | sub (Real3x3 b) |
Soustrait b au triplet. | |
constexpr __host__ __device__ Real3x3 & | addSame (Real3 b) |
Ajoute b à chaque composante du triplet. | |
constexpr __host__ __device__ Real3x3 & | subSame (Real3 b) |
Soustrait b à chaque composante du triplet. | |
constexpr __host__ __device__ Real3x3 & | operator+= (Real3x3 b) |
Ajoute b au triplet. | |
constexpr __host__ __device__ Real3x3 & | operator-= (Real3x3 b) |
Soustrait b au triplet. | |
constexpr __host__ __device__ void | operator*= (Real b) |
Multiple chaque composante de la matrice par le réel b. | |
constexpr __host__ __device__ void | operator/= (Real b) |
Divise chaque composante de la matrice par le réel b. | |
constexpr __host__ __device__ Real3x3 | operator+ (Real3x3 b) const |
Créé un triplet qui vaut ce triplet ajouté à b. | |
constexpr __host__ __device__ Real3x3 | operator- (Real3x3 b) const |
Créé un triplet qui vaut b soustrait de ce triplet. | |
constexpr __host__ __device__ Real3x3 | operator- () const |
Créé un tenseur opposé au tenseur actuel. | |
constexpr __host__ __device__ bool | operator== (Real3x3 b) const |
Compare composant pas composante l'instance courante à b. | |
constexpr __host__ __device__ bool | operator!= (Real3x3 b) const |
Compare deux triplets. Pour la notion d'égalité, voir operator==() | |
__host__ __device__ Real3 | operator[] (Integer i) const |
Accès en lecture seule à la i-ème (entre 0 et 2 inclus) ligne de l'instance. | |
__host__ __device__ Real3 | operator() (Integer i) const |
Accès en lecture seule à la i-ème (entre 0 et 2 inclus) ligne de l'instance. | |
__host__ __device__ Real | operator() (Integer i, Integer j) const |
Accès en lecture seule à la i-ème ligne et j-ème colonne. | |
__host__ __device__ Real3 & | operator[] (Integer i) |
Accès à la i-ème ligne (entre 0 et 2 inclus) de l'instance. | |
__host__ __device__ Real3 & | operator() (Integer i) |
Accès à la i-ème ligne (entre 0 et 2 inclus) de l'instance. | |
__host__ __device__ Real & | operator() (Integer i, Integer j) |
Accès à la i-ème ligne et j-ème colonne. | |
constexpr __host__ __device__ Real | determinant () const |
Déterminant de la matrice. | |
Fonctions membres publiques statiques | |
constexpr __host__ static __device__ Real3x3 | null () |
Construit le tenseur nul. | |
constexpr __host__ static __device__ Real3x3 | zero () |
Construit la matrice nulle. | |
constexpr __host__ static __device__ Real3x3 | identity () |
Construit la matrice identité | |
constexpr __host__ static __device__ Real3x3 | fromColumns (Real ax, Real ay, Real az, Real bx, Real by, Real bz, Real cx, Real cy, Real cz) |
Construit la matrice ((ax,bx,cx),(ay,by,cy),(az,bz,cz)). | |
constexpr __host__ static __device__ Real3x3 | fromLines (Real ax, Real bx, Real cx, Real ay, Real by, Real cy, Real az, Real bz, Real cz) |
Construit la matrice ((ax,bx,cx),(ay,by,cy),(az,bz,cz)). | |
Attributs publics | |
Real3 | x |
premier élément du triplet | |
Real3 | y |
premier élément du triplet | |
Real3 | z |
premier élément du triplet | |
Amis | |
std::ostream & | operator<< (std::ostream &o, Real3x3 t) |
Ecrit le triplet t sur le flot o. | |
std::istream & | operator>> (std::istream &i, Real3x3 &t) |
Lit le triplet t à partir du flot o. | |
constexpr __host__ __device__ Real3x3 | operator* (Real sca, Real3x3 vec) |
Multiplication par un scalaire. | |
constexpr __host__ __device__ Real3x3 | operator* (Real3x3 vec, Real sca) |
Multiplication par un scalaire. | |
constexpr __host__ __device__ Real3x3 | operator/ (Real3x3 vec, Real sca) |
Division par un scalaire. | |
constexpr __host__ __device__ bool | operator< (Real3x3 v1, Real3x3 v2) |
Opérateur de comparaison. | |
Classe gérant une matrice de réel de dimension 3x3.
La matrice comprend trois composantes x, y et z qui sont du type Real3. Chaque composante représente une ligne de la matrice. Par conséquent, Pour une matrice m, m.y.z représente la 2ème ligne et la 3ème colonne de la matrice.
Il est aussi possible d'accéder aux éléments de la matrice à la manière d'un tableau. Par exemple m[1][2] représente la 2ème ligne et la 3ème colonne de la matrice.
Les matrices peuvent se construire par ligne en spécifiant les valeurs par ligne (fromLines()) ou en spécifiant par colonne (fromColumns()).
Par exemple:
|
inlineconstexpr |
|
inline |
Construit le tenseur ((ax,bx,cx),(ay,by,cy),(az,bz,cz)).
|
inlineexplicitconstexpr |
|
inlineexplicitconstexpr |
|
inlineconstexpr |
Affecte à l'instance les lignes (ax,ay,az)
Définition à la ligne 157 du fichier Real3x3.h.
Référencé par Arcane::Real3x3Proxy::assign().
std::istream & Arcane::Real3x3::assign | ( | std::istream & | i | ) |
|
inlineconstexpr |
|
inlineconstexpr |
Déterminant de la matrice.
Définition à la ligne 344 du fichier Real3x3.h.
Références Arcane::Real3POD::x, Arcane::Real3POD::y, et Arcane::Real3POD::z.
Référencé par Arcane::math::inverseMatrix(), et Arcane::math::matrixDeterminant().
|
inlinestaticconstexpr |
Construit la matrice ((ax,bx,cx),(ay,by,cy),(az,bz,cz)).
Définition à la ligne 133 du fichier Real3x3.h.
Référencé par Arcane::math::matrix3x3Prod(), et Arcane::math::matrix3x3Transp().
|
inlinestaticconstexpr |
Construit la matrice ((ax,bx,cx),(ay,by,cy),(az,bz,cz)).
Définition à la ligne 139 du fichier Real3x3.h.
Référencé par Arcane::math::matrixProduct().
|
inlinestaticconstexpr |
|
inlineconstexpr |
Compare la matrice avec la matrice nulle.
La matrice est nulle si et seulement si chacune de ses composantes est inférieure à un espilon donné. La valeur de l'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 185 du fichier Real3x3.h.
Références Arcane::Real3::isNearlyZero().
|
inlinestaticconstexpr |
|
inlineconstexpr |
Compare deux triplets. Pour la notion d'égalité, voir operator==()
true | si les deux triplets sont différents, |
false | sinon. |
|
inline |
|
inline |
|
inline |
|
inline |
|
inlineconstexpr |
|
inlineconstexpr |
|
inlineconstexpr |
|
inlineconstexpr |
|
inlineconstexpr |
|
inline |
|
inline |
std::ostream & Arcane::Real3x3::print | ( | std::ostream & | o | ) | const |
Ecrit le triplet sur le flot o lisible par un assign()
Définition à la ligne 38 du fichier Real3x3.cc.
Référencé par Arcane::Real3x3Proxy::print().
std::ostream & Arcane::Real3x3::printXyz | ( | std::ostream & | o | ) | const |
Ecrit le triplet sur le flot o sous la forme (x,y,z)
Définition à la ligne 48 du fichier Real3x3.cc.
Référencé par Arcane::Real3x3Proxy::printXyz().
|
inlineconstexpr |
|
inlinestaticconstexpr |
Construit la matrice nulle.
Définition à la ligne 127 du fichier Real3x3.h.
Référencé par Arcane::DataTypeTraitsT< Real3x3 >::defaultValue().
|
friend |
|
friend |
Real3 Arcane::Real3x3::x |
premier élément du triplet
Définition à la ligne 117 du fichier Real3x3.h.
Référencé par add(), Arcane::Real3x3Proxy::add(), assign(), Arcane::Real3x3Proxy::assign(), assign(), Arcane::GeometricUtilities::QuadMapping::cartesianToIso(), Arcane::math::doubleContraction(), Arcane::math::inverseMatrix(), Arcane::math::isNearlyId(), Arcane::math::matrix3x3Prod(), Arcane::math::matrix3x3Transp(), Arcane::math::matrixProduct(), Arcane::math::matrixTranspose(), Arcane::math::max(), Arcane::math::min(), Arcane::math::multiply(), operator+(), Arcane::Real3x3Proxy::operator+(), operator-(), Arcane::Real3x3Proxy::operator-(), operator==(), print(), printXyz(), Arcane::math::prodTensVec(), Arcane::math::prodVecTens(), Arcane::math::relativeError(), sub(), Arcane::Real3x3Proxy::sub(), et Arcane::math::transpose().
Real3 Arcane::Real3x3::y |
premier élément du triplet
Définition à la ligne 118 du fichier Real3x3.h.
Référencé par add(), Arcane::Real3x3Proxy::add(), assign(), Arcane::Real3x3Proxy::assign(), assign(), Arcane::GeometricUtilities::QuadMapping::cartesianToIso(), Arcane::math::doubleContraction(), Arcane::math::inverseMatrix(), Arcane::math::isNearlyId(), Arcane::math::matrix3x3Prod(), Arcane::math::matrix3x3Transp(), Arcane::math::matrixProduct(), Arcane::math::matrixTranspose(), Arcane::math::max(), Arcane::math::min(), Arcane::math::multiply(), operator+(), Arcane::Real3x3Proxy::operator+(), operator-(), Arcane::Real3x3Proxy::operator-(), operator==(), print(), printXyz(), Arcane::math::prodTensVec(), Arcane::math::prodVecTens(), Arcane::math::relativeError(), sub(), Arcane::Real3x3Proxy::sub(), et Arcane::math::transpose().
Real3 Arcane::Real3x3::z |
premier élément du triplet
Définition à la ligne 119 du fichier Real3x3.h.
Référencé par add(), Arcane::Real3x3Proxy::add(), assign(), Arcane::Real3x3Proxy::assign(), assign(), Arcane::GeometricUtilities::QuadMapping::cartesianToIso(), Arcane::math::doubleContraction(), Arcane::math::inverseMatrix(), Arcane::math::isNearlyId(), Arcane::math::matrix3x3Prod(), Arcane::math::matrix3x3Transp(), Arcane::math::matrixProduct(), Arcane::math::matrixTranspose(), Arcane::math::max(), Arcane::math::min(), Arcane::math::multiply(), operator+(), Arcane::Real3x3Proxy::operator+(), operator-(), Arcane::Real3x3Proxy::operator-(), operator==(), print(), printXyz(), Arcane::math::prodTensVec(), Arcane::math::prodVecTens(), Arcane::math::relativeError(), sub(), Arcane::Real3x3Proxy::sub(), et Arcane::math::transpose().