ldexp(P)                                               ldexp(P)





NAME
       ldexp,  ldexpf,  ldexpl  -  load exponent of a floating-
       point number

SYNOPSIS
       #include <math.h>

       double ldexp(double x, int exp);
       float ldexpf(float x, int exp);
       long double ldexpl(long double x, int exp);


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.

       These functions shall compute the quantity x * 2.

       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
       x multiplied by 2, raised to the power exp.

       If these functions would cause overflow, a  range  error
       shall  occur  and  ldexp(), ldexpf(), and ldexpl() shall
       return +-HUGE_VAL, +-HUGE_VALF, and +-HUGE_VALL (accord-
       ing to the sign of x), respectively.

       If  the  correct value would cause underflow, and is not
       representable, a range error may  occur,  and     either
       0.0 (if supported), or   an implementation-defined value
       shall be returned.

       If x is NaN, a NaN shall be returned.

       If x is +-0 or +-Inf, x shall be returned.

       If exp is 0, x shall be returned.

       If the correct value would cause underflow, and is  rep-
       resentable,  a  range  error  may  occur and the correct
       value shall be returned.

ERRORS
       These functions shall fail if:

       Range Error
              The result 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.


       These functions may fail if:

       Range Error
              The result 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() , frexp() , isnan() ,
       the Base  Definitions  volume  of  IEEE Std 1003.1-2001,
       Section  4.18,  Treatment of Error Conditions for Mathe-
       matical 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                     ldexp(P)
