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