tanh#

ベクトル要素の要素ごとの双曲線正接を計算します。

説明#

tanh(a) 関数はベクトル要素の双曲線正接を計算します。

引数

結果

エラーコード

+0

+0

-0

-0

\(+ \infty\)

+1

\(- \infty\)

-1

QNAN

QNAN

SNAN

QNAN

\(+i· \infty\)

\(-1+i·0\)

\(QNAN+i·QNAN\)

\(QNAN+i·QNAN\)

\(QNAN+i·QNAN\)

\(QNAN+i·QNAN\)

\(+1+i·0\)

\(QNAN+i·QNAN\)

\(+i·Y\)

\(-1+i·0·Tan(Y)\)

\(+1+i·0·Tan(Y)\)

\(QNAN+i·QNAN\)

\(+i·0\)

\(-1+i·0\)

\(-0+i·0\)

\(+0+i·0\)

\(+1+i·0\)

\(QNAN+i·0\)

\(-i·0\)

\(-1-i·0\)

\(-0-i·0\)

\(+0-i·0\)

\(+1-i·0\)

\(QNAN-i·0\)

\(-i·Y\)

\(-1+i·0·Tan(Y)\)

\(+1+i·0·Tan(Y)\)

\(QNAN+i·QNAN\)

\(-i· \infty\)

\(-1-i·0\)

\(QNAN+i·QNAN\)

\(QNAN+i·QNAN\)

\(QNAN+i·QNAN\)

\(QNAN+i·QNAN\)

\(+1-i·0\)

\(QNAN+i·QNAN\)

\(+i·NAN\)

\(-1+i·0\)

\(QNAN+i·QNAN\)

\(QNAN+i·QNAN\)

\(QNAN+i·QNAN\)

\(QNAN+i·QNAN\)

\(+1+i·0\)

\(QNAN+i·QNAN\)

  • tanh(CONJ(a))=CONJ(tanh(a))

  • tanh(-a)=-tanh(a)

tanh(a) 関数はエラーを生成しません。

API#

構文#

バッファー API

namespace oneapi::mkl::vm { 

sycl::event tanh(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); 

}
namespace oneapi::mkl::vm { 

sycl::event tanh(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); 

}

USM API

namespace oneapi::mkl::vm { 

sycl::event tanh(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); 

}
namespace oneapi::mkl::vm { 

sycl::event tanh(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); 

}

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

T

デバイスサポート

sycl::half

GPU

_Float16

CPU

float

CPU および GPU

double

CPU および GPU

入力パラメーター#

バッファー API

exec_queue

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

n

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

a

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

sa

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

sy

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

mode

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

USM API

exec_queue

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

n

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

a

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

sa

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

sy

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

depends

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

mode

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

出力パラメーター#

バッファー API

y

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

戻り値 (event)

計算終了イベント。

USM API

y

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

戻り値 (event)

計算終了イベント。

#

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

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