rotg#
ギブンズ回転のパラメーターを計算します。
説明
点の直交座標 (a, b) が与えられると、rotg ルーチンは、ギブンズ回転に関連付けられたパラメーター c、s、r、および z を返します。パラメーター c と s は次のようなユニタリー行列を定義します。
\[\begin{split}\left[ \begin{array}{ccc} c & s \\ -s & c \end{array} \right] \cdot \left[ \begin{array}{ccc} a \\ b \end{array} \right] = \left[ \begin{array}{ccc} r \\ 0 \end{array} \right]\end{split}\]
パラメーター z は、|a| > |b| の場合に z が s となり、それ以外は c が 0 でない場合 z が 1/c となり、それ以外の場合は z が 1 となるように定義されます。
rotg は次の精度をサポートします。
T |
Tc |
|---|---|
|
|
|
|
|
|
|
|
rotg (バッファーバージョン)#
構文#
namespace oneapi::mkl::blas::column_major {
void rotg(sycl::queue &queue,
sycl::buffer<T,1> &a,
sycl::buffer<T,1> &b,
sycl::buffer<Tc,1> &c,
sycl::buffer<T,1> &s)
}namespace oneapi::mkl::blas::row_major {
void rotg(sycl::queue &queue,
sycl::buffer<T,1> &a,
sycl::buffer<T,1> &b,
sycl::buffer<Tc,1> &c,
sycl::buffer<T,1> &s)
}入力パラメーター#
- queue
ルーチンを実行するキュー
- a
点の
x座標を保持するバッファー。- b
点の
y座標を保持するバッファー。
出力パラメーター#
- a
ギブンズ回転に関連付けられたパラメーター
rを保持するバッファー。- b
ギブンズ回転に関連付けられたパラメーター
zを保持するバッファー。- c
ギブンズ回転に関連付けられたパラメーター
cを保持するバッファー。- s
ギブンズ回転に関連付けられたパラメーター
sを保持するバッファー。
rotg (USM バージョン)#
構文#
namespace oneapi::mkl::blas::column_major {
sycl::event rotg(sycl::queue &queue,
T *a,
T *b,
Tc *c,
T *s,
const std::vector<sycl::event> &dependencies = {})
}namespace oneapi::mkl::blas::row_major {
sycl::event rotg(sycl::queue &queue,
T *a,
T *b,
Tc *c,
T *s,
const std::vector<sycl::event> &dependencies = {})
}入力パラメーター#
- queue
ルーチンを実行するキュー
- a
点の
x座標へのポインター。- b
点の
y座標へのポインター。- dependencies
計算を開始する前に待機するイベントのリスト (存在する場合)。省略した場合、依存関係はデフォルトでなくなります。
出力パラメーター#
- a
ギブンズ回転に関連付けられたパラメーター
rへのポインター。- b
ギブンズ回転に関連付けられたパラメーター
zへのポインター。- c
ギブンズ回転に関連付けられたパラメーター
cへのポインター。- s
ギブンズ回転に関連付けられたパラメーター
sへのポインター。
戻り値#
計算が完了したことを確認するために待機する出力イベント。