「整数関数」の版間の差分
提供: Tommy6
細 |
細 |
||
(1人の利用者による、間の6版が非表示) | |||
52行: | 52行: | ||
{{!-}} | {{!-}} | ||
{{!}} [[sub_sat]] | {{!}} [[sub_sat]] | ||
− | {{!}} | + | {{!}} ''x'' - ''y'' を求めます。結果には[[飽和]]を適用します。 |
{{!-}} | {{!-}} | ||
{{!}} [[upsample]] | {{!}} [[upsample]] | ||
− | {{!}} | + | {{!}} {{!}} ((<uptype>)''hi''[i] << <org_type_bit_size>) {{!}} ''lo''[i] を求めます。 |
+ | |||
+ | {{!}}} | ||
+ | |||
+ | === 高速整数関数 === | ||
+ | 以下の関数は、カーネルのパフォーマンスを最適化するのに利用できます。 | ||
+ | |||
+ | {{{!}} class{{=}}"wikitable" | ||
+ | !関数 | ||
+ | !概要 | ||
+ | {{!-}} | ||
+ | {{!}} [[mad24]] | ||
+ | {{!}} 24ビット整数値 ''x'' と ''y'' の積をとり、そこに32ビット整数値 ''z'' を足して32ビット整数値を得ます。 | ||
+ | {{!-}} | ||
+ | {{!}} [[mul24]] | ||
+ | {{!}} 24ビット整数値 ''x'' と ''y'' の積を求めます。 | ||
{{!}}} | {{!}}} | ||
67行: | 82行: | ||
}} | }} | ||
− | {{DEFAULTSORT: | + | {{DEFAULTSORT:せいすうかんすう}} |
[[Category:OpenCL]] | [[Category:OpenCL]] | ||
[[Category:OpenCL C 言語]] | [[Category:OpenCL C 言語]] | ||
[[Category:組み込み関数]] | [[Category:組み込み関数]] | ||
[[Category:整数関数|*]] | [[Category:整数関数|*]] |
2011年5月18日 (水) 15:38時点における最新版
整数関数はスカラもしくはベクトル引数をとります。
ベクトル版の整数関数では、演算はベクトルの要素ごとに行われます。それぞれの関数の解説は、各要素で行われる操作についてです。
関数の一覧
1.1 : OpenCL 1.1で追加・変更
関数 | 概要 |
---|---|
abs | 絶対値を求めます。 |
abs_diff | オーバーフローが発生しないようにしながら |x| - |y| を求めます。 |
add_sat | x + y を求めます。結果には飽和を適用します。 |
hadd | 中間の和でオーバーフローが発生しないようにしながら (x + y) >> 1 を求めます。 |
rhadd | 中間の和でオーバーフローが発生しないようにしながら (x + y + 1) >> 1 を求めます。 |
clamp | min(max(x, minval), maxval) を返します。 |
clz | 最上位ビットから連続する 0 のビットの数を数えます。 |
mad_hi | mul_hi(a, b) + c を求めます。 |
mad_sat | a * b + c を求めます。結果には飽和を適用します。 |
max | x < y のときは y を、そうでないときは x を返します。 |
min | y < x のときは y を、そうでないときは x を返します。 |
mul_hi | x * y を求め、得た値の上位半分を返します。 |
rotate | 指定された値のビット数の左シフトを行います。 |
sub_sat | x - y を求めます。結果には飽和を適用します。 |
upsample | ((<uptype>)hi[i] << <org_type_bit_size>) | lo[i] を求めます。 |
高速整数関数
以下の関数は、カーネルのパフォーマンスを最適化するのに利用できます。
関数 | 概要 |
---|---|
mad24 | 24ビット整数値 x と y の積をとり、そこに32ビット整数値 z を足して32ビット整数値を得ます。 |
mul24 | 24ビット整数値 x と y の積を求めます。 |
変更記録
―――― Version 1.1, The OpenCL Specification
より翻訳