NAME

copysign, copysignf, finite, finitef, ilogb, ilogbf, nextafter, nextafterf, remainder, remainderf, scalbn, scalbnf - functions for IEEE arithmetic

LIBRARY

Math Library (libm, -lm)

SYNOPSIS



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)

DESCRIPTION

These functions are required or recommended by IEEE Std 754-1985 .

copysign() returns x with its sign changed to y's.

finite() returns the value 1 just when - < x < +; otherwise a zero is returned (when x = or x is ).

ilogb() returns x's exponent n, in integer format. ilogb() returns INT_MAX and ilogb(0) returns INT_MIN.

nextafter() returns the next machine representable number from x in direction y.

remainder() 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. But remainder(x, 0) and remainder(0) are invalid operations that produce a .

scalbn() returns x*(2**n) computed by exponent manipulation.

SEE ALSO

math(3)

STANDARDS

IEEE Std 754-1985

HISTORY

The ieee functions appeared in 4.3BSD.