]> git.ipfire.org Git - thirdparty/man-pages.git/blame - man3/frexp.3
Minor wording changes.
[thirdparty/man-pages.git] / man3 / frexp.3
CommitLineData
fea681da
MK
1.\" Copyright 1993 David Metcalfe (david@prism.demon.co.uk)
2.\"
3.\" Permission is granted to make and distribute verbatim copies of this
4.\" manual provided the copyright notice and this permission notice are
5.\" preserved on all copies.
6.\"
7.\" Permission is granted to copy and distribute modified versions of this
8.\" manual under the conditions for verbatim copying, provided that the
9.\" entire resulting derived work is distributed under the terms of a
10.\" permission notice identical to this one.
c13182ef 11.\"
fea681da
MK
12.\" Since the Linux kernel and libraries are constantly changing, this
13.\" manual page may be incorrect or out-of-date. The author(s) assume no
14.\" responsibility for errors or omissions, or for damages resulting from
15.\" the use of the information contained herein. The author(s) may not
16.\" have taken the same level of care in the production of this manual,
17.\" which is licensed free of charge, as they might when working
18.\" professionally.
c13182ef 19.\"
fea681da
MK
20.\" Formatted or processed versions of this manual, if unaccompanied by
21.\" the source, must acknowledge the copyright and authors of this work.
22.\"
23.\" References consulted:
24.\" Linux libc source code
25.\" Lewine's _POSIX Programmer's Guide_ (O'Reilly & Associates, 1991)
26.\" 386BSD man pages
27.\" Modified 1993-07-24 by Rik Faith (faith@cs.unc.edu)
28.\" Modified 2002-07-27 by Walter Harms
29.\" (walter.harms@informatik.uni-oldenburg.de)
30.\"
31.TH FREXP 3 2002-07-27 "" "Linux Programmer's Manual"
32.SH NAME
33frexp, frexpf, frexpl \- convert floating-point number to fractional
34and integral components
35.SH SYNOPSIS
36.nf
37.B #include <math.h>
38.sp
39.BI "double frexp(double " x ", int *" exp );
d39541ec 40.br
fea681da 41.BI "float frexpf(float " x ", int *" exp );
d39541ec 42.br
fea681da
MK
43.BI "long double frexpl(long double " x ", int *" exp );
44.fi
45.sp
20c58d70 46Link with \fI\-lm\fP.
fea681da 47.SH DESCRIPTION
60a90ecd
MK
48The
49.BR frexp ()
50function is used to split the number \fIx\fP into a
fea681da
MK
51normalized fraction and an exponent which is stored in \fIexp\fP.
52.SH "RETURN VALUE"
60a90ecd
MK
53The
54.BR frexp ()
55function returns the normalized fraction.
c13182ef
MK
56If the argument \fIx\fP is not zero,
57the normalized fraction is \fIx\fP times a power of two,
a2af275c 58and its absolute value is always in the range 1/2 (inclusive) to
c13182ef
MK
591 (exclusive).
60If \fIx\fP is zero, then the normalized fraction is
fea681da
MK
61zero and zero is stored in \fIexp\fP.
62.SH "CONFORMING TO"
e23ab293 63SVr4, 4.3BSD, C89, C99.
c13182ef 64The
e49f411f
MK
65.I float
66and
67.I "long double"
68variants are C99 requirements.
fea681da
MK
69.SH EXAMPLE
70.nf
fea681da
MK
71#include <math.h>
72#include <float.h>
a2af275c
MK
73#include <stdio.h>
74#include <stdlib.h>
75
76int
77main(int argc, char *argv[])
78{
79 double x, r;
80 int exp;
81
82 x = strtod(argv[1], NULL);
83 r = frexp(x, &exp);
84
39ad75ab 85 printf("frexp(%g, &e) = %g: %g * %d^%d = %g\\n",
7295b7ed 86 x, r, r, FLT_RADIX, exp, x);
a2af275c
MK
87 exit(EXIT_SUCCESS);
88} /* main */
fea681da
MK
89.fi
90.sp
a2af275c 91This program produces results such as the following:
fea681da 92.sp
f761505c 93.nf
088a639b 94.in +4n
a2af275c 95$ ./a.out 2560
fea681da 96frexp(2560, &e) = 0.625: 0.625 * 2^12 = 2560
f262c004
MK
97$ ./a.out \-4
98frexp(\-4, &e) = \-0.5: \-0.5 * 2^3 = -4
fea681da 99.in
f761505c 100.fi
fea681da
MK
101.SH "SEE ALSO"
102.BR ldexp (3),
103.BR modf (3)