Arcane  v3.14.10.0
Documentation utilisateur
Chargement...
Recherche...
Aucune correspondance
Référence du modèle de la classe Arcane::NumMatrix< T, RowSize, ColumnSize >

Petite matrice de taille fixe contenant RowSize lignes et ColumnSize colonnes. Plus de détails...

#include <arcane/utils/NumMatrix.h>

+ Graphe de collaboration de Arcane::NumMatrix< T, RowSize, ColumnSize >:

Types publics

using VectorType = NumVector< T, ColumnSize >
 
using ThatClass = NumMatrix< T, RowSize, ColumnSize >
 
using DataType = T
 

Fonctions membres publiques

 NumMatrix ()=default
 Construit la matrice avec tous les coefficiants nuls.
 
template<int S = RowSize, typename = std::enable_if_t<S == 2, void>>
constexpr __host__ __device__ NumMatrix (const VectorType &ax, const VectorType &ay)
 Construit la matrice avec les lignes (ax,ay)
 
template<int S = RowSize, typename = std::enable_if_t<S == 3, void>>
constexpr __host__ __device__ NumMatrix (const VectorType &ax, const VectorType &ay, const VectorType &az)
 Construit la matrice avec les lignes (ax,ay,az)
 
template<int S = RowSize, typename = std::enable_if_t<S == 4, void>>
constexpr __host__ __device__ NumMatrix (const VectorType &a1, const VectorType &a2, const VectorType &a3, const VectorType &a4)
 Construit la matrice avec les lignes (a1,a2,a3,a4)
 
template<int S = RowSize, typename = std::enable_if_t<S == 4, void>>
constexpr __host__ __device__ NumMatrix (const VectorType &a1, const VectorType &a2, const VectorType &a3, const VectorType &a4, const VectorType &a5)
 Construit la matrice avec les lignes (a1,a2,a3,a4,a5)
 
constexpr __host__ __device__ NumMatrix (T v)
 Construit l'instance avec le triplet (v,v,v).
 
template<typename X = ThatClass, typename = std::enable_if_t<X::isSquare2(), void>>
constexpr __host__ __device__ NumMatrix (Real2x2 v)
 
template<typename X = ThatClass, typename = std::enable_if_t<X::isSquare3(), void>>
constexpr __host__ __device__ NumMatrix (Real3x3 v)
 
constexpr __host__ __device__ ThatClass & operator= (T v)
 Affecte à l'instance le triplet (v,v,v).
 
template<typename X = ThatClass, typename = std::enable_if_t<X::isSquare2(), void>>
constexpr __host__ __device__ ThatClass & operator= (const Real2x2 &v)
 
template<typename X = ThatClass, typename = std::enable_if_t<X::isSquare3(), void>>
constexpr __host__ __device__ ThatClass & operator= (const Real3x3 &v)
 
template<typename X = ThatClass, typename = std::enable_if_t<X::isSquare2(), void>>
 operator Real2x2 () const
 
template<typename X = ThatClass, typename = std::enable_if_t<X::isSquare3(), void>>
 operator Real3x3 () const
 
constexpr __host__ __device__ bool isNearlyZero () const
 Compare la matrice avec la matrice nulle.
 
constexpr __host__ __device__ ThatClass & operator+= (const ThatClass &b)
 Ajoute b au triplet.
 
constexpr __host__ __device__ ThatClass & operator-= (const ThatClass &b)
 Soustrait b au triplet.
 
constexpr __host__ __device__ ThatClass & operator*= (T b)
 Multiple chaque composante de la matrice par le réel b.
 
constexpr __host__ __device__ ThatClass & operator/= (T b)
 Divise chaque composante de la matrice par le réel b.
 
constexpr __host__ __device__ ThatClass operator- () const
 Créé un tenseur opposé au tenseur actuel.
 
constexpr __host__ __device__ VectorType operator() (Int32 i) const
 
constexpr __host__ __device__ VectorType operator[] (Int32 i) const
 
constexpr __host__ __device__ T & operator() (Int32 i, Int32 j)
 
constexpr __host__ __device__ T operator() (Int32 i, Int32 j) const
 
constexpr __host__ __device__ void setLine (Int32 i, const VectorType &v)
 Positionne à v la valeur de la i-ème ligne.
 
template<int S = RowSize, typename = std::enable_if_t<S >= 1, void >
VectorTypevx ()
 
template<int S = RowSize, typename = std::enable_if_t<S >= 1, void >
VectorType vx () const
 
template<int S = RowSize, typename = std::enable_if_t<S >= 2, void >
VectorTypevy ()
 
