summaryrefslogtreecommitdiffstats
path: root/man3/frexp.3
diff options
context:
space:
mode:
Diffstat (limited to 'man3/frexp.3')
-rw-r--r--man3/frexp.381
1 files changed, 81 insertions, 0 deletions
diff --git a/man3/frexp.3 b/man3/frexp.3
new file mode 100644
index 000000000..36764dfbd
--- /dev/null
+++ b/man3/frexp.3
@@ -0,0 +1,81 @@
+.\" Copyright 1993 David Metcalfe (david@prism.demon.co.uk)
+.\"
+.\" Permission is granted to make and distribute verbatim copies of this
+.\" manual provided the copyright notice and this permission notice are
+.\" preserved on all copies.
+.\"
+.\" Permission is granted to copy and distribute modified versions of this
+.\" manual under the conditions for verbatim copying, provided that the
+.\" entire resulting derived work is distributed under the terms of a
+.\" permission notice identical to this one.
+.\"
+.\" Since the Linux kernel and libraries are constantly changing, this
+.\" manual page may be incorrect or out-of-date. The author(s) assume no
+.\" responsibility for errors or omissions, or for damages resulting from
+.\" the use of the information contained herein. The author(s) may not
+.\" have taken the same level of care in the production of this manual,
+.\" which is licensed free of charge, as they might when working
+.\" professionally.
+.\"
+.\" Formatted or processed versions of this manual, if unaccompanied by
+.\" the source, must acknowledge the copyright and authors of this work.
+.\"
+.\" References consulted:
+.\" Linux libc source code
+.\" Lewine's _POSIX Programmer's Guide_ (O'Reilly & Associates, 1991)
+.\" 386BSD man pages
+.\" Modified 1993-07-24 by Rik Faith (faith@cs.unc.edu)
+.\" Modified 2002-07-27 by Walter Harms
+.\" (walter.harms@informatik.uni-oldenburg.de)
+.\"
+.TH FREXP 3 2002-07-27 "" "Linux Programmer's Manual"
+.SH NAME
+frexp, frexpf, frexpl \- convert floating-point number to fractional
+and integral components
+.SH SYNOPSIS
+.nf
+.B #include <math.h>
+.sp
+.BI "double frexp(double " x ", int *" exp );
+.sp
+.BI "float frexpf(float " x ", int *" exp );
+.sp
+.BI "long double frexpl(long double " x ", int *" exp );
+.fi
+.sp
+Link with \-lm.
+.SH DESCRIPTION
+The \fBfrexp()\fP function is used to split the number \fIx\fP into a
+normalized fraction and an exponent which is stored in \fIexp\fP.
+.SH "RETURN VALUE"
+The \fBfrexp()\fP function returns the normalized fraction. If the
+argument \fIx\fP is not zero, the normalized fraction is \fIx\fP
+times a power of two, and is always in the range 1/2 (inclusive) to
+1 (exclusive). If \fIx\fP is zero, then the normalized fraction is
+zero and zero is stored in \fIexp\fP.
+.SH "CONFORMING TO"
+SVID 3, POSIX, BSD 4.3, ISO 9899.
+The float and the long double variants are C99 requirements.
+.SH EXAMPLE
+.nf
+#include <stdio.h>
+#include <math.h>
+#include <float.h>
+int main () {
+ double d = 2560;
+ int e;
+ double f = frexp(d, &e);
+ printf("frexp(%g, &e) = %g: %g * %d^%d = %g\en",
+ d, f, f, FLT_RADIX, e, d);
+ return 0;
+}
+.fi
+.sp
+This program prints
+.sp
+.in +5
+frexp(2560, &e) = 0.625: 0.625 * 2^12 = 2560
+.in
+.SH "SEE ALSO"
+.BR ldexp (3),
+.BR modf (3)