IEEE(3)

名称
copysign, copysignf, finite, finitef, ilogb, ilogbf, nextafter, nextafterf, remainder, remainderf, scalbn, scalbnf - IEEE 演算関数

ライブラリ
libm

書式
<math.h> double copysign(double x, double y) float copysignf(float x, float y) int finite(double x) int finitef(float x) int ilogb(double x) int ilogbf(float x) double nextafter(double x, double y) float nextafterf(float x, float y) double remainder(double x, double y) float remainderf(float x, float y) double scalbn(double x, int n) float scalbnf(float x, int n)

解説
これらの関数は、 ieee754 によって要求または推奨されています。

copysign() および copysignf() は、 x の符号を y の符号に置き換えて x を返します。

- x + の時には、 finite() および finitef() は、値 1 を返します。そうでない時 ( \*(Bax\*(Ba = または x が の時) には、0 が返されます。

ilogb() および ilogbf() は、 x の n 乗を整数型で返します。 ilogb() は INT_MAX を返し、 ilogb(0) は INT_MIN を返します。

nextafter() および nextafterf() は、次のマシン表示可能な数を x から y 方向に返します。

remainder() および remainderf() は、剰余 r := x - n*y を返します。このとき n は x/y の正確な値に最も近い整数です。更に、 \*(Ban - x/y\*(Ba = 1/2 ならば、 n は偶数です。その結果、剰余は正確に計算され、 \*(Bar\*(Ba \*(Bay\*(Ba/2 となります。しかし、 remainder(x, 0) および remainder(, 0) は、 を生成する無効な演算です。

scalbn() および scalbnf() は、指数操作によって計算された x*(2**n) を返します。

関連項目
math(3)

歴史
ieee 関数は、 4.3BSD で登場しました。

規格
ieee754