sincos#

ベクトル要素の要素ごとの正弦と余弦を計算します。

説明#

sincos(a) 関数はベクトル要素の正弦と余弦を計算します。

単精度および倍精度の引数 abs(a[i]) 213 および abs(a[i]) 216 は、高速計算パスと呼ばれることに注意してください。これらは、VM が最高のパフォーマンスを提供する三角関数の引数です。VM の高精度 (HA) 関数または低精度 (LA) 関数の高速計算パスに属していない引数は使用してはなりません。あるいは、関数ドメイン全体で高速な VM 拡張パフォーマンス (EP) 関数を使用することもできます。ただし、これらの関数の精度は低くなります。

引数

Result 1

Result 2

エラーコード

+0

+0

+1

-0

-0

+1

+\(\infty\)

QNAN

QNAN

status::errdom

-\(\infty\)

QNAN

QNAN

status::errdom

QNAN

QNAN

QNAN

SNAN

QNAN

QNAN

API#

構文#

バッファー API

namespace oneapi::mkl::vm { 

sycl::event sincos(sycl::queue & exec_queue, 
      std::int64_t n, 
      sycl::buffer<T> & a, 
      sycl::buffer<T> & y, 
      sycl::buffer<T> & z, 
      oneapi::mkl::vm::mode mode = oneapi::mkl::vm::mode::not_defined, 
      oneapi::mkl::vm::error_handler<T> errhandler = {}); 

}
namespace oneapi::mkl::vm { 

sycl::event sincos(sycl::queue & exec_queue, 
      sycl::buffer<T> & a, 
      oneapi::mkl::slice sa, 
      sycl::buffer<T> & y, 
      oneapi::mkl::slice sy, 
      sycl::buffer<T> & z, oneapi::mkl::slice sz, 
      oneapi::mkl::vm::mode mode = oneapi::mkl::vm::mode::not_defined, 
      oneapi::mkl::vm::error_handler<T> errhandler = {}); 

}

USM API

namespace oneapi::mkl::vm { 

sycl::event sincos(sycl::queue & exec_queue, 
      std::int64_t n, 
      T const * a, 
      T * y, 
      T * z, 
      std::vector<sycl::event> const & depends = {}, 
      oneapi::mkl::vm::mode mode = oneapi::mkl::vm::mode::not_defined, 
      oneapi::mkl::vm::error_handler<T> errhandler = {}); 

}
namespace oneapi::mkl::vm { 

sycl::event sincos(sycl::queue & exec_queue, 
      T const * a, 
      oneapi::mkl::slice sa, 
      T * y, 
      oneapi::mkl::slice sy, 
      T * z, 
      oneapi::mkl::slice sz, 
      std::vector<sycl::event> const & depends = {}, 
      oneapi::mkl::vm::mode mode = oneapi::mkl::vm::mode::not_defined, 
      oneapi::mkl::vm::error_handler<T> errhandler = {}); 

}

sincos は次の精度とデバイスをサポートしています。

T

デバイスサポート

sycl::half

GPU

_Float16

CPU

float

CPU および GPU

double

CPU および GPU

入力パラメーター#

バッファー API

exec_queue

ルーチンが実行されるキュー。

n

計算する要素の数を指定します。

a

入力ベクトルを含むバッファー。

sa

a のスライスセレクター。oneMKL スライスタイプの説明については、データタイプを参照してください。

sy

y のスライスセレクター。oneMKL スライスタイプの説明については、データタイプを参照してください。

sz

z のスライスセレクター。oneMKL スライスタイプの説明については、データタイプを参照してください。

mode

この関数呼び出しのグローバル VM モード設定をオーバーライドします。指定可能な値とその説明については、set_mode 関数を参照してください。これはオプションのパラメーターです。デフォルト値は mode::not_defined です。

errhandler

この関数呼び出しのローカルエラー処理モードを設定します。引数と説明については、create_error_handler 関数を参照してください。これはオプションのパラメーターです。ローカル・エラー・ハンドラーはデフォルトで無効になっています。

USM API

exec_queue

ルーチンが実行されるキュー。

n

計算する要素の数を指定します。

a

入力ベクトルへのポインター。

sa

a のスライスセレクター。oneMKL スライスタイプの説明については、データタイプを参照してください。

sy

y のスライスセレクター。oneMKL スライスタイプの説明については、データタイプを参照してください。

sz

z のスライスセレクター。oneMKL スライスタイプの説明については、データタイプを参照してください。

depends

依存イベントのベクトル (入力データの準備ができるまで待機)。これはオプションのパラメーターです。デフォルトは空のベクトルです。

mode

この関数呼び出しのグローバル VM モード設定をオーバーライドします。指定可能な値とその説明については、set_mode 関数を参照してください。これはオプションのパラメーターです。デフォルト値は mode::not_defined です。

errhandler

この関数呼び出しのローカルエラー処理モードを設定します。引数と説明については、create_error_handler 関数を参照してください。これはオプションのパラメーターです。ローカル・エラー・ハンドラーはデフォルトで無効になっています。

出力パラメーター#

バッファー API

y

出力正弦ベクトルを格納するバッファー。

z

出力余弦ベクトルを格納するバッファー。

戻り値 (event)

計算終了イベント

USM API

y

出力正弦ベクトルへのポインター。

z

出力余弦ベクトルへのポインター。

戻り値 (event)

計算終了イベント

#

sincos の使用例は、oneMKL インストール・ディレクトリーの以下の場所にあります。

share/doc/mkl/examples/sycl/vml/source/vsincos.cpp