template<int S = RowSize, typename = std::enable_if_t<S >= 2, void >
VectorType vy () const
 
template<int S = RowSize, typename = std::enable_if_t<S >= 3, void >
VectorTypevz ()
 
template<int S = RowSize, typename = std::enable_if_t<S >= 3, void >
VectorType vz () const
 

Fonctions membres publiques statiques

constexpr __host__ static __device__ ThatClass zero ()
 Construit la matrice nulle.
 
template<typename X = ThatClass, typename = std::enable_if_t<X::isSquare3(), void>>
constexpr __host__ static __device__ ThatClass fromColumns (T ax, T ay, T az, T bx, T by, T bz, T cx, T cy, T cz)
 Construit la matrice ((ax,bx,cx),(ay,by,cy),(az,bz,cz)).
 
template<typename X = ThatClass, typename = std::enable_if_t<X::isSquare3(), void>>
constexpr __host__ static __device__ ThatClass fromLines (T ax, T bx, T cx, T ay, T by, T cy, T az, T bz, T cz)
 Construit la matrice ((ax,bx,cx),(ay,by,cy),(az,bz,cz)).
 

Amis

constexpr __host__ __device__ ThatClass operator+ (const ThatClass &a, const ThatClass &b)
 Créé un triplet qui vaut ce triplet ajouté à b.
 
constexpr __host__ __device__ ThatClass operator- (const ThatClass &a, const ThatClass &b)
 Créé un triplet qui vaut b soustrait de ce triplet.
 
constexpr __host__ __device__ ThatClass operator* (DataType a, const ThatClass &mat)
 Multiplication par un scalaire.
 
constexpr __host__ __device__ ThatClass operator* (const ThatClass &mat, DataType b)
 Multiplication par un scalaire.
 
constexpr __host__ __device__ ThatClass operator/ (const ThatClass &mat, DataType b)
 Division par un scalaire.
 
constexpr __host__ __device__ bool operator== (const ThatClass &a, const ThatClass &b)
 Compare composant pas composante l'instance courante à b.
 
constexpr __host__ __device__ bool operator!= (const ThatClass &a, const ThatClass &b)
 Compare deux triplets. Pour la notion d'égalité, voir operator==()
 

Description détaillée

template<typename T, int RowSize, int ColumnSize>
class Arcane::NumMatrix< T, RowSize, ColumnSize >

Petite matrice de taille fixe contenant RowSize lignes et ColumnSize colonnes.

Note
Actuellement uniquement implémenté pour le type Real.
Avertissement
API en cours de définition. Ne pas utiliser en dehors de Arcane

Il est possible d'accéder à chaque composante du vecteur par 'operator[]' ou 'operator()' ou par les méthodes vx(), vy(), vz() si la dimension est suffisante (par exemple vz() est uniquement accessible si la Size>=3.

Définition à la ligne 41 du fichier NumMatrix.h.

Documentation des définitions de type membres

◆ DataType

template<typename T , int RowSize, int ColumnSize>
using Arcane::NumMatrix< T, RowSize, ColumnSize >::DataType = T

Définition à la ligne 56 du fichier NumMatrix.h.

◆ ThatClass

template<typename T , int RowSize, int ColumnSize>
using Arcane::NumMatrix< T, RowSize, ColumnSize >::ThatClass = NumMatrix<T, RowSize, ColumnSize>

Définition à la ligne 55 du fichier NumMatrix.h.

◆ VectorType

template<typename T , int RowSize, int ColumnSize>
using Arcane::NumMatrix< T, RowSize, ColumnSize >::VectorType = NumVector<T, ColumnSize>

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

Documentation des constructeurs et destructeur

◆ NumMatrix() [1/7]

template<typename T , int RowSize, int ColumnSize>
template<int S = RowSize, typename = std::enable_if_t<S == 2, void>>
constexpr __host__ __device__ Arcane::NumMatrix< T, RowSize, ColumnSize >::NumMatrix ( const VectorType ax,
const VectorType ay 
)
inlineconstexpr

Construit la matrice avec les lignes (ax,ay)

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

◆ NumMatrix() [2/7]

template<typename T , int RowSize, int ColumnSize>
template<int S = RowSize, typename = std::enable_if_t<S == 3, void>>
constexpr __host__ __device__ Arcane::NumMatrix< T, RowSize, ColumnSize >::NumMatrix ( const VectorType ax,
const VectorType ay,
const VectorType az 
)
inlineconstexpr

Construit la matrice avec les lignes (ax,ay,az)

