IEEE(3) Library Functions Manual IEEE(3)
NAME
copysign, copysignf, copysignl, finite, finitef, ilogb, ilogbf, nextafter, nextafterf, nextafterl, nexttoward, remainder, remainderf, scalbn, scalbnffunctions for IEEE arithmetic
LIBRARY
Math Library (libm, -lm)
SYNOPSIS
#include <math.h>
double
copysign(double x, double y);
float
copysignf(float x, float y);
long double
copysignl(long double x, long double 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);
long double
nextafterl(long double x, long double y);
double
nexttoward(double x, long double 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 -infinity < x < +infinity; otherwise a zero is returned (when |x| = infinity or x is NaN).
 
ilogb() returns x's exponent n, in integer format. ilogb(±infinity) returns INT_MAX and ilogb(0) returns INT_MIN.
 
nextafter() returns the next machine representable number from x in direction y.
 
nexttoward() is equivalent to nextafter(), except that the second parameter has type long double and the function returns y converted to the type of the function if x equals 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(infinity, 0) are invalid operations that produce a NaN.
 
scalbn() returns x∗(2**n) computed by exponent manipulation.
SEE ALSO
STANDARDS
IEEE Std 754-1985
HISTORY
The ieee functions appeared in 4.3BSD.