- MatrixInfo
- IsSymmetric
- IsHermitian
- IsUpperTriangular
- IsLowerTriangular
- IsUpperTrapezoidal
- IsLowerTrapezoidal
- IsUpperHessenberg
- IsLowerHessenberg
- IsTridiagonal
- IsUpperBidiagonal
- IsLowerBidiagonal
- IsDiagonal
- IsScalar
MatrixInfo
La méthode analyse le contenu de la matrice, détermine son type structurel (symétrique, hermitienne, triangulaire, bande, etc.) et remplit la structure MqlMatrixInfo.
bool matrix::MatrixInfo(
|
Paramètres
info
[out] Un objet du type MqlMatrixInfo dans lequel les informations de la matrice sont placées.
Valeur de retour
Renvoie true si la matrice est initialisée et a une taille non nulle. Sinon, false est renvoyé.
Remarque
Lobjet de la structure MqlMatrixInfo contient plus dinformations que les méthodes individuelles de classification des matrices ne peuvent en fournir (IsSymmetric, IsHermitian, IsUpperTriangular, etc.).
struct MqlMatrixInfo
|
Les informations de la structure MqlMatrixInfo sont utilisées lors de lécriture dune matrice dans un fichier et lors de la lecture dune matrice depuis un fichier. La valeur data_size est calculée en fonction de la classe de matrice reconnue et contient le nombre doctets nécessaires pour stocker la matrice. Par exemple, une matrice générale (GE) occupe m * n * sizeof(type) octets. Une matrice générale bande (GB) occupe (kl+ku+1) * n * sizeof(type) octets. Une matrice symétrique n x n (SY) occupe n * (n+1)/2 * sizeof(type) octets.
Énumération contenant le type de la matrice reconnue.
ID |
Description |
|---|---|
BLASTYPE_GE |
'GE' : matrice générale |
BLASTYPE_BD |
'BD' : matrice bidiagonale |
BLASTYPE_DI |
'DI' : matrice diagonale |
BLASTYPE_GB |
'GB' : matrice générale bande |
BLASTYPE_GT |
'GT' : matrice tridiagonale générale |
BLASTYPE_HB |
'HB' : matrice hermitienne bande |
BLASTYPE_HE |
'HE' : matrice hermitienne |
BLASTYPE_HT |
'HT' : matrice tridiagonale hermitienne |
BLASTYPE_HS |
'HS' : matrice de Hessenberg |
BLASTYPE_SB |
'SB' : matrice symétrique bande |
BLASTYPE_ST |
'ST' : matrice tridiagonale symétrique |
BLASTYPE_SY |
'SY' : matrice symétrique |
BLASTYPE_TB |
'TB' : matrice triangulaire bande |
BLASTYPE_TR |
'TR' : matrice triangulaire |
BLASTYPE_TZ |
'TZ' : matrice trapézoïdale |
BLASTYPE_VE |
'VE' : vecteur - utilisé lors de lécriture et de la lecture dun vecteur |
BLASTYPE_CO |
'CO' : COO creuse - utilisée lors de lécriture et de la lecture dune matrice ou dun vecteur si son stockage sous forme creuse est plus efficace que son stockage comme 'GE' ou 'VE' |
Les types BLASTYPE_VE et BLASTYPE_CO ne sont jamais renvoyés par la méthode MatrixInfo. Les noms des autres éléments de lénumération correspondent aux abréviations utilisées dans LAPACK pour désigner différentes classes de matrices. Le type HT est une exception : tridiagonal hermitien. HT nexiste pas dans la terminologie standard de LAPACK et est introduit par analogie avec ST (tridiagonal symétrique) pour désigner une matrice tridiagonale hermitienne, ce qui permet également de stocker la matrice correspondante de manière compacte.
Flags qui précisent le type de matrice reconnu.
ID |
Valeur |
Description |
|---|---|---|
MATRIX_UPPER |
0x0001 |
partie supérieure au-dessus de la diagonale principale |
MATRIX_LOWER |
0x0002 |
partie inférieure sous la diagonale principale |
MATRIX_UNITDIAG |
0x0004 |
la diagonale principale ne contient que des uns (1) |
MATRIX_DIAGSCALAR |
0x0008 |
la diagonale principale contient les mêmes valeurs |
MATRIX_QUASI_TRIANGULAR |
0x0010 |
matrice quasi triangulaire possible |
MATRIX_TRIANGLE_RIGHT_ALIGNED |
0x0020 |
partie triangulaire supérieure alignée sur la limite droite dune matrice large |
MATRIX_TRIANGLE_BOTTOM_ALIGNED |
0x0040 |
partie triangulaire inférieure alignée sur la limite inférieure dune matrice haute |
Les flags listés (sauf MATRIX_QUASI_TRIANGULAR) permettent de stocker les matrices plus compactement.
Exemple
ulong n=10;
|