Définition à la ligne 73 du fichier NumMatrix.h.

◆ NumMatrix() [3/7]

template<typename T , int RowSize, int ColumnSize>
template<int S = RowSize, typename = std::enable_if_t<S == 4, void>>
constexpr __host__ __device__ Arcane::NumMatrix< T, RowSize, ColumnSize >::NumMatrix ( const VectorType a1,
const VectorType a2,
const VectorType a3,
const VectorType a4 
)
inlineconstexpr

Construit la matrice avec les lignes (a1,a2,a3,a4)

Définition à la ligne 82 du fichier NumMatrix.h.

◆ NumMatrix() [4/7]

template<typename T , int RowSize, int ColumnSize>
template<int S = RowSize, typename = std::enable_if_t<S == 4, void>>
constexpr __host__ __device__ Arcane::NumMatrix< T, RowSize, ColumnSize >::NumMatrix ( const VectorType a1,
const VectorType a2,
const VectorType a3,
const VectorType a4,
const VectorType a5 
)
inlineconstexpr

Construit la matrice avec les lignes (a1,a2,a3,a4,a5)

Définition à la ligne 93 du fichier NumMatrix.h.

◆ NumMatrix() [5/7]

template<typename T , int RowSize, int ColumnSize>
constexpr __host__ __device__ Arcane::NumMatrix< T, RowSize, ColumnSize >::NumMatrix ( v)
inlineexplicitconstexpr

Construit l'instance avec le triplet (v,v,v).

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

◆ NumMatrix() [6/7]

template<typename T , int RowSize, int ColumnSize>
template<typename X = ThatClass, typename = std::enable_if_t<X::isSquare2(), void>>
constexpr __host__ __device__ Arcane::NumMatrix< T, RowSize, ColumnSize >::NumMatrix ( Real2x2  v)
inlineexplicitconstexpr

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

◆ NumMatrix() [7/7]

template<typename T , int RowSize, int ColumnSize>
template<typename X = ThatClass, typename = std::enable_if_t<X::isSquare3(), void>>
constexpr __host__ __device__ Arcane::NumMatrix< T, RowSize, ColumnSize >::NumMatrix ( Real3x3  v)
inlineexplicitconstexpr

Définition à la ligne 117 du fichier NumMatrix.h.

Documentation des fonctions membres

◆ fromColumns()

template<typename T , int RowSize, int ColumnSize>
template<typename X = ThatClass, typename = std::enable_if_t<X::isSquare3(), void>>
constexpr __host__ static __device__ ThatClass Arcane::NumMatrix< T, RowSize, ColumnSize >::fromColumns ( ax,
ay,
az,
bx,
by,
bz,
cx,
cy,
cz 
)
inlinestaticconstexpr

Construit la matrice ((ax,bx,cx),(ay,by,cy),(az,bz,cz)).

Définition à la ligne 165 du fichier NumMatrix.h.

◆ fromLines()

template<typename T , int RowSize, int ColumnSize>
template<typename X = ThatClass, typename = std::enable_if_t<X::isSquare3(), void>>
constexpr __host__ static __device__ ThatClass Arcane::NumMatrix< T, RowSize, ColumnSize >::fromLines ( ax,
bx,
cx,
ay,
by,
cy,
az,
bz,
cz 
)
inlinestaticconstexpr

Construit la matrice ((ax,bx,cx),(ay,by,cy),(az,bz,cz)).

Définition à la ligne 172 du fichier NumMatrix.h.

◆ isNearlyZero()

template<typename T , int RowSize, int ColumnSize>
constexpr __host__ __device__ bool Arcane::NumMatrix< T, RowSize, ColumnSize >::isNearlyZero ( ) const
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 \]

Valeurs retournées
truesi la matrice est égale à la matrice nulle,
falsesinon.

Définition à la ligne 190 du fichier NumMatrix.h.

◆ operator Real2x2()

template<typename T , int RowSize, int ColumnSize>
template<typename X = ThatClass, typename = std::enable_if_t<X::isSquare2(), void>>
Arcane::NumMatrix< T, RowSize, ColumnSize >::operator Real2x2 ( ) const
inline

Définition à la ligne 144 du fichier NumMatrix.h.

◆ operator Real3x3()

template<typename T , int RowSize, int ColumnSize>
template<typename X = ThatClass, typename = std::enable_if_t<X::isSquare3(), void>>
Arcane::NumMatrix< T, RowSize, ColumnSize >::operator Real3x3 ( ) const
inline

Définition à la ligne 150 du fichier NumMatrix.h.

◆ operator()() [1/3]

