.\" Modified 2002-07-27 by Walter Harms
.\" (walter.harms@informatik.uni-oldenburg.de)
.\"
-.TH FREXP 3 2002-07-27 "" "Linux Programmer's Manual"
+.TH FREXP 3 2008-07-29 "" "Linux Programmer's Manual"
.SH NAME
frexp, frexpf, frexpl \- convert floating-point number to fractional
and integral components
.fi
.sp
Link with \fI\-lm\fP.
+.sp
+.in -4n
+Feature Test Macro Requirements for glibc (see
+.BR feature_test_macros (7)):
+.in
+.sp
+.ad l
+.BR frexpf (),
+.BR frexpl ():
+_BSD_SOURCE || _SVID_SOURCE || _XOPEN_SOURCE\ >=\ 600 || _ISOC99_SOURCE; or
+.I cc\ -std=c99
+.ad b
.SH DESCRIPTION
The
.BR frexp ()
If the argument \fIx\fP is not zero,
the normalized fraction is \fIx\fP times a power of two,
and its absolute value is always in the range 1/2 (inclusive) to
-1 (exclusive).
+1 (exclusive), that is, [0.5,1).
+
If \fIx\fP is zero, then the normalized fraction is
zero and zero is stored in \fIexp\fP.
+
+If
+.I x
+is a NaN,
+a NaN is returned, and the value of
+.I *exp
+is unspecified.
+
+If
+.I x
+is positive infinity (negative infinity),
+positive infinity (negative infinity) is returned, and the value of
+.I *exp
+is unspecified.
+.SH ERRORS
+No errors occur.
.SH "CONFORMING TO"
-SVr4, 4.3BSD, C89, C99.
-The
-.I float
-and
-.I "long double"
-variants are C99 requirements.
+C99, POSIX.1-2001.
+The variant returning
+.I double
+also conforms to
+SVr4, 4.3BSD, C89.
.SH EXAMPLE
.nf
#include <math.h>