スポンサーリンク

IEEE(3) FreeBSD ライブラリ関数マニュアル IEEE(3)

名称

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

ライブラリ

数値計算ライブラリ (libm, −lm)

書式

#include <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);

解説

これらの関数は、 IEEE Std 754-1985 によって要求または推奨されています。

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

−infinity < x < +infinity の時には、 finite() および finitef() は、値 1 を返します。そうでない時 ( |x| = infinity または xNaN の時) には、0 が返されます。

ilogb() および ilogbf() は、 xn 乗を整数型で返します。 ilogb(±infinity) は INT_MAX を返し、 ilogb(0) は INT_MIN を返します。

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

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

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

関連項目

math(3)

歴史

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

規格

IEEE Std 754-1985

FreeBSD 10.0 February 25, 1994 FreeBSD 10.0

スポンサーリンク