rot#

平面上の点の回転を実行します。

説明#

n 要素の 2 つのベクトル xy が与えられると、rot ルーチンは 4 つのスカラー - ベクトル積を計算し、これらの 2 つのスカラー - ベクトル積の合計で入力ベクトルを更新します。操作はのように定義されています。

\[\begin{split}\left[\begin{array}{c} x\\y \end{array}\right] \leftarrow \left[\begin{array}{c} \phantom{-}c*x + s*y\\ -s*x + c*y \end{array}\right]\end{split}\]

s が複素数タイプの場合、演算は次のように定義されます。

\[\begin{split}\left[\begin{array}{c} x\\y \end{array}\right] \leftarrow \left[\begin{array}{c} \phantom{-}c*x + s*y\\ -conj(s)*x + c*y \end{array}\right]\end{split}\]

rot は次の精度をサポートします。

T

Tc

Ts

sycl::half

sycl::half

sycl::half

oneapi::mkl::bfloat16

oneapi::mkl::bfloat16

oneapi::mkl::bfloat16

float

float

float

double

double

double

std::complex<float>

float

std::complex<float>

std::complex<double>

double

std::complex<double>

std::complex<float>

float

float

std::complex<double>

double

double

rot (バッファーバージョン)#

構文#

namespace oneapi::mkl::blas::column_major { 
    void rot(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, 
             Tc c, 
             Ts s) 
}
namespace oneapi::mkl::blas::row_major { 
    void rot(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, 
             Tc c, 
             Ts s) 
}

入力パラメーター#

queue

ルーチンを実行するキュー。

n

ベクトル x 内の要素数。

x

入力ベクトル x を保持するバッファー。バッファーのサイズは (1 + (n - 1)*abs(incx) 以上である必要があります。行列ストレージを参照してください。

incx

ベクトル x のストライド。

y

入力ベクトル y を保持するバッファー。バッファーのサイズは (1 + (n - 1)*abs(incy) 以上である必要があります。行列ストレージを参照してください。

incy

ベクトル y のストライド。

c

スケーリング係数。

s

スケーリング係数。

出力パラメーター#

x

更新されたベクトル x を保持するバッファー。

y

更新されたベクトル y を保持するバッファー。

rot (USM バージョン)#

構文#

namespace oneapi::mkl::blas::column_major { 
    sycl::event rot(sycl::queue &queue, 
                    std::int64_t n, 
                    T *x, 
                    std::int64_t incx, 
                    T *y, 
                    std::int64_t incy, 
                    oneapi::mkl::value_or_pointer<Tc> c, 
                    oneapi::mkl::value_or_pointer<Ts> s, 
                    const std::vector<sycl::event> &dependencies = {}) 
}
namespace oneapi::mkl::blas::row_major { 
    sycl::event rot(sycl::queue &queue, 
                    std::int64_t n, 
                    T *x, 
                    std::int64_t incx, 
                    T *y, 
                    std::int64_t incy, 
                    oneapi::mkl::value_or_pointer<Tc> c, 
                    oneapi::mkl::value_or_pointer<Ts> s, 
                    const std::vector<sycl::event> &dependencies = {}) 
}

入力パラメーター#

queue

ルーチンを実行するキュー。

n

ベクトル x 内の要素数。

x

入力ベクトル x へのポインター。入力ベクトル x を保持する配列のサイズは、(1 + (n - 1)*abs(incx)) 以上である必要があります。行列ストレージを参照してください。

incx

ベクトル x のストライド。

y

入力ベクトル y へのポインター。入力ベクトル y を保持する配列のサイズは、(1 + (n - 1)*abs(incy)) 以上である必要があります。行列ストレージを参照してください。

incy

ベクトル y のストライド。

c

スケーリング係数。value_or_pointer データタイプの詳細については、スカラー引数を参照してください。

s

スケーリング係数。value_or_pointer データタイプの詳細については、スカラー引数を参照してください。

dependencies

計算を開始する前に待機するイベントのリスト (存在する場合)。省略した場合、依存関係はデフォルトでなくなります。

出力パラメーター#

x

更新されたベクトル x へのポインター。

y

更新されたベクトル y へのポインター。

戻り値#

計算が完了したことを確認するために待機する出力イベント。