|
|
◆ Zupmtr()
| Sub Zupmtr |
( |
Side As |
String, |
|
|
Uplo As |
String, |
|
|
Trans As |
String, |
|
|
M As |
Long, |
|
|
N As |
Long, |
|
|
Ap() As |
Complex, |
|
|
Tau() As |
Complex, |
|
|
C() As |
Complex, |
|
|
Info As |
Long |
|
) |
| |
三重対角形への変換行列の乗算 (エルミート行列) (圧縮形式)
- 目的
- 本ルーチンは M x N 一般行列 C に以下の演算を行い上書きする.
Side = "L" Side = "R"
Trans = "N": Q * C C * Q
Trans = "T": Q^H * C C * Q^H
ただし, Q は Nq 次のユニタリ行列である(Nq = M (Side = "L" の場合), Nq = N (Side = "R" の場合)). Q は Zhptrd が返す Nq - 1 個の基本鏡映の積で定義される. Uplo = "U" の場合, Q = H(Nq-1) . . . H(2) H(1),
Uplo = "L" の場合, Q = H(1) H(2) . . . H(Nq-1).
- 引数
-
| [in] | Side | = "L": Q または Q^H を左から適用する.
= "R": Q または Q^H を右から適用する. |
| [in] | Uplo | = "U": 圧縮形式の上三角部分が Zhptrd の前回呼び出しで使われた.
= "L": 圧縮形式の下三角部分が Zhptrd の前回呼び出しで使われた. |
| [in] | Trans | = "N": 転置しない. Q を適用する.
= "T": 転置する. Q^H を適用する. |
| [in] | M | 行列 C の行数. (M >= 0) (M = 0 の場合, 処理を行わずに戻る) |
| [in] | N | 行列 C の列数. (N >= 0) (N = 0 の場合, 処理を行わずに戻る) |
| [in] | Ap() | 配列 Ap(LAp - 1) (LAp >= M(M + 1)/2 (Side = "L" の場合), LAp >= N(N + 1)/2 (Side = "R" の場合))
Zhptrd が返す基本鏡映を定義するベクトル. Ap() は変更されるが終了時には元に戻される. |
| [in] | Tau() | 配列 Tau(LTau - 1) (LTau >= M - 1 (Side = "L" の場合), LTau >= N - 1 (Side = "R" の場合))
Tau(i) は Zhptrd により返された基本鏡映 H(i) のスカラー係数でなければならない. |
| [in,out] | C() | 配列 C(LC1 - 1, LC2 - 1) (LC1 >= M, LC2 >= N)
[in] M x N 行列 C.
[out] C は Q*C, Q^H*C, C*Q^H または C*Q により上書きされる. |
| [out] | Info | = 0: 正常終了.
= -1: パラメータ Side の誤り. (Side <> "L" および "R")
= -2: パラメータ Uplo の誤り (Uplo != "U" および "L")
= -3: パラメータ Trans の誤り. (Trans <> "T" および "N")
= -4: パラメータ M の誤り. (M < 0)
= -5: パラメータ N の誤り. (N < 0)
= -6: パラメータ Ap() の誤り.
= -7: パラメータ Tau() の誤り.
= -8: パラメータ C() の誤り. |
- 出典
- LAPACK
|