rotm#
平面上の点の修正ギブンズ回転を実行します。
説明#
2 つのベクトル x と y が与えられた場合、これらのベクトルの要素は次のように置き換えられます。
i は 1 から n までで、H は修正されたギブンズ変換行列です。
rotm は次の精度をサポートします。
T |
|---|
|
|
rotm (バッファーバージョン)#
構文#
namespace oneapi::mkl::blas::column_major {
void rotm(sycl::queue &queue,
std::int64_t n,
sycl::buffer<T,1> &x,
std::int64_t incx,
sycl::buffer<T,1> &y,
std::int64_t incy,
sycl::buffer<T,1> ¶m)
}namespace oneapi::mkl::blas::row_major {
void rotm(sycl::queue &queue,
std::int64_t n,
sycl::buffer<T,1> &x,
std::int64_t incx,
sycl::buffer<T,1> &y,
std::int64_t incy,
sycl::buffer<T,1> ¶m)
}入力パラメーター#
- queue
ルーチンを実行するキュー。
- n
ベクトル
x内の要素数。- x
入力ベクトル
xを保持するバッファー。バッファーのサイズは (1 + (n- 1)*abs(incx) 以上である必要があります。行列ストレージを参照してください。- incx
ベクトル
xのストライド。- y
入力ベクトル
yを保持するバッファー。バッファーのサイズは (1 + (n- 1)*abs(incy) 以上である必要があります。行列ストレージを参照してください。- incy
ベクトル
yのストライド。- param
サイズ 5 の配列を保持するバッファー。
param配列の要素は次のとおりです:param[0]にはスイッチ、flagが含まれます。他の配列要素param[1-4]には、修正ギブンズ変換行列Hの成分 h11、h21、h12、および h22 がそれぞれ格納されます。flagの値に応じて、Hのコンポーネントは次のように設定されます。flag = -1.0:\[\begin{split}H = \left[ \begin{array}{ccc} h_{11} & h_{12} \\ h_{21} & h_{22} \end{array} \right]\end{split}\]flag = 0.0:\[\begin{split}H = \left[ \begin{array}{ccc} 1.0 & h_{12} \\ h_{21} & 1.0 \end{array} \right]\end{split}\]flag = 1.0:\[\begin{split}H = \left[ \begin{array}{ccc} h_{11} & 1.0 \\ -1.0 & h_{22} \end{array} \right]\end{split}\]flag = -2.0:\[\begin{split}H = \left[ \begin{array}{ccc} 1.0 & 0.0 \\ 0.0 & 1.0 \end{array} \right]\end{split}\]最後の 3 つのケースでは、
flagの値に基づいて 1.0、-1.0、0.0 の行列エントリーが想定されており、paramベクトルで設定する必要はありません。
出力パラメーター#
- x
更新されたベクトル
xを保持するバッファー。- y
更新されたベクトル
yを保持するバッファー。
rotm (USM バージョン)#
構文#
namespace oneapi::mkl::blas::column_major {
sycl::event rotm(sycl::queue &queue,
std::int64_t n,
T *x,
std::int64_t incx,
T *y,
std::int64_t incy,
const T *param,
const std::vector<sycl::event> &dependencies = {})
}namespace oneapi::mkl::blas::row_major {
sycl::event rotm(sycl::queue &queue,
std::int64_t n,
T *x,
std::int64_t incx,
T *y,
std::int64_t incy,
const T *param,
const std::vector<sycl::event> &dependencies = {})
}入力パラメーター#
- queue
ルーチンを実行するキュー。
- n
ベクトル
x内の要素数。- x
入力ベクトル
xへのポインター。ベクトルxを保持する配列のサイズは、(1 + (n- 1)*abs(incx)) 以上である必要があります。行列ストレージを参照してください。- incx
ベクトル
xのストライド。- yparam
入力ベクトル
yへのポインター。ベクトルyを保持する配列のサイズは、(1 + (n- 1)*abs(incy)) 以上である必要があります。行列ストレージを参照してください。- incy
ベクトル
yのストライド。- param
サイズ 5 の配列へのポインター。
param配列の要素は次のとおりです:param[0]にはスイッチ、flagが含まれます。他の配列要素param[1-4]には、修正ギブンズ変換行列Hの成分 h11、h21、h12、および h22 がそれぞれ格納されます。flagの値に応じて、Hのコンポーネントは次のように設定されます。flag = -1.0:\[\begin{split}H = \left[ \begin{array}{ccc} h_{11} & h_{12} \\ h_{21} & h_{22} \end{array} \right]\end{split}\]flag = 0.0:\[\begin{split}H = \left[ \begin{array}{ccc} 1.0 & h_{12} \\ h_{21} & 1.0 \end{array} \right]\end{split}\]flag = 1.0:\[\begin{split}H = \left[ \begin{array}{ccc} h_{11} & 1.0 \\ -1.0 & h_{22} \end{array} \right]\end{split}\]flag = -2.0:\[\begin{split}H = \left[ \begin{array}{ccc} 1.0 & 0.0 \\ 0.0 & 1.0 \end{array} \right]\end{split}\]最後の 3 つのケースでは、
flagの値に基づいて 1.0、-1.0、0.0 の行列エントリーが想定されており、paramベクトルで設定する必要はありません。- dependencies
計算を開始する前に待機するイベントのリスト (存在する場合)。省略した場合、依存関係はデフォルトでなくなります。
出力パラメーター#
- x
更新された配列
xへのポインター。- y
更新された配列
yへのポインター。
戻り値#
計算が完了したことを確認するために待機する出力イベント。