- MatrixInfo
- IsSymmetric
- IsHermitian
- IsUpperTriangular
- IsLowerTriangular
- IsUpperTrapezoidal
- IsLowerTrapezoidal
- IsUpperHessenberg
- IsLowerHessenberg
- IsTridiagonal
- IsUpperBidiagonal
- IsLowerBidiagonal
- IsDiagonal
- IsScalar
MatrixInfo
Il metodo analizza il contenuto della matrice, ne determina il tipo strutturale (simmetrica, hermitiana, triangolare, a banda e così via) e riempie la struttura MqlMatrixInfo.
bool matrix::MatrixInfo(
|
Parametri
info
[out] Un oggetto del tipo MqlMatrixInfo in cui vengono inserite le informazioni sulla matrice.
Valore restituito
Restituisce true se la matrice è inizializzata e ha dimensione diversa da zero. In caso contrario restituisce false.
Nota
L’oggetto della struttura MqlMatrixInfo contiene più informazioni di quante possano fornire i singoli metodi di classificazione delle matrici (IsSymmetric, IsHermitian, IsUpperTriangular e così via).
struct MqlMatrixInfo
|
Le informazioni della struttura MqlMatrixInfo vengono utilizzate durante la scrittura di una matrice in un file e durante la lettura di una matrice da un file. Il valore data_size viene calcolato in base alla classe di matrice riconosciuta e contiene il numero di byte necessari per memorizzare la matrice. Ad esempio, una matrice generale (GE) occupa m * n * sizeof(type) byte. Una matrice generale a banda (GB) occupa (kl+ku+1) * n * sizeof(type) byte. Una matrice simmetrica n x n (SY) occupa n * (n+1)/2 * sizeof(type) byte.
Enumerazione contenente il tipo della matrice riconosciuta.
ID |
Descrizione |
|---|---|
BLASTYPE_GE |
'GE': matrice generale |
BLASTYPE_BD |
'BD': matrice bidiagonale |
BLASTYPE_DI |
'DI': matrice diagonale |
BLASTYPE_GB |
'GB': matrice generale a banda |
BLASTYPE_GT |
'GT': matrice tridiagonale generale |
BLASTYPE_HB |
'HB': matrice hermitiana a banda |
BLASTYPE_HE |
'HE': matrice hermitiana |
BLASTYPE_HT |
'HT': matrice tridiagonale hermitiana |
BLASTYPE_HS |
'HS': matrice di Hessenberg |
BLASTYPE_SB |
'SB': matrice simmetrica a banda |
BLASTYPE_ST |
'ST': matrice tridiagonale simmetrica |
BLASTYPE_SY |
'SY': matrice simmetrica |
BLASTYPE_TB |
'TB': matrice triangolare a banda |
BLASTYPE_TR |
'TR': matrice triangolare |
BLASTYPE_TZ |
'TZ': matrice trapezoidale |
BLASTYPE_VE |
'VE': vettore - usato durante la scrittura e la lettura di un vettore |
BLASTYPE_CO |
'CO': COO sparsa - usata durante la scrittura e la lettura di una matrice o di un vettore, se memorizzarlo come sparso è più efficiente che memorizzarlo come 'GE' o 'VE' |
I tipi BLASTYPE_VE e BLASTYPE_CO non vengono mai restituiti dal metodo MatrixInfo. I nomi degli altri elementi dell’enumerazione corrispondono alle abbreviazioni usate in LAPACK per indicare varie classi di matrici. Il tipo HT è un’eccezione: tridiagonale hermitiana. HT non è presente nella terminologia standard di LAPACK ed è introdotto per analogia con ST (tridiagonale simmetrica) per indicare una matrice tridiagonale hermitiana, consentendo anche di memorizzare la matrice corrispondente in modo compatto.
Flag che precisano il tipo di matrice riconosciuto.
ID |
Valore |
Descrizione |
|---|---|---|
MATRIX_UPPER |
0x0001 |
parte superiore sopra la diagonale principale |
MATRIX_LOWER |
0x0002 |
parte inferiore sotto la diagonale principale |
MATRIX_UNITDIAG |
0x0004 |
la diagonale principale contiene solo uno (1) |
MATRIX_DIAGSCALAR |
0x0008 |
la diagonale principale contiene gli stessi valori |
MATRIX_QUASI_TRIANGULAR |
0x0010 |
possibile matrice quasi triangolare |
MATRIX_TRIANGLE_RIGHT_ALIGNED |
0x0020 |
parte triangolare superiore allineata al bordo destro di una matrice larga |
MATRIX_TRIANGLE_BOTTOM_ALIGNED |
0x0040 |
parte triangolare inferiore allineata al bordo inferiore di una matrice alta |
I flag elencati (eccetto MATRIX_QUASI_TRIANGULAR) consentono di memorizzare le matrici in modo più compatto.
Esempio
ulong n=10;
|