kazmax - Linux で自宅サーバー

isgreater - ライブラリコールの説明 - Linux コマンド集 一覧表

  1. 名前
  2. 書式
  3. 説明
  4. 注意
  5. 準拠
  6. 関連項目

名前

isgreater, isgreaterequal, isless, islessgreater, isunordered - 関係をテストするマクロ

書式

#include <math.h>

int isgreater(x,y);
int isgreaterequal(x,y);
int isless(x,y);
int islessequal(x,y);
int islessgreater(x,y);
int isunordered(x,y);

-std=c99 でコンパイルし、-lm でリンクする。

説明

(< のような) 通常の関係操作は、1 つのオペランドが NaN の場合には失敗する。 これは例外の原因になる。 これを避けるため、C99 では次のようなマクロを定義している。 これらのマクロはオペランドを 1 回だけ評価することが保証されている。 任意の実数の浮動小数点数型をオペランドにできる。

isgreater()
(x) > (y) を決定する。x または y が NaN でも例外を発生しない。
isgreaterequal()
(x) >= (y) を決定する。x または y が NaN でも例外を発生しない。
isless()
(x) < (y) を決定する。x または y が NaN でも例外を発生しない。
islessequal()
(x) <= (y) を決定する。x または y が NaN でも例外を発生しない。
islessgreater()
(x) < (y) || (x) > (y) を決定する。x または y が NaN でも例外を発生しない。 このマクロは x != y と等価ではない。 なぜなら、この評価式は x または y が NaN の場合に true となるためである。
isunordered()
x または y が NaN の場合に true となる。 それ以外の場合は false になる。

注意

これらの関数は全てのハードウェアでサポートされているわけではない。 サポートされていない場合は、マクロでエミュレートされる。 エミュレートされる場合は、性能上の不利がある。 NaN について心配しなくて構わない場合は、 これらの関数を使わないこと。

準拠

C99

関連項目

  fpclassify (3)  isnan (3)