nextafter(P)                                       nextafter(P)





NAME
       nextafter,  nextafterf,  nextafterl, nexttoward, nextto-
       wardf, nexttowardl - next  representable  floating-point
       number

SYNOPSIS
       #include <math.h>

       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);
       float nexttowardf(float x, long double y);
       long double nexttowardl(long double x, long double y);


DESCRIPTION
       The  functionality  described  on this reference page is
       aligned with the ISO C standard.  Any  conflict  between
       the  requirements  described here and the ISO C standard
       is unintentional.  This volume  of  IEEE Std 1003.1-2001
       defers to the ISO C standard.

       The  nextafter(),  nextafterf(),  and nextafterl() func-
       tions shall compute  the  next  representable  floating-
       point value following x in the direction of y.  Thus, if
       y is less than x, nextafter() shall return  the  largest
       representable  floating-point  number  less  than x. The
       nextafter(), nextafterf(),  and  nextafterl()  functions
       shall return y if x equals y.

       The nexttoward(), nexttowardf(), and nexttowardl() func-
       tions  shall  be   equivalent   to   the   corresponding
       nextafter()  functions, except that the second parameter
       shall have type long  double  and  the  functions  shall
       return  y  converted  to  the  type of the function if x
       equals y.

       An application wishing to  check  for  error  situations
       should   set   errno   to   zero   and  call  feclearex-
       cept(FE_ALL_EXCEPT) before calling these functions.   On
       return,  if errno is non-zero or fetestexcept(FE_INVALID
       | FE_DIVBYZERO | FE_OVERFLOW  |  FE_UNDERFLOW)  is  non-
       zero, an error has occurred.

RETURN VALUE
       Upon successful completion, these functions shall return
       the next representable floating-point value following  x
       in the direction of y.

       If x== y, y (of the type x) shall be returned.

       If  x  is  finite  and  the correct function value would
       overflow, a range  error  shall  occur  and  +-HUGE_VAL,
       +-HUGE_VALF,  and  +-HUGE_VALL (with the same sign as x)
       shall be returned as appropriate for the return type  of
       the function.

       If x or y is NaN, a NaN shall be returned.

       If  x!=  y  and the correct function value is subnormal,
       zero, or underflows, a  range  error  shall  occur,  and
       either  the correct function value (if representable) or
       0.0 shall be returned.

ERRORS
       These functions shall fail if:

       Range Error
              The correct value overflows.

       If   the   integer   expression   (math_errhandling    &
       MATH_ERRNO)  is  non-zero,  then  errno  shall be set to
       [ERANGE]. If the integer expression (math_errhandling  &
       MATH_ERREXCEPT) is non-zero, then the overflow floating-
       point exception shall be raised.

       Range Error
              The correct value is subnormal or underflows.

       If   the   integer   expression   (math_errhandling    &
       MATH_ERRNO)  is  non-zero,  then  errno  shall be set to
       [ERANGE]. If the integer expression (math_errhandling  &
       MATH_ERREXCEPT)  is  non-zero, then the underflow float-
       ing-point exception shall be raised.


       The following sections are informative.

EXAMPLES
       None.

APPLICATION USAGE
       On   error,   the   expressions   (math_errhandling    &
       MATH_ERRNO)  and (math_errhandling & MATH_ERREXCEPT) are
       independent of each other, but at least one of them must
       be non-zero.

RATIONALE
       None.

FUTURE DIRECTIONS
       None.

SEE ALSO
       feclearexcept()  , fetestexcept() , the Base Definitions
       volume of IEEE Std 1003.1-2001, Section 4.18,  Treatment
       of Error Conditions for Mathematical Functions, <math.h>

COPYRIGHT
       Portions of this text are reprinted  and  reproduced  in
       electronic  form  from  IEEE  Std  1003.1, 2003 Edition,
       Standard for Information Technology -- Portable  Operat-
       ing System Interface (POSIX), The Open Group Base Speci-
       fications Issue 6, Copyright (C) 2001-2003 by the Insti-
       tute  of  Electrical  and Electronics Engineers, Inc and
       The Open Group. In the event of any discrepancy  between
       this  version  and  the original IEEE and The Open Group
       Standard, the original IEEE and The Open Group  Standard
       is  the  referee  document. The original Standard can be
       obtained        online        at        http://www.open-
       group.org/unix/online.html .



POSIX                         2003                 nextafter(P)
