fmod#
ベクトル a
の要素をベクトル a
の要素と同じ符号を持つベクトル b
の要素で割った余剰を要素ごとに計算します。
説明#
fmod (a,b)
関数は、ベクトル a
の各要素の剰余を、ベクトル b
の対応する要素に関して計算します。
ai - bi*trunc(ai/bi)
一般に、係数関数 fmod (ai, bi)
は、b
i が 0 以外の場合、結果の符号が a
i と同じで、大きさが b
i より小さくなるような整数 n
に対して値 ai - n*bi
を返します。
引数 1 |
引数 2 |
結果 |
エラーコード |
---|---|---|---|
NAN ではない |
±0 |
NAN |
|
± |
NAN ではない |
NAN |
|
±0 |
NAN ではない |
±0 |
|
有限の |
± |
|
|
NAN |
|
||
|
NAN |
NAN |
API#
構文#
バッファー API
namespace oneapi::mkl::vm {
sycl::event fmod(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,
oneapi::mkl::vm::error_handler<T> errhandler = {});
}
namespace oneapi::mkl::vm {
sycl::event fmod(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,
oneapi::mkl::vm::error_handler<T> errhandler = {});
}
USM API
namespace oneapi::mkl::vm {
sycl::event fmod(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,
oneapi::mkl::vm::error_handler<T> errhandler = {});
}
namespace oneapi::mkl::vm {
sycl::event fmod(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,
oneapi::mkl::vm::error_handler<T> errhandler = {});
}
fmod
は次の精度とデバイスをサポートしています。
T |
デバイスサポート |
---|---|
|
GPU |
|
CPU |
|
CPU および GPU |
|
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
です。- errhandler
この関数呼び出しのローカルエラー処理モードを設定します。引数と説明については、create_error_handler 関数を参照してください。これはオプションのパラメーターです。ローカル・エラー・ハンドラーはデフォルトで無効になっています。
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
です。- errhandler
この関数呼び出しのローカルエラー処理モードを設定します。引数と説明については、create_error_handler 関数を参照してください。これはオプションのパラメーターです。ローカル・エラー・ハンドラーはデフォルトで無効になっています。
出力パラメーター#
バッファー API
- y
サイズ
n
の出力ベクトルを格納するバッファー。- 戻り値 (event)
計算終了イベント。
USM API
- y
サイズ
n
の出力ベクトルへのポインター。- 戻り値 (event)
計算終了イベント。
例#
fmod
の使用例は、oneMKL インストール・ディレクトリーの以下の場所にあります。
share/doc/mkl/examples/sycl/vml/source/vfmod.cpp