ieee(3)
NAME
ieee, copysign, remainder, finite, logb, ilogb, scalb - copysign,
remainder, exponent manipulations
SYNOPSIS
#include <math.h>
double copysign(double x, double y)
double remainder(double x, double y)
int finite(double x)
double logb(double x)
double ilogb(double x)
double scalb(double x, double y)
double scalbn(double x, int y)
DESCRIPTION
These functions are required for, or recommended by the IEEE standard 754
for floating-point arithmetic.
Copysign(x, y) returns x with its sign changed to y's.
Remainder(x, y) returns the remainder r := x - n*y where n is the integer
nearest the exact value of x/y; moreover if |n-x/y| = 1/2 then n is even.
Consequently the remainder is computed exactly and |r| < |y|/2.
Finite(x) = 1 just when -Inf < x < +Inf,
= 0 otherwise (when |x| = Inf or x is NaN)
Logb(x) returns x's exponent n, a signed integer converted to
double-precision floating-point and so chosen that 1 < |x|/2**n < 2
unless x = 0 or |x| = Inf or x lies between 0 and the Underflow
Threshold; see below under "BUGS".
Ilogb(x) is like logb(x), but better.
Scalb(x, n) = x*(2**n) computed, for integer n, without first computing
2**n.
Scalbn(x, n) is like scalb(x, n), but better.
Logb and scalb are provided in the Sun FDLIBM to pass IEEE test suites.
They are not recommended. Use ilogb and scalbn instead.
SEE ALSO
floor(3), math(3).
AUTHOR
Kwok-Choi Ng