arg#

[-pi, pi] のベクトル要素の引数を計算します。

説明#

arg(a) 関数はベクトル要素の引数を計算します。

以下の表で使用されている規則については、特殊な値の表記法を参照してください。

RE(a) i·IM(a)

-\(\infty\)

-X

-0

+0

-X

+\(\infty\)

NAN

+i·\(\infty\)

+3·\(\pi /4\)

+\(\pi\)/2

+\(\pi\)/2

+\(\pi\)/2

+\(\pi\)/2

+\(\pi\)/4

NAN

+i·Y

+\(\pi\)

+\(\pi\)/2

+\(\pi\)/2

+0

NAN

+i·0

+\(\pi\)

+\(\pi\)

+\(\pi\)

+0

+0

+0

NAN

-i·0

-\(\pi\)

-\(\pi\)

-\(\pi\)

-0

-0

-0

NAN

-i·Y

-\(\pi\)

-\(\pi\)/2

-\(\pi\)/2

-0

NAN

-i·\(\infty\)

-3·\(\pi\)/4

-\(\pi\)/2

-\(\pi\)/2

-\(\pi\)/2

-\(\pi\)/2

-\(\pi\)/4

NAN

+i·NAN

NAN

NAN

NAN

NAN

NAN

NAN

NAN

arg(a)=atan2(IM(a),RE(a))

arg 関数はエラーを生成しません。

API#

構文#

バッファー API

namespace oneapi::mkl::vm { 

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

}

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

T

デバイスサポート

std::complex<float>

CPU および GPU

std::complex<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)

計算終了イベント。

#

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

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