ほんとのこと知りたいだけなのに。

夏休みはもうおわり。

LAPACK サンプルプログラム集 を写経してみます。

LAPACK サンプルプログラム集 を写経してみます。

丁度日本語情報だったので。

http://www.nag-j.co.jp/lapack/lapack-ex/lapack-ex.html

ルーチン一覧

これだけ計算ができるようすね。

まぁ現時点では何のこっちゃさっぱりです。

ルーチン明細

ルーチンのコードとそのコードを分解した 精度から処理内容の四つの列で一覧にしてみました。

カラム 説明 ex
名称 ルーチンの名称。 BGGSVX
精度 最初の一桁。 B
行列の型 2-3桁。 GG
処理内容1 最後の三桁。 その三桁の前二桁。 SV
処理内容2 最後の一桁。 X

※ 処理内容は1と2に分割するのは間違いなのかもしれませんが法則性はありそうなのでとりあえず分離して一覧にしています。

実線形方程式

ルーチン 精度 行列
の型
処理
内容1
処理
内容2
DGBSV D GB SV ---
DGBSVX X
DGESV GE ---
DGESVX X
DGTSV GT ---
DGTSVX X
DPBSV PB ---
DPBSVX X
DPOSV PO ---
DPOSVX X
DPPSV PP ---
DPPSVX X
DPTSV PT ---
DPTSVX X
DSPSV SP ---
DSPSVX X
DSYSV SY ---
DSYSVX X

複素線形方程式

ルーチン 精度 行列
の型
処理
内容1
処理
内容2
ZGBSV Z GB SV ---
ZGBSVX X
ZGESV GE ---
ZGESVX X
ZGTSV GT ---
ZGTSVX X
ZHESV HE ---
ZHESVX X
ZHPSV HP ---
ZHPSVX X
ZPBSV PB ---
ZPBSVX X
ZPOSV PO ---
ZPOSVX X
ZPPSV PP ---
ZPPSVX X
ZPTSV PT ---
ZPTSVX X
ZSPSV SP ---
ZSPSVX X
ZSYSV SY ---
ZSYSVX X

実線形最小二乗

ルーチン 精度 行列
の型
処理
内容1
処理
内容2
DGELS D GE LS ---
DGELSD D
DGELSS S
DGELSY Y

複素線形最小二乗

ルーチン 精度 行列
の型
処理
内容1
処理
内容2
ZGELS Z GE LS ---
ZGELSD D
ZGELSS S
ZGELSY Y

実一般化線形最小二乗

ルーチン 精度 行列
の型
処理
内容1
処理
内容2
DGGLSE D GG LS E
DGGGLM GL M

複素一般化線形最小二乗

ルーチン 精度 行列
の型
処理
内容1
処理
内容2
ZGGLSE Z GG LS E
ZGGGLM GL M

実対称固有値問題

ルーチン 精度 行列
の型
処理
内容1
処理
内容2
DSBEV D SB EV ---
DSBEVD D
DSBEVX X
DSPEV SP ---
DSPEVD D
DSPEVX X
DSTEV ST ---
DSTEVD D
DSTEVR R
DSTEVX X
DSYEV SY ---
DSYEVD D
DSYEVR R
DSYEVX X

複素エルミート固有値問題

ルーチン 精度 行列
の型
処理
内容1
処理
内容2
ZHBEV Z HB EV ---
ZHBEVD D
ZHBEVX X
ZHEEV HE ---
ZHEEVD D
ZHEEVR R
ZHEEVX X
ZHPEV HP ---
ZHPEVD D
ZHPEVX X

実非対称固有値問題

ルーチン 精度 行列
の型
処理
内容1
処理
内容2
DGEEV D GE EV ---
DGEEVX X
DGEES ES ---
DGEESX X

複素非対称固有値問題

ルーチン 精度 行列
の型
処理
内容1
処理
内容2
ZGEEV Z GE EV ---
ZGEEVX X
ZGEES ES ---
ZGEESX X

実一般化対称固有値問題

ルーチン 精度 行列
の型
処理
内容1
処理
内容2
DSBGV D SB GV ---
DSBGVD D
DSBGVX X
DSPGV SP ---
DSPGVD D
DSPGVX X
DSYGV SY ---
DSYGVD D
DSYGVX X

複素一般化エルミート固有値問題

ルーチン 精度 行列
の型
処理
内容1
処理
内容2
ZHBGV Z HB GV ---
ZHBGVD D
ZHBGVX X
ZHEGV HE ---
ZHEGVD D
ZHEGVX X
ZHPGV HP ---
ZHPGVD D
ZHPGVX X

実一般化非対称固有値問題

ルーチン 精度 行列
の型
処理
内容1
処理
内容2
DGGEV D GG EV ---
DGGEVX X
DGGES ES ---
DGGESX X

複素一般化非対称固有値問題

ルーチン 精度 行列
の型
処理
内容1
処理
内容2
ZGGEV Z GG EV ---
ZGGEVX X
ZGGES ES ---
ZGGESX X

実特異値分解

ルーチン 精度 行列
の型
処理
内容1
処理
内容2
DGESDD D GE SD D
DGESVD SV D

複素特異値分解

ルーチン 精度 行列
の型
処理
内容1
処理
内容2
ZGESDD Z GE SD D
ZGESVD SV D

実一般化特異値分解

ルーチン 精度 行列
の型
処理
内容1
処理
内容2
DGGSVD D GG SV D

複素一般化特異値分解

ルーチン 精度 行列
の型
処理
内容1
処理
内容2
ZGGSVD Z GG SV D

各カラムの説明

各カラムの説明を書きます。

ここを参照に。

わからないものもあるのでそこは???にしてスルーしています。

精度

説明(英語) 説明(日本語)
S REAL 単精度の実数
D DOUBLE PRECISION 倍精度の実数
C COMPLEX 単精度の複素数
Z COMPLEX*16 or DOUBLE COMPLEX 倍精度の複素数

行列の型

説明
BD bidiagonal
DI diagonal
GB general band
GE general (i.e., unsymmetric, in some cases rectangular)
GG general matrices, generalized problem (i.e., a pair of general matrices)
GT general tridiagonal
HB (complex) Hermitian band
HE (complex) Hermitian
HG upper Hessenberg matrix, generalized problem (i.e a Hessenberg and a triangular matrix)
HP (complex) Hermitian, packed storage
HS upper Hessenberg
OP (real) orthogonal, packed storage
OR (real) orthogonal
PB symmetric or Hermitian positive definite band
PO symmetric or Hermitian positive definite
PP symmetric or Hermitian positive definite, packed storage
PT symmetric or Hermitian positive definite tridiagonal
SB (real) symmetric band
SP symmetric, packed storage
ST (real) symmetric tridiagonal
SY symmetric
TB triangular band
TG triangular matrices, generalized problem (i.e., a pair of triangular matrices)
TP triangular, packed storage
TR triangular (or in some cases quasi-triangular)
TZ trapezoidal
UN (complex) unitary
UP (complex) unitary, packed storage

処理内容1

説明
ES ???
EV ???
GL ???
GV ???
LS ???
SD ???
SV 線型方程式系の処理

処理内容2

説明
D ???
E ???
M ???
R ???
S ???
X ???
Y ???

おわり

線型代数学勉強しなおすので今後は LAPACK にお世話になりそう。

今後数学起点としたプログラミングスキルを伸ばしたいので。