atan2pi#

ベクトル a の要素をベクトルb の要素で割り、さらにそれを pi で割った、要素ごとの 4 象限逆正接を計算します。

説明#

atan2pi(a,b) 関数は、2 つのベクトルの対応する要素の比を \(\infty\) で割った 4 象限逆正接を計算します。

出力ベクトル y の要素に対して、関数は ai/bi の 4 象限逆正接を計算し、その結果を \(\infty\) で割ります。

引数 1

引数 2

結果

エラーコード

-\(\infty\)

-\(\infty\)

-3/4

-\(\infty\)

b < +0

-1/2

-\(\infty\)

-0

+1/2

-\(\infty\)

+0

-1/2

-\(\infty\)

x > +0

-1/2

-\(\infty\)

+\(\infty\)

-1/4

a < +0

-\(\infty\)

-1

a < +0

-0

-1/2

a < +0

+0

-1/2

a < +0

+\(\infty\)

-0

-0

-\(\infty\)

-1

-0

b < +0

-1

-0

-0

-1

-0

+0

-0

-0

b > +0

-0

-0

+\(\infty\)

-0

+0

-\(\infty\)

+1

+0

b < +0

+1

+0

-0

+1

+0

+0

+0

+0

b > +0

+0

+0

+\(\infty\)

+0

a > +0

-\(\infty\)

+1

a > +0

-0

+1/2

x > +0

+0

+1/2

a > +0

+\(\infty\)

+1/4

+\(\infty\)

-\(\infty\)

+3/4

+\(\infty\)

b < +0

+1/2

+\(\infty\)

-0

+1/2

+\(\infty\)

+0

+1/2

+\(\infty\)

b > +0

+1/2

+\(\infty\)

+\(\infty\)

+1/4

a > +0

QNAN

QNAN

a > +0

SNAN

QNAN

QNAN

b > +0

QNAN

SNAN

x > +0

QNAN

QNAN

QNAN

QNAN

QNAN

SNAN

QNAN

SNAN

QNAN

QNAN

SNAN

SNAN

QNAN

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

API#

構文#

バッファー API

namespace oneapi::mkl::vm { 

sycl::event atan2pi(sycl::queue & exec_queue, 
      std::int64_t n, 
      sycl::buffer<T> & a, 
      sycl::buffer<T> & b, 
      sycl::buffer<T> & y, 
      oneapi::mkl::vm::mode mode = oneapi::mkl::vm::mode::not_defined); 

}
namespace oneapi::mkl::vm { 

sycl::event atan2pi(sycl::queue & exec_queue, 
      sycl::buffer<T> & a, 
      oneapi::mkl::slice sa, 
      sycl::buffer<T> & b, oneapi::mkl::slice sb, 
      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 atan2pi(sycl::queue & exec_queue, 
      std::int64_t n, 
      T const * a, 
      T const * b, 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 atan2pi(sycl::queue & exec_queue, 
      T const * a, 
      oneapi::mkl::slice sa, 
      T const * b, 
      oneapi::mkl::slice sb, T * y, oneapi::mkl::slice sy, 
      std::vector<sycl::event> const & depends = {}, 
      oneapi::mkl::vm::mode mode = oneapi::mkl::vm::mode::not_defined); 

}

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

T

デバイスサポート

sycl::half

GPU

_Float16

CPU

float

CPU および GPU

double

CPU および GPU

入力パラメーター#

バッファー API

exec_queue

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

n

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

a

1 番目の入力ベクトルを含むバッファー。

sa

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

b

2 番目の入力ベクトルを含むバッファー。

sb

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

sy

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

mode

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

USM API

exec_queue

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

n

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

a

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

sa

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

b

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

sb

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

sy

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

depends

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

mode

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

出力パラメーター#

バッファー API

y

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

戻り値 (event)

計算終了イベント。

USM API

y

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

戻り値 (event)

計算終了イベント。

#

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

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