orgbr (USM バージョン)#
gebrd (USM バージョン) によって決定された実直交行行列 Q または PT を生成します。このルーチンは、oneapi::mkl::lapack 名前空間に属します。
説明#
このルーチンは、gebrd (USM バージョン) 関数によって形成された直交行列 Q および PT の全体または一部を生成します。有効な引数の組み合わせはすべて入力パラメーターに記述されています。ほとんどの場合、以下が必要です:
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 {
sycl::event orgbr(sycl::queue &queue,
mkl::generate gen,
int64_t m,
int64_t n,
int64_t k,
T *a,
int64_t lda,
const T *tau,
T *scratchpad,
int64_t scratchpad_size,
const std::vector<sycl::event> &events = {})
}orgbr (USM バージョン) は、次の精度とデバイスをサポートします。
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 (USM バージョン) によって縮小されます。gen
= generate::pの場合、元のk行 n 列の行列の行数が gebrd (USM バージョン) によって縮小されます。- a
gebrd (USM バージョン) によって返されるメモリーへポインター。
- lda
a の先頭次元。
- tau
gen
= generate::qの場合はサイズmin (m,k)、gen= generate::pの場合はサイズmin(n,k)のメモリーへのポインター。gebrd (USM バージョン) によって配列tauqまたはtaupに返される、基本鏡映子のスカラー係数。- scratchpad
ルーチンが中間結果を保存するスクラッチパッド・メモリーへのポインター。
- scratchpad_size
Tタイプの浮動小数点要素の数であるスクラッチパッド・メモリーのサイズ。サイズは、orgbr_scratchpad_size 関数が返す値以下であってはなりません。- events
計算を開始する前に待機するイベントのリスト。デフォルトでは空のリストになります。
出力パラメーター#
- a
gen、m、n で指定された、m 行 m 列の直交行列
QまたはPT の先頭の n 列 (またはその先頭の行または列) で上書きされます。
例外#
例外 |
説明 |
|---|---|
|
この例外は、計算中に問題が発生した場合にスローされます。例外オブジェクトの info() メソッドを使用して、問題の情報コードを取得できます。
|
戻り値#
計算が完了したことを確認するために待機する出力イベント。