sinh#
ベクトル要素の要素ごとの双曲線正弦を計算します。
説明#
sinh(a) 関数はベクトル要素の双曲線正弦を計算します。
データタイプ |
入力パラメーターのしきい値制限 |
|---|---|
半精度 |
|
単精度 |
|
倍精度 |
|
引数 |
結果 |
エラーコード |
|---|---|---|
+0 |
+0 |
|
-0 |
-0 |
|
a > overflow |
+\(\infty\) |
|
a < -overflow |
-\(\infty\) |
|
+\(\infty\) |
+\(\infty\) |
|
-\(\infty\) |
-\(\infty\) |
|
QNAN |
QNAN |
|
SNAN |
QNAN |
\(+i· \infty\) |
\(- \infty +i·QNAN\) |
\(QNAN+i·QNAN\) |
\(-0+i·QNAN\) |
\(+0+i·QNAN\) |
\(QNAN+i·QNAN\) |
\(+ \infty +i·QNAN\) |
\(QNAN+i·QNAN\) |
\(+i·Y\) |
\(- \infty\)·Cos(Y)+ i·\(\infty\)·Sin(Y) |
\(+ \infty ·CIS(Y)\) |
\(QNAN+i·QNAN\) |
||||
\(+i·0\) |
\(- \infty +i·0\) |
\(-0+i·0\) |
\(+0+i·0\) |
\(+ \infty +i·0\) |
\(QNAN+i·0\) |
||
\(-i·0\) |
\(- \infty -i·0\) |
\(-0-i·0\) |
\(+0-i·0\) |
\(+ \infty -i·0\) |
\(QNAN-i·0\) |
||
\(-i·Y\) |
\(- \infty\)·Cos(Y)+ i· infty ·Sin(Y)` |
\(+ \infty ·CIS(Y)\) |
\(QNAN+i·QNAN\) |
||||
\(-i· \infty\) |
\(- \infty +i·QNAN\) |
\(QNAN+i·QNAN\) |
\(-0+i·QNAN\) |
\(+0+i·QNAN\) |
\(QNAN+i·QNAN\) |
\(+ \infty +i·QNAN\) |
\(QNAN+i·QNAN\) |
\(+i·NAN\) |
\(- \infty +i·QNAN\) |
\(QNAN+i·QNAN\) |
\(-0+i·QNAN\) |
\(+0+i·QNAN\) |
\(QNAN+i·QNAN\) |
\(+ \infty +i·QNAN\) |
\(QNAN+i·QNAN\) |
注
複素
sinh(a)関数がオーバーフローすると、RE(a) と IM(a)) の両方が有限の非ゼロ数ですが、正確な結果の実数部または虚数部が非常に大きくなってターゲットの精度を満たしていない場合、VM エラーステータスをstatus::overflowに設定します。sinh(CONJ(a))=CONJ(sinh(a))sinh(-a)=-sinh(a)。
API#
構文#
バッファー API
namespace oneapi::mkl::vm {
sycl::event sinh(sycl::queue & exec_queue,
std::int64_t n,
sycl::buffer<T> & a,
sycl::buffer<T> & y,
oneapi::mkl::vm::mode mode = oneapi::mkl::vm::mode::not_defined,
oneapi::mkl::vm::error_handler<T> errhandler = {});
}namespace oneapi::mkl::vm {
sycl::event sinh(sycl::queue & exec_queue,
sycl::buffer<T> & a,
oneapi::mkl::slice sa,
sycl::buffer<T> & y,
oneapi::mkl::slice sy,
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 sinh(sycl::queue & exec_queue,
std::int64_t n,
T const * a,
T * y,
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 sinh(sycl::queue & exec_queue,
T const * a,
oneapi::mkl::slice sa,
T * y,
oneapi::mkl::slice sy,
std::vector<sycl::event> const & depends = {},
oneapi::mkl::vm::mode mode = oneapi::mkl::vm::mode::not_defined,
oneapi::mkl::vm::error_handler<T> errhandler = {});
}sinh は次の精度とデバイスをサポートしています。
T |
デバイスサポート |
|---|---|
|
GPU |
|
CPU |
|
CPU および GPU |
|
CPU および GPU |
入力パラメーター#
バッファー API
- exec_queue
ルーチンが実行されるキュー。
- n
計算する要素の数を指定します。
- a
入力ベクトルを含むバッファー。
- sa
aのスライスセレクター。oneMKL スライスタイプの説明については、データタイプを参照してください。- sy
yのスライスセレクター。oneMKL スライスタイプの説明については、データタイプを参照してください。- mode
この関数呼び出しのグローバル VM モード設定をオーバーライドします。指定可能な値とその説明については、set_mode 関数を参照してください。これはオプションのパラメーターです。デフォルト値は
mode::not_definedです。- errhandler
この関数呼び出しのローカルエラー処理モードを設定します。引数と説明については、create_error_handler 関数を参照してください。これはオプションのパラメーターです。ローカル・エラー・ハンドラーはデフォルトで無効になっています。
USM API
- exec_queue
ルーチンが実行されるキュー。
- n
計算する要素の数を指定します。
- a
入力ベクトルへのポインター。
- sa
aのスライスセレクター。oneMKL スライスタイプの説明については、データタイプを参照してください。- sy
yのスライスセレクター。oneMKL スライスタイプの説明については、データタイプを参照してください。- depends
依存イベントのベクトル (入力データの準備ができるまで待機)。これはオプションのパラメーターです。デフォルトは空のベクトルです。
- mode
この関数呼び出しのグローバル VM モード設定をオーバーライドします。指定可能な値とその説明については、set_mode 関数を参照してください。これはオプションのパラメーターです。デフォルト値は
mode::not_definedです。- errhandler
この関数呼び出しのローカルエラー処理モードを設定します。引数と説明については、create_error_handler 関数を参照してください。これはオプションのパラメーターです。ローカル・エラー・ハンドラーはデフォルトで無効になっています。
出力パラメーター#
バッファー API
- y
出力ベクトルを含むバッファー。
- 戻り値 (event)
計算終了イベント。
USM API
- y
出力ベクトルへのポインター。
- 戻り値 (event)
計算終了イベント。
例#
sinh の使用例は、oneMKL インストール・ディレクトリーの以下の場所にあります。
share/doc/mkl/examples/sycl/vml/source/vsinh.cpp