「数学関数」の版間の差分

提供: Tommy6
移動: 案内検索
178行: 178行:
 
{{!-}}
 
{{!-}}
 
{{!}} [[remquo]]
 
{{!}} [[remquo]]
{{!}}
+
{{!}} ''x'' - ''n'' * ''y'' を求めます。''n'' は ''x'' / ''y'' に最も近い整数値です。[[remquo]]() では、''x'' / ''y'' の整数の商の下位7ビットも求めます。
 
{{!-}}
 
{{!-}}
 
{{!}} [[rint]]
 
{{!}} [[rint]]

2011年5月13日 (金) 17:50時点における版

数学関数は、次の二つに分類されます:

  • スカラもしくはベクトル引数をとるもの
  • スカラの float 引数のみをとるもの

ベクトル版の数学関数では、演算はベクトルの要素ごとに行われます。それぞれの関数の解説は、各要素で行われる操作についてです。

数学関数は、関数を呼び出している環境で指定した丸めモードの影響を受けず、常に最近接偶数丸めモードによる同じ値を返します。


関数の一覧

1.1 : OpenCL 1.1で追加

関数 概要
acos 逆余弦(アークコサイン)を求めます。
acosh 逆双曲線余弦(アークハイパボリックコサイン)を求めます。
acospi acos()/π を求めます。
asin 逆正弦(アークサイン)を求めます。
asinh 逆双曲線正弦(アークハイパボリックサイン)を求めます。
asinpi asin()/π を求めます。
atan 逆正接(アークタンジェント)を求めます。
atan2 y/x の逆正接(アークタンジェント)を求めます。
atanh 逆双曲線正接(アークハイパボリックタンジェント)を求めます。
atanpi atan()/π を求めます。
atan2pi atan2()/π を求めます。
cbrt 立方根を求めます。
ceil 正無限大方向丸めモードを利用して整数値への丸めを行います。
copysign 符号を y と同じ符号にした x を求めます。
cos 余弦(コサイン)を求めます。
cosh 双曲線余弦(ハイパボリックコサイン)を求めます。
cospi cos(x)/π を求めます。
erfc 相補誤差関数による値を求めます。
erf 誤差関数による値を求めます。
exp e を底とする指数関数による値を求めます。
exp2 2 を底とする指数関数による値を求めます。
exp10 10 を底とする指数関数による値を求めます。
expm1 ex-1.0 による値を求めます。
fabs 絶対値を求めます。
fdim x > y であれば x - y を求め、xy より小さい、あるいは y と等しいときは、+0 を返します。
floor 負無限大方向丸めモードを利用して整数値への丸めを行います。
fma ab の無限精度積と c の和 (a*b+c) を正しく丸めた値を返します。
fmax x < y のときは y を、そうでないときは x を返します。
fmin y < x のときは y を、そうでないときは x を返します。
fmod y を法として剰余を求めます。x - y * trunc(x / y) を返します。
fract fmin(x - floor(x), 0x1.fffffep-1f) を返します。iptrfloor(x) が返されます。
frexp x の仮数と指数を求めます。
hypot x2 + y2 の平方根を求めます。
ilogb 指数を整数値で返します。
ldexp 2nx の積を求めます。
lgamma ガンマ関数の絶対値の自然対数を求めます。
lgamma_r ガンマ関数の絶対値の自然対数を求めます。signp にガンマ関数によって求めた値の符号を返します。
log 自然対数を求めます。
log2 2 を底とする対数を求めます。
log10 10 を底とする対数を求めます。
log1p loge(1.0 + x) を求めます。
logb 指数を求めます。
mad a * b + c の近似計算を行います。
maxmag |x| > |y| のときは x を、|y| > |x| のときは y を、それ以外のときは fmax(x, y) を返します。
minmag |x| < |y| のときは x を、|y| < |x| のときは y を、それ以外のときは fmin(x, y) を返します。
modf 浮動小数点値を整数部分と小数部分に分けます。
nan quiet NaN を返します。
nextafter 単精度浮動小数点で表現可能な値の中で、y 方向の x の次の値を求めます。
pow xy を求めます。
pown xy を求めます。pow() と異なり、y は整数値です。
powr xy を求めます。pow() と異なり、x >= 0 です。
remainder x - n * y を求めます。nx / y に最も近い整数値です。
remquo x - n * y を求めます。nx / y に最も近い整数値です。remquo() では、x / y の整数の商の下位7ビットも求めます。
rint
rootn
round
rsqrt
sin
sincos
sinh
sinpi
sqrt
tan
tanh
tanpi
tgamma
trunc

変更記録


―――― Version 1.1, The OpenCL Specification より翻訳