比較関数

提供: Tommy6
移動: 案内検索

比較関数はスカラもしくはベクトル引数をとり、戻り値はスカラもしくはベクトルの整数です。

関数 isequal, isnotequal, isgreater, isgreaterequal, isless, islessequal, islessgreater, isfinite, isinf, isnan, isnormal, isordered, isunordered, signbit は、スカラ型を引数にとるとき、比較が false であれば 0 を、true であれば 1 を返します。また、ベクトル型を引数にとるとき、false であれば 0 を、 true であれば -1 (すべてのビットを 1 にする)を返します。

関数 isequal, isgreater, isgreaterequal, isless, islessequal, islessgreater は、引数のいずれかひとつが NaN のとき、常に 0 を返します。関数 isnotequal は、引数がスカラ型でそのいずれかひとつが NaN のとき 1 を返し、引数がベクトル型でそのいずれかひとつが NaN のとき -1 を返します。

関数の一覧

1.1 : OpenCL 1.1で追加・変更

関数 概要
isequal 要素ごとに x == y の比較を行った結果を返します。
isnotequal 要素ごとに x != y の比較を行った結果を返します。
isgreater 要素ごとに x > y の比較を行った結果を返します。
isgreaterequal 要素ごとに x >= y の比較を行った結果を返します。
isless 要素ごとに x < y の比較を行った結果を返します。
islessequal 要素ごとに x <= y の比較を行った結果を返します。
islessgreater 要素ごとに (x < y) || (x > y) の比較を行った結果を返します。
isfinite 与えられた値が有限値かどうかを検査します。
isinf 与えられた値が無限値かどうかを検査します。
isnan 与えられた値が NaN 値かどうかを検査します。
isnormal 与えられた値が正規値(0, 非正規化数, 無限大, NaN のいずれでもない)かどうかを検査します。
isordered isequal(x, x) && isequal(y, y) の結果を返します。
isunordered x もしくは y が NaN のときは非ゼロを、そうでないときは 0 を返します。
signbit 符号ビットを検査します。符号ビットが設定されているときは非ゼロを、そうでないときは 0 を返します。
any 引数のいずれかの要素の最上位ビットが設定されていれば 1 を、そうでないときは 0 を返します。
all 引数のすべての要素の最上位ビットが設定されていれば 1 を、そうでないときは 0 を返します。
bitselect c の対応するビットが 0 であれば a のビット、そうでなければ b のビットを返り値のビットに設定します。
select 各要素について、c の最上位ビットが設定されていれば b を、そうでなければ a を返り値の要素に設定します。

変更記録

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