]> git.ipfire.org Git - thirdparty/man-pages.git/blame - man3/ilogb.3
fuse.4: ffix
[thirdparty/man-pages.git] / man3 / ilogb.3
CommitLineData
fea681da 1.\" Copyright 2004 Andries Brouwer <aeb@cwi.nl>.
d33cd73d
MK
2.\" and Copyright 2008, Linux Foundation, written by Michael Kerrisk
3.\" <mtk.manpages@gmail.com>
fea681da 4.\"
93015253 5.\" %%%LICENSE_START(VERBATIM)
fea681da
MK
6.\" Permission is granted to make and distribute verbatim copies of this
7.\" manual provided the copyright notice and this permission notice are
8.\" preserved on all copies.
9.\"
10.\" Permission is granted to copy and distribute modified versions of this
11.\" manual under the conditions for verbatim copying, provided that the
12.\" entire resulting derived work is distributed under the terms of a
13.\" permission notice identical to this one.
c13182ef 14.\"
fea681da
MK
15.\" Since the Linux kernel and libraries are constantly changing, this
16.\" manual page may be incorrect or out-of-date. The author(s) assume no
17.\" responsibility for errors or omissions, or for damages resulting from
18.\" the use of the information contained herein. The author(s) may not
19.\" have taken the same level of care in the production of this manual,
20.\" which is licensed free of charge, as they might when working
21.\" professionally.
c13182ef 22.\"
fea681da
MK
23.\" Formatted or processed versions of this manual, if unaccompanied by
24.\" the source, must acknowledge the copyright and authors of this work.
4b72fb64 25.\" %%%LICENSE_END
fea681da
MK
26.\"
27.\" Inspired by a page by Walter Harms created 2002-08-10
28.\"
4b8c67d9 29.TH ILOGB 3 2017-09-15 "" "Linux Programmer's Manual"
fea681da 30.SH NAME
d33cd73d 31ilogb, ilogbf, ilogbl \- get integer exponent of a floating-point value
fea681da
MK
32.SH SYNOPSIS
33.B #include <math.h>
68e4db0a 34.PP
fea681da
MK
35.BI "int ilogb(double " x );
36.br
37.BI "int ilogbf(float " x );
38.br
39.BI "int ilogbl(long double " x );
68e4db0a 40.PP
20c58d70 41Link with \fI\-lm\fP.
68e4db0a 42.PP
d33cd73d
MK
43.in -4n
44Feature Test Macro Requirements for glibc (see
45.BR feature_test_macros (7)):
46.in
68e4db0a 47.PP
d33cd73d
MK
48.ad l
49.BR ilogb ():
70cb8d5e 50.RS 4
cf7fa0a1 51_ISOC99_SOURCE || _POSIX_C_SOURCE\ >=\ 200112L
636ed4d5
MK
52 || _XOPEN_SOURCE\ >=\ 500
53.\" || _XOPEN_SOURCE\ &&\ _XOPEN_SOURCE_EXTENDED
54 || /* Since glibc 2.19: */ _DEFAULT_SOURCE
55 || /* Glibc versions <= 2.19: */ _BSD_SOURCE || _SVID_SOURCE
70cb8d5e 56.RE
d33cd73d
MK
57.br
58.BR ilogbf (),
59.BR ilogbl ():
70cb8d5e 60.RS 4
636ed4d5
MK
61_ISOC99_SOURCE || _POSIX_C_SOURCE\ >=\ 200112L
62 || /* Since glibc 2.19: */ _DEFAULT_SOURCE
63 || /* Glibc versions <= 2.19: */ _BSD_SOURCE || _SVID_SOURCE
70cb8d5e 64.RE
d33cd73d 65.ad b
fea681da
MK
66.SH DESCRIPTION
67These functions return the exponent part of their argument
c13182ef
MK
68as a signed integer.
69When no error occurs, these functions
fea681da 70are equivalent to the corresponding
fb186734 71.BR logb (3)
7d2cb9d5 72functions, cast to
d33cd73d
MK
73.IR int .
74.SH RETURN VALUE
75On success, these functions return the exponent of
76.IR x ,
77as a signed integer.
847e0d88 78.PP
fea681da
MK
79If
80.I x
efe294cb
MK
81is zero, then a domain error occurs, and the functions return
82.\" the POSIX.1 spec for logb() says logb() gives pole error for this
83.\" case, but for ilogb() it says domain error.
d33cd73d 84.BR FP_ILOGB0 .
fea681da 85.\" glibc: The numeric value is either `INT_MIN' or `-INT_MAX'.
847e0d88 86.PP
fea681da
MK
87If
88.I x
efe294cb 89is a NaN, then a domain error occurs, and the functions return
d33cd73d 90.BR FP_ILOGBNAN .
fea681da 91.\" glibc: The numeric value is either `INT_MIN' or `INT_MAX'.
d33cd73d 92.\" On i386, FP_ILOGB0 and FP_ILOGBNAN have the same value.
847e0d88 93.PP
fea681da
MK
94If
95.I x
d33cd73d 96is negative infinity or positive infinity, then
efe294cb 97a domain error occurs, and the functions return
d33cd73d
MK
98.BR INT_MAX .
99.\"
100.\" POSIX.1-2001 also says:
4e836144 101.\" If the correct value is greater than {INT_MAX}, {INT_MAX}
d33cd73d
MK
102.\" shall be returned and a domain error shall occur.
103.\"
104.\" If the correct value is less than {INT_MIN}, {INT_MIN}
4e836144 105.\" shall be returned and a domain error shall occur.
d33cd73d
MK
106.SH ERRORS
107See
108.BR math_error (7)
109for information on how to determine whether an error has occurred
110when calling these functions.
111.PP
112The following errors can occur:
113.TP
114Domain error: \fIx\fP is 0 or a NaN
d33cd73d
MK
115An invalid floating-point exception
116.RB ( FE_INVALID )
8ee4373d
MK
117is raised, and
118.I errno
119is set to
120.BR EDOM
121(but see BUGS).
d33cd73d 122.IP
d33cd73d
MK
123.TP
124Domain error: \fIx\fP is an infinity
8ee4373d
MK
125An invalid floating-point exception
126.RB ( FE_INVALID )
127is raised, and
128.I errno
129is set to
130.BR EDOM
131(but see BUGS).
ea00bcb3 132.SH ATTRIBUTES
5b0d5aef
MK
133For an explanation of the terms used in this section, see
134.BR attributes (7).
135.TS
136allbox;
137lbw27 lb lb
138l l l.
139Interface Attribute Value
140T{
ea00bcb3
PH
141.BR ilogb (),
142.BR ilogbf (),
ea00bcb3 143.BR ilogbl ()
5b0d5aef
MK
144T} Thread safety MT-Safe
145.TE
47297adb 146.SH CONFORMING TO
9a74e018 147C99, POSIX.1-2001, POSIX.1-2008.
8ee4373d
MK
148.SH BUGS
149.\" Bug raised: http://sources.redhat.com/bugzilla/show_bug.cgi?id=6794
b5fafa0b 150Before version 2.16, the following bugs existed in the
8ee4373d
MK
151glibc implementation of these functions:
152.IP * 3
153The domain error case where
154.I x
155is 0 or a NaN did not cause
156.I errno
18e93ab8 157to be set or (on some architectures) raise a floating-point exception.
8ee4373d
MK
158.IP * 3
159The domain error case where
160.I x
161is an infinity did not cause
162.I errno
163to be set or raise a floating-point exception.
47297adb 164.SH SEE ALSO
fea681da 165.BR log (3),
55975b54
MK
166.BR logb (3),
167.BR significand (3)