spr2#

対称パック行列のランク 2 更新を計算します。

説明

spr2 ルーチンは 2 つのスカラー - ベクトル - ベクトル積を計算し、それらを対称パック行列に加算します。操作はのように定義されています。

\[A \leftarrow alpha*x*y^T + alpha*y*x^T + A\]

説明:

  • alpha はスカラーです

  • An x n 対称行列であり、パック形式で提供されます

  • xy は長さ n のベクトルです

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

T

float

double

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

構文#

namespace oneapi::mkl::blas::column_major { 
    void spr2(sycl::queue &queue, 
              oneapi::mkl::uplo upper_lower, 
              std::int64_t n, 
              T alpha, 
              sycl::buffer<T,1> &x, 
              std::int64_t incx, 
              sycl::buffer<T,1> &y, 
              std::int64_t incy, 
              sycl::buffer<T,1> &a) 
}
namespace oneapi::mkl::blas::row_major { 
    void spr2(sycl::queue &queue, 
              oneapi::mkl::uplo upper_lower, 
              std::int64_t n, 
              T alpha, 
              sycl::buffer<T,1> &x, 
              std::int64_t incx, 
              sycl::buffer<T,1> &y, 
              std::int64_t incy, 
              sycl::buffer<T,1> &a) 
}

入力パラメーター#

queue

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

upper_lower

行列 A が上三角行列か下三角行列であるかを指定します。詳細はデータタイプを参照してください。

n

行列 A の行数と列数。最小値は 0 です。

alpha

行列 - ベクトル積のスケーリング係数。

x

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

incx

ベクトル x のストライド。ゼロであってはなりません。

y

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

incy

ベクトル y のストライド。ゼロであってはなりません。

a

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

出力パラメーター#

a

upper_lower=upper の場合は対称行列 A の更新された上三角部分を保持するバッファー、upper_lower=lower の場合は対称行列 A の更新された下三角部分を保持するバッファー。

spr2 (USM バージョン)#

構文#

namespace oneapi::mkl::blas::column_major { 
    sycl::event spr2(sycl::queue &queue, 
                     oneapi::mkl::uplo upper_lower, 
                     std::int64_t n, 
                     oneapi::mkl::value_or_pointer<T> alpha, 
                     const T *x, 
                     std::int64_t incx, 
                     const T *y, 
                     std::int64_t incy, 
                     T *a, 
                     const std::vector<sycl::event> &dependencies = {}) 
}
namespace oneapi::mkl::blas::row_major { 
    sycl::event spr2(sycl::queue &queue, 
                     oneapi::mkl::uplo upper_lower, 
                     std::int64_t n, 
                     oneapi::mkl::value_or_pointer<T> alpha, 
                     const T *x, 
                     std::int64_t incx, 
                     const T *y, 
                     std::int64_t incy, 
                     T *a, 
                     const std::vector<sycl::event> &dependencies = {}) 
}

入力パラメーター#

queue

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

upper_lower

行列 A が上三角行列か下三角行列であるかを指定します。詳細はデータタイプを参照してください。

n

行列 A の行数と列数。最小値は 0 です。

alpha

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

x

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

incx

ベクトル x のストライド。ゼロであってはなりません。

y

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

incy

ベクトル y のストライド。ゼロであってはなりません。

a

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

dependencies

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

出力パラメーター#

a

upper_lower=upper の場合は対称行列 A の更新された上三角部分へのポインター、upper_lower=lower の場合は対称行列 A の更新された下三角部分へのポインター。

戻り値#

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