orgbr#
gebrd によって決定された実直交行行列 Q または PT を生成します。このルーチンは、oneapi::mkl::lapack 名前空間に属します。
説明#
このルーチンは、gebrd ルーチンによって形成された直交行列 Q および PT の全体または一部を生成します。sgebrd/dgebrd の呼び出しの後にこのルーチンを使用します。有効な引数の組み合わせはすべて入力パラメーターに記述されています。ほとんどの場合、以下が必要です:
m 行 m 列の行列 Q 全体を計算するには:
orgbr(queue, generate::q, m, m, n, a, ...)(配列 a には少なくとも m 列が必要であることに注意してください)。
m > n の場合、Q の先頭の n 列を形成するには:
orgbr(queue, generate::q, m, n, n, a, ...)n 行 n 列の行列 PT 全体を計算するには:
orgbr(queue, generate::p, n, n, m, a, ...)(配列 a には少なくとも n 行が必要であることに注意してください)。
m < n の場合に PT の先頭の m 行を形成するには:
orgbr(queue, generate::p, m, n, m, a, ...)API#
構文#
namespace oneapi::mkl::lapack {
void orgbr(sycl::queue &queue,
mkl::generate gen,
int64_t m,
int64_t n,
int64_t k,
sycl::buffer<T> &a,
int64_t lda,
sycl::buffer<T> &tau,
sycl::buffer<T> &scratchpad,
int64_t scratchpad_size)
}orgbr は次の精度とデバイスをサポートしています。
T |
デバイスサポート |
|---|---|
|
CPU |
|
CPU |
入力パラメーター#
- queue
計算が実行されるデバイスキュー。
- gen
generate::qまたはgenerate::pである必要があります。gen
= generate::qの場合、ルーチンは行列Qを生成します。gen
= generate::pの場合、ルーチンは行列Pを生成します。- m
戻される行列
QまたはPT の行数(0 ≤ m)。gen
= generate::qの場合、m ≥ n ≥ min(m, k)となります。gen
= generate::pの場合、n ≥ m ≥ min(n, k)となります。- n
戻される行列
QまたはPT の行数(0 ≤ n)。制約については m を参照してください。- k
gen
= generate::qの場合、元のm行 k 列の行列の列数が gebrd によって縮小されます。gen
= generate::pの場合、元のk行 n 列の行列の行数は gebrd によって縮小されます。- a
gebrd が返すメモリーを保持するバッファー。
- lda
a の先頭次元。
- tau
gen
= generate::qの場合はサイズmin (m,k)、gen= generate::pの場合はサイズmin(n,k)のメモリーへのポインター。gebrd によって配列 tauq または taup に返される、基本鏡映子のスカラー係数。- scratchpad
ルーチンが中間結果を維持するスクラッチパッド・メモリーを保持するバッファー。
- scratchpad_size
Tタイプの浮動小数点要素の数であるスクラッチパッド・メモリーのサイズ。サイズは、orgbr_scratchpad_size 関数が返す値以下であってはなりません。
出力パラメーター#
- a
gen、m、n で指定された、m 行 m 列の直交行列
QまたはPT の先頭の n 列 (またはその先頭の行または列) で上書きされます。
例外#
例外 |
説明 |
|---|---|
|
この例外は、計算中に問題が発生した場合にスローされます。例外オブジェクトの info() メソッドを使用して、問題の情報コードを取得できます。
|