XLPack 7.0
XLPack 数値計算ライブラリ (Excel VBA) リファレンスマニュアル
読み取り中…
検索中…
一致する文字列を見つけられません

◆ HBReadInfo()

Sub HBReadInfo ( Fname As  String,
Title As  String,
Key As  String,
Nrow As  Long,
Ncol As  Long,
Nnz As  Long,
Neltvl As  Long,
Nrhs As  Long,
Nrhsix As  Long,
DataType As  Long,
MatShape As  Long,
MatForm As  Long,
RhsForm As  Long,
IniVec As  Long,
SolVec As  Long,
Optional Info As  Long 
)

Harwell-Boeing形式ファイルから行列情報を読み出す

目的
Harwell-Boeing形式ファイルから行列の形式およびサイズを読み出す.
引数
[in]Fname入力ファイル名.
[out]TitleTitle 文字列.
[out]KeyKey 文字列.
[out]Nrow行列の行数 (疎行列の場合).
変数の数 (Nu) (有限要素行列の場合).
[out]Ncol行列の列数 (疎行列の場合).
基本行列の数 (Ne) (有限要素行列の場合).
[out]Nnz非ゼロ要素数 (疎行列の場合).
変数インデクス数 (Nind) (有限要素行列の場合).
[out]Neltvl使用しない (疎行列の場合).
要素数 (有限要素行列の場合).
[out]Nrhs右辺行列の列数.
[out]Nrhsix右辺行列の行インデックス数. (RhsForm = 1, MatForm = 0 (疎行列) の場合)
[out]DataType行列のデータ型.
= 0: 実数.
= 1: 複素数.
= 2: パターン.
[out]MatShape行列の形状.
= 0: 非対称行列.
= 1: 対称行列.
= 2: 歪対称(交代)行列.
= 3: エルミート行列.
= 4: 長方形行列.
[out]MatForm行列の格納形式.
= 0: 疎行列.
= 1: 有限要素行列.
[out]RhsForm右辺行列の格納形式.
= 0: 密行列.
= 1: 係数行列と同形式.
[out]IniVec初期推定ベクトルが格納されているかどうか.
= 0: 格納しない.
= 1: 格納する.
[out]SolVec解ベクトルが格納されているかどうか.
= 0: 格納しない.
= 1: 格納する.
[out]Info(省略可)
= 0: 正常終了.
=i < 0: (-i)番目の入力パラメータの誤り.
= 1: ファイルがオープンできなかった.
= 3: ファイル読み出しエラー.
= 4: 読み出しフォーマットの誤り.
使用例
次の Harwell-Boeing 形式ファイル (Test_HBWrite.rua) の行列情報を読み出す.
Test HBWrite Key
7 1 2 3 1
RUA 3 3 9 0
(8I10) (8I10) (3D23.15) (3D23.15)
F 1 0
1 4 7 10
1 2 3 1 2 3 1 2
3
2.000000000000000e-01 -3.200000000000000e-01 -8.000000000000000e-01
-1.100000000000000e-01 8.100000000000001e-01 -9.200000000000000e-01
-9.300000000000000e-01 3.700000000000000e-01 -2.900000000000000e-01
-3.727000000000000e-01 4.319000000000000e-01 -1.424700000000000e+00
Sub HBWrite(Fname As String, ByVal Title As String, Key As String, Nrow As Long, Ncol As Long, Nnz As Long, Neltvl As Long, Val() As Double, Ptr() As Long, Ind() As Long, Nrhs As Long, Nrhsix As Long, Rhsval() As Double, Rhsptr() As Long, Rhsind() As Long, Sguess() As Double, Xexact() As Double, DataType As Long, MatShape As Long, MatForm As Long, RhsForm As Long, IniVec As Long, SolVec As Long, Optional Info As Long, Optional Fchk As Long=0, Optional Base As Long=-1, Optional Format As Long=0, Optional IntN As Long=8, Optional IntW As Long=10, Optional DblN As Long=3, Optional DblW As Long=23, Optional DblD As Long=15)
Harwell-Boeing形式ファイルへの書き込み
Sub Ex_HBReadInfo()
Dim Title As String, Key As String
Dim M As Long, N As Long, Nnz As Long, Neltvl As Long, Nrhs As Long, Nrhsix As Long
Dim DataType As Long, MatShape As Long, MatForm As Long, RhsForm As Long, IniVec As Long, SolVec As Long
Dim Info As Long
Call HBReadInfo("Test_HBWrite.rua", Title, Key, M, N, Nnz, Neltvl, Nrhs, Nrhsix, DataType, MatShape, MatForm, RhsForm, IniVec, SolVec, Info)
Debug.Print "HBReadInfo: Info =" + Str(Info)
Debug.Print "Title = """ + Title + """, Key = """ + Key + """, M =" + Str(M) + ", N =" + Str(N) + ", Nnz =" + Str(Nnz) + ", Neltvl =" + Str(Neltvl) + ", Nrhs =" + Str(Nrhs) + ", Nrhsix =" + Str(Nrhsix)
Debug.Print "DataType =" + Str(DataType) + ", MatShape =" + Str(MatShape) + ", MatForm =" + Str(MatForm) + ", RhsForm = " + Str(RhsForm) + ", IniVec =" + Str(IniVec) + ", SolVec = " + Str(SolVec); ""
End Sub
Sub HBReadInfo(Fname As String, Title As String, Key As String, Nrow As Long, Ncol As Long, Nnz As Long, Neltvl As Long, Nrhs As Long, Nrhsix As Long, DataType As Long, MatShape As Long, MatForm As Long, RhsForm As Long, IniVec As Long, SolVec As Long, Optional Info As Long)
Harwell-Boeing形式ファイルから行列情報を読み出す
実行結果
HBReadInfo: Info = 0
Title = "Test HBWrite", Key = "Key", M = 3, N = 3, Nnz = 9, Neltvl = 0, Nrhs = 1, Nrhsix = 0
DataType = 0, MatShape = 0, MatForm = 0, RhsForm = 0, IniVec = 0, SolVec = 0