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

◆ dormtr()

void dormtr ( char  side,
char  uplo,
char  trans,
int  m,
int  n,
int  lda,
double  a[],
double  tau[],
int  ldc,
double  c[],
double  work[],
int  lwork,
int *  info 
)

三重対角形への変換行列の乗算 (対称行列)

目的
本ルーチンは m x n 一般行列 C に以下の演算を行い上書きする.
side = 'L' side = 'R'
trans = 'N': Q * C C * Q
trans = 'T': Q^T * C C * Q^T
ただし, Q は nq 次の実直交行列である(nq = m (side = 'L' の場合), nq = n (side = 'R' の場合)). Q は dsytrd が返す 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^T を左から適用する.
= 'R': Q または Q^T を右から適用する.
[in]uplo= 'U': a[][] の上三角部分に dsytrd から基本鏡映を格納する.
= 'L': a[][] の下三角部分に dsytrd から基本鏡映を格納する.
[in]trans= 'N': 転置しない. Q を適用する.
= 'T': 転置する. Q^T を適用する.
[in]m行列 C の行数. (m >= 0) (m = 0 の場合, 処理を行わずに戻る)
[in]n行列 C の列数. (n >= 0) (n = 0 の場合, 処理を行わずに戻る)
[in]lda二次元配列 a[][] の整合寸法. (lda >= max(1, m) (side = 'L' の場合), lda >= max(1, n) (side = 'R' の場合))
[in]a[][]配列 a[la][lda] (la >= m (side = 'L' の場合), la >= n (side = 'R' の場合))
dsytrd が返す基本鏡映を定義するベクトル.
[in]tau[]配列 tau[ltau] (ltau >= m - 1 (side = 'L' の場合), ltau >= n - 1 (side = 'R' の場合))
tau[i] は dsytrd により返された基本鏡映 H(i) のスカラー係数でなければならない.
[in]ldc二次元配列c[][]の整合寸法. (ldc >= max(1, m))
[in,out]c[][]配列 c[lc][ldc] (lc >= n)
[in] m x n 行列 C.
[out] C は Q*C, Q^T*C, C*Q^T または C*Q により上書きされる.
[out]work[]配列 work[lwork]
作業領域.
info = 0の場合, work[0]にlworkの最適値を返す.
[in]lwork配列 work[]のサイズ. (lwork >= max(1, n) (side = 'L' の場合), lwork >= max(1, m) (side = 'R' の場合))
最適パフォーマンスのためには lwork >= n*nb (side = 'L' の場合), lwork >= m*nb (side = 'R' の場合) とせよ. ただし, nbは最適ブロックサイズである.
lwork = -1 の場合, 作業領域サイズの問い合わせとみなし, work[] の最適サイズを求める計算だけを行い, work[0] にその値を返す.
[out]info= 0: 正常終了.
= -1: 入力パラメータ side の誤り. (side != 'L' および 'R')
= -2: 入力パラメータ uplo の誤り. (uplo != 'U' および 'L')
= -3: 入力パラメータ trans の誤り. (trans != 'N' および 'T')
= -4: 入力パラメータ m の誤り. (m < 0)
= -5: 入力パラメータ n の誤り. (n < 0)
= -6: 入力パラメータ lda の誤り. (lda < max(1, m) (side = 'L' の場合), lda < max(1, n) (side = 'R' の場合))
= -9: 入力パラメータ ldc の誤り. (ldc < max(1, m))
= -12: 入力パラメータ lwork の誤り. (lwork が小さすぎる)
出典
LAPACK