3.4.1 ieee_functions(3m) および ieee_sun(3m)
ieee_functions(3m) および ieee_sun(3m) で説明される関数は、IEEE 規格に必要な機能か、またはその付録で推奨されている機能を提供します。これらは、効率的なビットマスク演算として実装されます。
表 3-5 ieee_functions(3m)
|
|
math.h
|
ヘッダーファイル
|
copysign(x,y)
|
y の符号ビットを持つ x
|
fabs(x)
|
x の絶対値
|
fmod(x, y)
|
y を基準にした x の剰余
|
ilogb(x)
|
x の基数 2 のバイアスなし指数 (整数形式)
|
nextafter(x,y)
|
方向 y への x のあとの次の表現可能な数値
|
remainder(x,y)
|
y を基準にした x の剰余
|
scalbn(x,n)
|
x × 2n
|
|
表 3-6 ieee_sun(3m)
|
|
sunmath.h
|
ヘッダーファイル
|
fp_class(x)
|
分類関数
|
isinf(x)
|
分類関数
|
isnormal(x)
|
分類関数
|
issubnormal(x)
|
分類関数
|
iszero(x)
|
分類関数
|
signbit(x)
|
分類関数
|
nonstandard_arithmetic(void)
|
非標準モードの有効化
|
standard_arithmetic(void)
|
標準モードの有効化
|
ieee_retrospective(*f)
|
n/a
|
|
remainder(x,y) は、IEEE 規格 754-1985 で指定された演算です。remainder(x,y) と fmod(x,y) の違いは、remainder(x,y) によって返される結果の符号が x または y のどちらかの符号と一致しない可能性があるのに対して、fmod(x,y) は常に、符号が x と一致する結果を返す点にあります。どちらの関数も正確な結果を返し、不正確の例外を生成しません。
表 3-7 Fortran からの ieee_functions の呼び出し
|
|
|
|
copysign(x,y)
|
t=r_copysign(x,y)
|
z=d_copysign(x,y)
|
z=q_copysign(x,y)
|
ilogb(x)
|
i=ir_ilogb(x)
|
i=id_ilogb(x)
|
i=iq_ilogb(x)
|
nextafter(x,y)
|
t=r_nextafter(x,y)
|
z=d_nextafter(x,y)
|
z=q_nextafter(x,y)
|
scalbn(x,n)
|
t=r_scalbn(x,n)
|
z=d_scalbn(x,n)
|
z=q_scalbn(x,n)
|
signbit(x)
|
i=ir_signbit(x)
|
i=id_signbit(x)
|
i=iq_signbit(x)
|
|
表 3-8 Fortran からの ieee_sun の呼び出し
|
|
|
|
signbit(x)
|
i=ir_signbit(x)
|
i=id_signbit(x)
|
i=iq_signbit(x)
|
|
注 -
次の関数を使用する Fortran プログラムでは、d_function を倍精度として、q_function を REAL*16 として宣言する必要があります。