- MatrixInfo
- IsSymmetric
- IsHermitian
- IsUpperTriangular
- IsLowerTriangular
- IsUpperTrapezoidal
- IsLowerTrapezoidal
- IsUpperHessenberg
- IsLowerHessenberg
- IsTridiagonal
- IsUpperBidiagonal
- IsLowerBidiagonal
- IsDiagonal
- IsScalar
MatrixInfo
このメソッドは行列の内容を解析し、その構造タイプ(対称、エルミート、三角、帯行列など)を判定して、MqlMatrixInfo 構造体に値を格納します。
bool matrix::MatrixInfo(
|
パラメータ
info
[out] 行列情報が格納される MqlMatrixInfo 型のオブジェクトです。
戻り値
行列が初期化され、サイズが 0 でない場合は true を返します。それ以外の場合は false を返します。
注意
MqlMatrixInfo 構造体のオブジェクトには、個々の行列分類メソッドが提供できる情報よりも多くの情報が含まれます(IsSymmetric, IsHermitian, IsUpperTriangular など)。
struct MqlMatrixInfo
|
MqlMatrixInfo 構造体の情報は、行列をファイルに書き込む場合、およびファイルから行列を読み込む場合に使用されます。 data_size の値は、認識された行列クラスに応じて計算され、行列の保存に必要なバイト数を含みます。例えば、一般行列 (GE) は m * n * sizeof(type) バイトを占有します。一般帯行列 (GB) は (kl+ku+1) * n * sizeof(type) バイトを占有します。n x n の対称行列 (SY) は n * (n+1)/2 * sizeof(type) バイトを占有します。
認識された行列のタイプを含む列挙です。
ID |
説明 |
|---|---|
BLASTYPE_GE |
'GE': 一般行列 |
BLASTYPE_BD |
'BD': 二重対角行列 |
BLASTYPE_DI |
'DI': 対角行列 |
BLASTYPE_GB |
'GB': 一般帯行列 |
BLASTYPE_GT |
'GT': 一般三重対角行列 |
BLASTYPE_HB |
'HB': エルミート帯行列 |
BLASTYPE_HE |
'HE': エルミート行列 |
BLASTYPE_HT |
'HT': エルミート三重対角行列 |
BLASTYPE_HS |
'HS': ヘッセンベルグ行列 |
BLASTYPE_SB |
'SB': 対称帯行列 |
BLASTYPE_ST |
'ST': 対称三重対角行列 |
BLASTYPE_SY |
'SY': 対称行列 |
BLASTYPE_TB |
'TB': 三角帯行列 |
BLASTYPE_TR |
'TR': 三角行列 |
BLASTYPE_TZ |
'TZ': 台形行列 |
BLASTYPE_VE |
|
BLASTYPE_CO |
'CO': 疎 COO - 行列またはベクトルを書き込む場合および読み込む場合に、'GE' または 'VE' として保存するより疎形式で保存する方が効率的な場合に使用されます |
BLASTYPE_VE 型と BLASTYPE_CO 型は MatrixInfo メソッドから返されることはありません。残りの列挙項目の名前は、LAPACK で さまざまな行列クラスを表すために使用される略語に対応しています。HT 型は例外で、エルミート三重対角を表します。HT は標準の LAPACK 用語には存在せず、ST(対称三重対角)との類推により、エルミート三重対角行列を表すために導入されています。これにより、対応する行列をコンパクトに保存することもできます。
認識された行列タイプを詳しく指定するフラグです。
ID |
値 |
説明 |
|---|---|---|
MATRIX_UPPER |
0x0001 |
主対角線より上の上部 |
MATRIX_LOWER |
0x0002 |
主対角線より下の下部 |
MATRIX_UNITDIAG |
0x0004 |
主対角線には 1 のみが含まれます |
MATRIX_DIAGSCALAR |
0x0008 |
主対角線には同じ値が含まれます |
MATRIX_QUASI_TRIANGULAR |
0x0010 |
準三角行列の可能性があります |
MATRIX_TRIANGLE_RIGHT_ALIGNED |
0x0020 |
上三角部分が横長行列の右端に揃えられています |
MATRIX_TRIANGLE_BOTTOM_ALIGNED |
0x0040 |
下三角部分が縦長行列の下端に揃えられています |
列挙されたフラグ(MATRIX_QUASI_TRIANGULAR を除く)により、行列をよりコンパクトに保存できます。
例
ulong n=10;
|