Museum

Home

Lab Overview

Retrotechnology Articles

⇒ Online Manual

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

drem(3)

logb(3)

scalb(3)

rint(3)

sqrt(3)

ieee_functions(3)  —  Subroutines

NAME

copysign, finite, fp_class, isnan, nextafter, unordered  − Appendix and related miscellaneous functions for IEEE arithmetic

LIBRARY

Math Library (libm.a)

SYNOPSIS

#include <math.h>

double copysign   (double x, double y);
float  copysignf  (float  x, float  y);
int    finite     (double x);
int    finitef    (float  x);
int    fp_class   (double x);
int    fp_classf  (float  x);
int    isnan      (double x);
int    isnanf     (float  x);
double nextafter  (double x, double y);
float  nextafterf (float  x, float  y);
int    unordered  (double x, double y);
int    unorderedf (float  x, float  y);

STANDARDS

Interfaces documented on this reference page conform to industry standards as follows:

isnan():  XPG4

nextafter():  XPG4−UNIX

Refer to the standards(5) reference page for more information about industry standards and associated tags. 

DESCRIPTION

The copysign() and copysignf() functions return x with the same sign as y.  IEEE 754 requires copysign(x,NaN) and copysignf(x,NaN) to return +x or −x. 

The finite() and finitef() functions return the integer value 1 (True) or 0 (False).  The finite(x) and finitef(x) functions return 1 when −infinity < x < +infinity.  They return 0 when |x| = infinity or x is a NaN. 

The fp_class() and fp_classf() functions determine the class of IEEE floating-point values.  They return one of the constants in the file <fp_class.h> and never cause an exception, even for signaling NaNs. These routines implement the recommended function class(x) in the appendix of the IEEE 754-1985 standard for binary floating-point arithmetic. The constants in <fp_class.h> refer to the following classes of values:

Constant Class
FP_SNAN Signaling NaN (Not-a-Number)
FP_QNAN Quiet NaN (Not-a-Number)
FP_POS_INF +infinity
FP_NEG_INF −infinity
FP_POS_NORM Positive normalized
FP_NEG_NORM Negative normalized
FP_POS_DENORM Positive denormalized
FP_NEG_DENORM Negative denormalized
FP_POS_ZERO +0.0 (positive zero)
FP_NEG_ZERO −0.0 (negative zero)

The isnan() and isnanf() functions return the value 1 (True) if x is NaN (the IEEE floating point reserved not-a-number value); otherwise, it returns the value 0 (False). 

The nextafter() and nextafterf() functions return the next machine-representable number from x in the direction of y. 

The unordered() and unorderedf() functions return the value 1 (True) if either x or y or both is a NaN; otherwise, it returns the value 0 (False). 

RELATED INFORMATION

drem(3), logb(3), scalb(3), rint(3), sqrt(3), and ANSI/IEEE Std 754-1985, IEEE Standard for Binary Floating-Point Arithmetic

Typewritten Software • bear@typewritten.org • Edmonds, WA 98026