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

◆ zungqr()

void zungqr ( int  m,
int  n,
int  k,
int  lda,
doublecomplex  a[],
doublecomplex  tau[],
doublecomplex  work[],
int  lwork,
int *  info 
)

QR分解の行列Qの生成 (複素行列)

目的
本ルーチンは直交する列を持つm×n複素行列Qを生成する. 次数mのk個の基本鏡映変換(zgeqrfが返したもの)の積の最初のn列としてQが定義される.
Q = H(1) H(2) . . . H(k)
引数
[in]m行列 A の行数. (m >= 0)
[in]n行列 A の列数. (m >= n >= 0) (n = 0 の場合, 処理を行わずに戻る)
[in]k積が行列Qを定義する基本鏡映変換の数. (n >= k >= 0)
[in]lda二次元配列a[][]の整合寸法. (lda >= max(1, m))
[in,out]a[][]配列 a[la][lda] (la >= n)
[in] 第i列に基本鏡映変換 H(i) (i = 1, 2, ..., k) を定義するベクトルを入れる. これは, zgeqrfが配列引数a[][]の最初のk列に返したものである.
[out] m×n 行列 Q.
[in]tau配列 tau[ltau] (ltau >= k)
zgeqrfが返した鏡映変換のスカラー因子 H(i).
[out]work[]配列 work[lwork]
作業領域.
info = 0の場合, work[0] にlworkの最適値を返す
[in]lwork配列work[]のサイズ. (lwork >= max(1, n))
パフォーマンスをよくするためには lwork >= n*nb とせよ. ただし, nbは最適ブロックサイズである.
lwork = -1 の場合, 作業領域サイズの問い合わせとみなし, 最適サイズを求める計算だけを行い, work[0]にその値を返す.
[out]info= 0: 正常終了
= -1: 入力パラメータ m の誤り (m < 0)
= -2: 入力パラメータ n の誤り (n < 0 または n > m)
= -3: 入力パラメータ k の誤り (k < 0 または k > n)
= -4: 入力パラメータ lda の誤り (lda < max(1, m))
= -8: 入力パラメータ lwork の誤り (lworkが小さすぎる)
出典
LAPACK