template<typename T , int RowSize, int ColumnSize>
constexpr __host__ __device__ VectorType Arcane::NumMatrix< T, RowSize, ColumnSize >::operator() ( Int32  i) const
inlineconstexpr

Définition à la ligne 304 du fichier NumMatrix.h.

◆ operator()() [2/3]

template<typename T , int RowSize, int ColumnSize>
constexpr __host__ __device__ T & Arcane::NumMatrix< T, RowSize, ColumnSize >::operator() ( Int32  i,
Int32  j 
)
inlineconstexpr

Définition à la ligne 316 du fichier NumMatrix.h.

◆ operator()() [3/3]

template<typename T , int RowSize, int ColumnSize>
constexpr __host__ __device__ T Arcane::NumMatrix< T, RowSize, ColumnSize >::operator() ( Int32  i,
Int32  j 
) const
inlineconstexpr

Définition à la ligne 323 du fichier NumMatrix.h.

◆ operator*=()

template<typename T , int RowSize, int ColumnSize>
constexpr __host__ __device__ ThatClass & Arcane::NumMatrix< T, RowSize, ColumnSize >::operator*= ( b)
inlineconstexpr

Multiple chaque composante de la matrice par le réel b.

Définition à la ligne 213 du fichier NumMatrix.h.

◆ operator+=()

template<typename T , int RowSize, int ColumnSize>
constexpr __host__ __device__ ThatClass & Arcane::NumMatrix< T, RowSize, ColumnSize >::operator+= ( const ThatClass &  b)
inlineconstexpr

Ajoute b au triplet.

Définition à la ligne 199 du fichier NumMatrix.h.

◆ operator-()

template<typename T , int RowSize, int ColumnSize>
constexpr __host__ __device__ ThatClass Arcane::NumMatrix< T, RowSize, ColumnSize >::operator- ( ) const
inlineconstexpr

Créé un tenseur opposé au tenseur actuel.

Définition à la ligne 243 du fichier NumMatrix.h.

◆ operator-=()

template<typename T , int RowSize, int ColumnSize>
constexpr __host__ __device__ ThatClass & Arcane::NumMatrix< T, RowSize, ColumnSize >::operator-= ( const ThatClass &  b)
inlineconstexpr

Soustrait b au triplet.

Définition à la ligne 206 du fichier NumMatrix.h.

◆ operator/=()

template<typename T , int RowSize, int ColumnSize>
constexpr __host__ __device__ ThatClass & Arcane::NumMatrix< T, RowSize, ColumnSize >::operator/= ( b)
inlineconstexpr

Divise chaque composante de la matrice par le réel b.

Définition à la ligne 220 du fichier NumMatrix.h.

◆ operator=() [1/3]

template<typename T , int RowSize, int ColumnSize>
template<typename X = ThatClass, typename = std::enable_if_t<X::isSquare2(), void>>
constexpr __host__ __device__ ThatClass & Arcane::NumMatrix< T, RowSize, ColumnSize >::operator= ( const Real2x2 v)
inlineconstexpr

Définition à la ligne 130 du fichier NumMatrix.h.

◆ operator=() [2/3]

template<typename T , int RowSize, int ColumnSize>
template<typename X = ThatClass, typename = std::enable_if_t<X::isSquare3(), void>>
constexpr __host__ __device__ ThatClass & Arcane::NumMatrix< T, RowSize, ColumnSize >::operator= ( const Real3x3 v)
inlineconstexpr

Définition à la ligne 137 du fichier NumMatrix.h.

◆ operator=() [3/3]

template<typename T , int RowSize, int ColumnSize>
constexpr __host__ __device__ ThatClass & Arcane::NumMatrix< T, RowSize, ColumnSize >::operator= ( v)
inlineconstexpr

Affecte à l'instance le triplet (v,v,v).

Définition à la ligne 122 du fichier NumMatrix.h.

◆ operator[]()

template<typename T , int RowSize, int ColumnSize>
constexpr __host__ __device__ VectorType Arcane::NumMatrix< T, RowSize, ColumnSize >::operator[] ( Int32  i) const
inlineconstexpr

Définition à la ligne 310 du fichier NumMatrix.h.

◆ setLine()

template<typename T , int RowSize, int ColumnSize>
constexpr __host__ __device__ void Arcane::NumMatrix< T, RowSize, ColumnSize >::setLine ( Int32  i,
const VectorType v 
)
inlineconstexpr

Positionne à v la valeur de la i-ème ligne.

Définition à la ligne 331 du fichier NumMatrix.h.

◆ vx() [1/2]

