HPUX finite[3m]






 ieee(3M)                                                           ieee(3M)





 NAME
      copysign(), copysignf(), drem(), finite(), finitef(), logb(), scalb()
      - exponent manipulations

 SYNOPSIS
      #include <math.h>

      double copysign(double x, double y);

      double drem(double x, double y);

      int finite(double x);

      double logb(double x);

      double scalb(double x, int n);

      float copysignf(float x, float y);

      int finitef(float x);

 DESCRIPTION
      These functions are required for, or recommended by, the IEEE-754
      standard for floating-point arithmetic.

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

      drem() 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
      drem(x,0) is exceptional; see below under ERRORS.

      finite() returns 1 only when -INFINITY < x < +INFINITY.  Otherwise it
      returns 0 (i.e., when |x| = INFINITY or x is NaN).

      logb() returns x's exponent n, a signed integer converted to double-
      precision floating point and chosen such that 1 _ |x|/2**n < 2 unless
      x = 0 or (only on machines that conform to the IEEE-754 standard) |x|
      = INFINITY or x lies between 0 and the underflow threshold.

      scalb() returns x*(2**n) computed, for integer n, without first
      computing 2**n.

      copysignf() and finitef() are float versions of copysign() and
      finite().  They are named in accordance with the conventions specified
      in the "Future Library Directions" section of the ANSI C standard.
      Programs must be compiled in ANSI mode (use the -Aa option) in order
      to use these functions; otherwise, the compiler promotes the float
      arguments to double, and the functions return incorrect results.





 Hewlett-Packard Company            - 1 -     HP-UX Release 9.0: August 1992






 ieee(3M)                                                           ieee(3M)





 DEPENDENCIES
    Series 300/400
      These functions are not supported on Series 300/400 systems.

    Series 700/800
      These functions are provided in the PA1.1 versions of the math library
      only.  The +DA1.1 option (the default on Series 700 systems) links in
      a PA1.1 version automatically.  A PA1.1 library can be linked in
      explicitly.  For more information, see the HP-UX Floating-Point Guide.

 ERRORS
      The IEEE-754 standard defines drem(x,0) and drem(INFINITY,y) to be
      invalid operations that produce a NaN.

      The IEEE-754 standard defines logb(_INFINITY) = +INFINITY and logb(0)
      = -INFINITY, and requires the latter to signal a division-by-zero
      exception.

 SEE ALSO
      isnan(3M), isinf(3M), fpclassify(3M).


































 Hewlett-Packard Company            - 2 -     HP-UX Release 9.0: August 1992