atan2#

ベクトル a の要素をベクトル b の要素で割った要素ごとの 4 象限逆正接を計算します。

説明#

atan2(a,b) 関数は、2 つのベクトル要素の 4 象限逆正接を計算します。

出力ベクトル y の要素は、a[i] / b[i] の4象限逆正接として計算されます。

引数 1

引数 2

結果

エラーコード

-\(\infty\)

-\(\infty\)

\(-3\*\ \pi/4\)

-\(\infty\)

b < +0

-\(\pi\)/2

-\(\infty\)

-0

-\(\pi\)/2

-\(\infty\)

+0

-\(\pi\)/2

-\(\infty\)

b > +0

-\(\pi\)/2

-\(\infty\)

+\(\infty\)

-\(\pi\)/4

a < +0

-\(\infty\)

-\(\pi\)

a < +0

-0

-\(\pi\)/2

a < +0

+0

-\(\pi\)/2

a < +0

+\(\infty\)

-0

-0

-\(\infty\)

-\(\pi\)

-0

b < +0

-\(\pi\)

-0

-0

-\(\pi\)

-0

+0

-0

-0

b > +0

-0

-0

+\(\infty\)

-0

+0

-\(\infty\)

+\(\pi\)

+0

b < +0

+\(\pi\)

+0

-0

+\(\pi\)

+0

+0

+0

+0

b > +0

+0

+0

+\(\infty\)

+0

a > +0

-\(\infty\)

+\(\pi\)

a > +0

-0

+\(\pi\)/2

a > +0

+0

+\(\pi\)/2

a > +0

+\(\infty\)

+0

+\(\infty\)

-\(\infty\)

+3*\(\pi\)/4

+\(\infty\)

b < +0

+\(\pi\)/2

+\(\infty\)

-0

+\(\pi\)/2

+\(\infty\)

+0

+\(\pi\)/2

+\(\infty\)

b > +0

+\(\pi\)/2

+\(\infty\)

+\(\infty\)

+\(\pi\)/4

a > +0

QNAN

QNAN

a > +0

SNAN

QNAN

QNAN

b > +0

QNAN

SNAN

b > +0

QNAN

QNAN

QNAN

QNAN

QNAN

SNAN

QNAN

SNAN

QNAN

QNAN

SNAN

SNAN

QNAN

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

API#

構文

バッファー API

namespace oneapi::mkl::vm { 

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

}

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

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)

計算終了イベント。

#

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

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