- MatrixInfo
- IsSymmetric
- IsHermitian
- IsUpperTriangular
- IsLowerTriangular
- IsUpperTrapezoidal
- IsLowerTrapezoidal
- IsUpperHessenberg
- IsLowerHessenberg
- IsTridiagonal
- IsUpperBidiagonal
- IsLowerBidiagonal
- IsDiagonal
- IsScalar
MatrixInfo
O método analisa o conteúdo da matriz, determina seu tipo estrutural (simétrica, hermitiana, triangular, em banda e assim por diante) e preenche a estrutura MqlMatrixInfo.
bool matrix::MatrixInfo(
|
Parâmetros
info
[out] Um objeto do tipo MqlMatrixInfo no qual são colocadas as informações da matriz.
Valor de retorno
Retorna true se a matriz estiver inicializada e tiver tamanho diferente de zero. Caso contrário, retorna false.
Observação
O objeto da estrutura MqlMatrixInfo contém mais informações do que os métodos individuais de classificação de matrizes podem fornecer (IsSymmetric, IsHermitian, IsUpperTriangular e assim por diante).
struct MqlMatrixInfo
|
As informações da estrutura MqlMatrixInfo são usadas ao gravar uma matriz em um arquivo e ao ler uma matriz de um arquivo. O valor data_size é calculado de acordo com a classe de matriz reconhecida e contém o número de bytes necessários para armazenar a matriz. Por exemplo, uma matriz geral (GE) ocupa m * n * sizeof(type) bytes. Uma matriz geral em banda (GB) ocupa (kl+ku+1) * n * sizeof(type) bytes. Uma matriz simétrica n x n (SY) ocupa n * (n+1)/2 * sizeof(type) bytes.
Enumeração que contém o tipo da matriz reconhecida.
ID |
Descrição |
|---|---|
BLASTYPE_GE |
'GE': matriz geral |
BLASTYPE_BD |
'BD': matriz bidiagonal |
BLASTYPE_DI |
'DI': matriz diagonal |
BLASTYPE_GB |
'GB': matriz geral em banda |
BLASTYPE_GT |
'GT': matriz tridiagonal geral |
BLASTYPE_HB |
'HB': matriz hermitiana em banda |
BLASTYPE_HE |
'HE': matriz hermitiana |
BLASTYPE_HT |
'HT': matriz tridiagonal hermitiana |
BLASTYPE_HS |
'HS': matriz de Hessenberg |
BLASTYPE_SB |
'SB': matriz simétrica em banda |
BLASTYPE_ST |
'ST': matriz tridiagonal simétrica |
BLASTYPE_SY |
'SY': matriz simétrica |
BLASTYPE_TB |
'TB': matriz triangular em banda |
BLASTYPE_TR |
'TR': matriz triangular |
BLASTYPE_TZ |
'TZ': matriz trapezoidal |
BLASTYPE_VE |
|
BLASTYPE_CO |
'CO': COO esparsa - usada ao gravar e ler uma matriz ou vetor, se armazená-lo como esparso for mais eficiente do que armazená-lo como 'GE' ou 'VE' |
Os tipos BLASTYPE_VE e BLASTYPE_CO nunca são retornados pelo método MatrixInfo. Os nomes dos demais itens da enumeração correspondem às abreviações usadas no LAPACK para indicar várias classes de matrizes. O tipo HT é uma exceção: tridiagonal hermitiana. HT não está presente na terminologia padrão do LAPACK e é introduzido por analogia com ST (tridiagonal simétrica) para indicar uma matriz tridiagonal hermitiana, o que também permite armazenar a matriz correspondente de forma compacta.
Flags que refinam o tipo de matriz reconhecido.
ID |
Valor |
Descrição |
|---|---|---|
MATRIX_UPPER |
0x0001 |
parte superior acima da diagonal principal |
MATRIX_LOWER |
0x0002 |
parte inferior abaixo da diagonal principal |
MATRIX_UNITDIAG |
0x0004 |
a diagonal principal contém apenas uns (1) |
MATRIX_DIAGSCALAR |
0x0008 |
a diagonal principal contém os mesmos valores |
MATRIX_QUASI_TRIANGULAR |
0x0010 |
possível matriz quase triangular |
MATRIX_TRIANGLE_RIGHT_ALIGNED |
0x0020 |
parte triangular superior alinhada à borda direita de uma matriz larga |
MATRIX_TRIANGLE_BOTTOM_ALIGNED |
0x0040 |
parte triangular inferior alinhada à borda inferior de uma matriz alta |
Os flags listados (exceto MATRIX_QUASI_TRIANGULAR) permitem armazenar matrizes de forma mais compacta.
Exemplo
ulong n=10;
|