- MatrixInfo
- IsSymmetric
- IsHermitian
- IsUpperTriangular
- IsLowerTriangular
- IsUpperTrapezoidal
- IsLowerTrapezoidal
- IsUpperHessenberg
- IsLowerHessenberg
- IsTridiagonal
- IsUpperBidiagonal
- IsLowerBidiagonal
- IsDiagonal
- IsScalar
MatrixInfo
El método analiza el contenido de la matriz, determina su tipo estructural (simétrica, hermítica, triangular, de banda, etc.) y rellena la estructura MqlMatrixInfo.
bool matrix::MatrixInfo(
|
Parámetros
info
[out] Un objeto del tipo MqlMatrixInfo donde se coloca la información de la matriz.
Valor devuelto
Devuelve true si la matriz está inicializada y tiene un tamaño distinto de cero. En caso contrario, devuelve false.
Nota
El objeto de la estructura MqlMatrixInfo contiene más información de la que pueden proporcionar los métodos individuales de clasificación de matrices (IsSymmetric, IsHermitian, IsUpperTriangular, etc.).
struct MqlMatrixInfo
|
La información de la estructura MqlMatrixInfo se utiliza al escribir una matriz en un archivo y al leer una matriz desde un archivo. El valor data_size se calcula según la clase de matriz reconocida y contiene el número de bytes necesarios para almacenar la matriz. Por ejemplo, una matriz general (GE) ocupa m * n * sizeof(type) bytes. Una matriz general de banda (GB) ocupa (kl+ku+1) * n * sizeof(type) bytes. Una matriz simétrica n x n (SY) ocupa n * (n+1)/2 * sizeof(type) bytes.
Enumeración que contiene el tipo de la matriz reconocida.
ID |
Descripción |
|---|---|
BLASTYPE_GE |
'GE': matriz general |
BLASTYPE_BD |
'BD': matriz bidiagonal |
BLASTYPE_DI |
'DI': matriz diagonal |
BLASTYPE_GB |
'GB': matriz general de banda |
BLASTYPE_GT |
'GT': matriz tridiagonal general |
BLASTYPE_HB |
'HB': matriz hermítica de banda |
BLASTYPE_HE |
'HE': matriz hermítica |
BLASTYPE_HT |
'HT': matriz tridiagonal hermítica |
BLASTYPE_HS |
'HS': matriz de Hessenberg |
BLASTYPE_SB |
'SB': matriz simétrica de banda |
BLASTYPE_ST |
'ST': matriz tridiagonal simétrica |
BLASTYPE_SY |
'SY': matriz simétrica |
BLASTYPE_TB |
'TB': matriz triangular de banda |
BLASTYPE_TR |
'TR': matriz triangular |
BLASTYPE_TZ |
'TZ': matriz trapezoidal |
BLASTYPE_VE |
|
BLASTYPE_CO |
'CO': COO dispersa - usada al escribir y al leer una matriz o un vector si almacenarlo como disperso resulta más eficiente que almacenarlo como 'GE' o 'VE' |
Los tipos BLASTYPE_VE y BLASTYPE_CO nunca son devueltos por el método MatrixInfo. Los nombres de los demás elementos de la enumeración corresponden a las abreviaturas usadas en LAPACK para designar diversas clases de matrices. El tipo HT es una excepción: tridiagonal hermítica. HT no está presente en la terminología estándar de LAPACK y se introduce por analogía con ST (tridiagonal simétrica) para designar una matriz tridiagonal hermítica, lo que también permite almacenar la matriz correspondiente de forma compacta.
Flags que precisan el tipo de matriz reconocido.
ID |
Valor |
Descripción |
|---|---|---|
MATRIX_UPPER |
0x0001 |
parte superior por encima de la diagonal principal |
MATRIX_LOWER |
0x0002 |
parte inferior por debajo de la diagonal principal |
MATRIX_UNITDIAG |
0x0004 |
la diagonal principal contiene solo unos (1) |
MATRIX_DIAGSCALAR |
0x0008 |
la diagonal principal contiene los mismos valores |
MATRIX_QUASI_TRIANGULAR |
0x0010 |
posible matriz cuasi triangular |
MATRIX_TRIANGLE_RIGHT_ALIGNED |
0x0020 |
parte triangular superior alineada con el límite derecho de una matriz ancha |
MATRIX_TRIANGLE_BOTTOM_ALIGNED |
0x0040 |
parte triangular inferior alineada con el límite inferior de una matriz alta |
Los flags indicados (excepto MATRIX_QUASI_TRIANGULAR) permiten almacenar las matrices de forma más compacta.
Ejemplo
ulong n=10;
|