template<typename T , int RowSize, int ColumnSize>
template<int S = RowSize, typename = std::enable_if_t<S >= 1, void >
VectorType & Arcane::NumMatrix< T, RowSize, ColumnSize >::vx ( )
inline

Définition à la ligne 340 du fichier NumMatrix.h.

◆ vx() [2/2]

template<typename T , int RowSize, int ColumnSize>
template<int S = RowSize, typename = std::enable_if_t<S >= 1, void >
VectorType Arcane::NumMatrix< T, RowSize, ColumnSize >::vx ( ) const
inline

Définition à la ligne 345 du fichier NumMatrix.h.

◆ vy() [1/2]

template<typename T , int RowSize, int ColumnSize>
template<int S = RowSize, typename = std::enable_if_t<S >= 2, void >
VectorType & Arcane::NumMatrix< T, RowSize, ColumnSize >::vy ( )
inline

Définition à la ligne 351 du fichier NumMatrix.h.

◆ vy() [2/2]

template<typename T , int RowSize, int ColumnSize>
template<int S = RowSize, typename = std::enable_if_t<S >= 2, void >
VectorType Arcane::NumMatrix< T, RowSize, ColumnSize >::vy ( ) const
inline

Définition à la ligne 356 du fichier NumMatrix.h.

◆ vz() [1/2]

template<typename T , int RowSize, int ColumnSize>
template<int S = RowSize, typename = std::enable_if_t<S >= 3, void >
VectorType & Arcane::NumMatrix< T, RowSize, ColumnSize >::vz ( )
inline

Définition à la ligne 362 du fichier NumMatrix.h.

◆ vz() [2/2]

template<typename T , int RowSize, int ColumnSize>
template<int S = RowSize, typename = std::enable_if_t<S >= 3, void >
VectorType Arcane::NumMatrix< T, RowSize, ColumnSize >::vz ( ) const
inline

Définition à la ligne 367 du fichier NumMatrix.h.

◆ zero()

template<typename T , int RowSize, int ColumnSize>
constexpr __host__ static __device__ ThatClass Arcane::NumMatrix< T, RowSize, ColumnSize >::zero ( )
inlinestaticconstexpr

Construit la matrice nulle.

Définition à la ligne 158 du fichier NumMatrix.h.

Documentation des fonctions amies et associées

◆ operator!=

template<typename T , int RowSize, int ColumnSize>
constexpr __host__ __device__ bool operator!= ( const ThatClass &  a,
const ThatClass &  b 
)
friend

Compare deux triplets. Pour la notion d'égalité, voir operator==()

Valeurs retournées
truesi les deux triplets sont différents,
falsesinon.

Définition à la ligne 296 du fichier NumMatrix.h.

◆ operator* [1/2]

template<typename T , int RowSize, int ColumnSize>
constexpr __host__ __device__ ThatClass operator* ( const ThatClass &  mat,
DataType  b 
)
friend

Multiplication par un scalaire.

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

◆ operator* [2/2]

template<typename T , int RowSize, int ColumnSize>
constexpr __host__ __device__ ThatClass operator* ( DataType  a,
const ThatClass &  mat 
)
friend

Multiplication par un scalaire.

Définition à la ligne 252 du fichier NumMatrix.h.

◆ operator+

template<typename T , int RowSize, int ColumnSize>
constexpr __host__ __device__ ThatClass operator+ ( const ThatClass &  a,
const ThatClass &  b 
)
friend

Créé un triplet qui vaut ce triplet ajouté à b.

Définition à la ligne 227 du fichier NumMatrix.h.

◆ operator-

template<typename T , int RowSize, int ColumnSize>
constexpr __host__ __device__ ThatClass operator- ( const ThatClass &  a,
const ThatClass &  b 
)
friend

Créé un triplet qui vaut b soustrait de ce triplet.

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

◆ operator/

template<typename T , int RowSize, int ColumnSize>
constexpr __host__ __device__ ThatClass operator/ ( const ThatClass &  mat,
DataType  b 
)
friend

Division par un scalaire.

Définition à la ligne 268 du fichier NumMatrix.h.

◆ operator==

template<typename T , int RowSize, int ColumnSize>
constexpr __host__ __device__ bool operator== ( const ThatClass &  a,
const ThatClass &  b 
)
friend

Compare composant pas composante l'instance courante à b.

Valeurs retournées
truesi this.x==b.x et this.y==b.y et this.z==b.z.
falsesinon.

Définition à la ligne 282 du fichier NumMatrix.h.


La documentation de cette classe a été générée à partir du fichier suivant :