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

◆ zgeqp3()

void zgeqp3 ( int  m,
int  n,
int  lda,
doublecomplex  a[],
int  jpvt[],
doublecomplex  tau[],
doublecomplex  work[],
int  lwork,
double  rwork[],
int *  info 
)

QR分解 (ピボット選択付き) (複素行列)

目的
本ルーチンは行列AのQR分解をピボット選択付きで計算する.
A * P = Q * R
計算にはレベル3 BLASを用いる.
引数
[in]m行列 A の行数. (m >= 0)
[in]n行列 A の列数. (n >= 0)
[in]lda二次元配列a[][]の整合寸法. (lda >= max(1, m))
[in,out]a[][]配列 a[la][lda] (la >= n)
[in] m×n 行列 A.
[out] 上三角部分にmin(m, n)×n上台形行列Rが入る. 対角下の要素は, 配列tau[]と合わせて, min(m, n)個の基本鏡映変換の積としてユニタリ行列Qを表す.
[in,out]jpvt[]配列 jpvt[ljpvt] (ljpvt >= n)
[in] jpvt[j-1] != 0の場合, Aの第j列はA*Pの前(先頭列)に入れ替えられる. jpvt[j-1] = 0の場合, Aの第j列はフリーな列である.
[out] jpvt[j-1] = kの場合, A*Pの第j列は第k列であったことを示す.
[out]tau[]配列 tau[ltau] (ltau >= min(m, n))
基本鏡映変換のスカラー因子.
[out]work[]配列 work[lwork]
作業領域.
info = 0の場合, work[0] にlworkの最適値を返す.
[in]lwork配列work[]のサイズ. (lwork >= n + 1)
パフォーマンスをよくするためには lwork >= (n + 1)*nb とせよ. ただし, nbは最適ブロックサイズである.
lwork = -1 の場合, 作業領域サイズの問い合わせとみなし, 最適サイズを求める計算だけを行い, work[0]にその値を返す.
[out]rwork[]配列 rwork[lrwork] (lrwork >= 2*n)
作業領域.
[out]info= 0: 正常終了
= -1: 入力パラメータ m の誤り (m < 0)
= -2: 入力パラメータ n の誤り (n < 0)
= -3: 入力パラメータ lda の誤り (lda < max(1, m))
= -8: 入力パラメータ lwork の誤り (lworkが小さすぎる)
出典
LAPACK