X-Git-Url: http://git.ipfire.org/?a=blobdiff_plain;f=man3%2Frint.3;h=b05285364354cf37a29a37b05d540e73a79ae0f1;hb=ebfb6feee6d255957a1d7b9a47a9a8ffac730153;hp=a6609085b85596eafe1dc8cf123cb3c686b3f923;hpb=e511ffb6bcaa9a584412a95e602435827e302033;p=thirdparty%2Fman-pages.git diff --git a/man3/rint.3 b/man3/rint.3 index a6609085b8..b052853643 100644 --- a/man3/rint.3 +++ b/man3/rint.3 @@ -1,5 +1,8 @@ .\" Copyright 2001 Andries Brouwer . +.\" and Copyright 2008, Linux Foundation, written by Michael Kerrisk +.\" .\" +.\" %%%LICENSE_START(VERBATIM) .\" 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. @@ -8,7 +11,7 @@ .\" 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 @@ -16,72 +19,143 @@ .\" 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. +.\" %%%LICENSE_END .\" -.TH RINT 3 2001-05-31 "" "Linux Programmer's Manual" +.TH RINT 3 2017-09-15 "" "Linux Programmer's Manual" .SH NAME -nearbyint, nearbyintf, nearbyintl, rint, rintf, rintl \- round to nearest integer +nearbyint, nearbyintf, nearbyintl, rint, rintf, rintl \- round +to nearest integer .SH SYNOPSIS .nf .B #include -.sp +.PP .BI "double nearbyint(double " x ); -.br .BI "float nearbyintf(float " x ); -.br .BI "long double nearbyintl(long double " x ); -.sp +.PP .BI "double rint(double " x ); -.br .BI "float rintf(float " x ); -.br .BI "long double rintl(long double " x ); .fi -.sp -Link with \-lm. +.PP +Link with \fI\-lm\fP. +.PP +.in -4n +Feature Test Macro Requirements for glibc (see +.BR feature_test_macros (7)): +.in +.PP +.ad l +.BR nearbyint (), +.BR nearbyintf (), +.BR nearbyintl (): +.RS 4 +_POSIX_C_SOURCE\ >=\ 200112L || _ISOC99_SOURCE +.RE +.br +.BR rint (): +.RS 4 +_ISOC99_SOURCE || _POSIX_C_SOURCE\ >=\ 200112L + || _XOPEN_SOURCE\ >=\ 500 +.\" || _XOPEN_SOURCE\ &&\ _XOPEN_SOURCE_EXTENDED + || /* Since glibc 2.19: */ _DEFAULT_SOURCE + || /* Glibc versions <= 2.19: */ _BSD_SOURCE || _SVID_SOURCE +.RE +.br +.BR rintf (), +.BR rintl (): +.RS 4 +_ISOC99_SOURCE || _POSIX_C_SOURCE\ >=\ 200112L + || /* Since glibc 2.19: */ _DEFAULT_SOURCE + || /* Glibc versions <= 2.19: */ _BSD_SOURCE || _SVID_SOURCE +.RE +.ad b .SH DESCRIPTION The -.BR nearbyint () -functions round their argument to an integer value in floating point -format, using the current rounding direction and without raising the +.BR nearbyint (), +.BR nearbyintf (), +and +.BR nearbyintl () +functions round their argument to an integer value in floating-point +format, using the current rounding direction (see +.BR fesetround (3)) +and without raising the .I inexact exception. -.LP +When the current rounding direction is to nearest, these +functions round halfway cases to the even integer in accordance with +IEEE-754. +.PP The -.BR rint () +.BR rint (), +.BR rintf (), +and +.BR rintl () functions do the same, but will raise the .I inexact -exception when the result differs in value from the argument. -.SH "RETURN VALUE" -The rounded integer value. If \fIx\fP is integral or infinite, -\fIx\fP itself is returned. +exception +.RB ( FE_INEXACT , +checkable via +.BR fetestexcept (3)) +when the result differs in value from the argument. +.SH RETURN VALUE +These functions return the rounded integer value. +.PP +If +.I x +is integral, +0, \-0, NaN, or infinite, +.I x +itself is returned. .SH ERRORS -No errors other than EDOM and ERANGE can occur. -If \fIx\fP is NaN, then NaN is returned and -.I errno -may be set to EDOM. +No errors occur. +POSIX.1-2001 documents a range error for overflows, but see NOTES. +.SH ATTRIBUTES +For an explanation of the terms used in this section, see +.BR attributes (7). +.TS +allbox; +lbw26 lb lb +l l l. +Interface Attribute Value +T{ +.BR nearbyint (), +.BR nearbyintf (), +.br +.BR nearbyintl (), +.BR rint (), +.br +.BR rintf (), +.BR rintl () +T} Thread safety MT-Safe +.TE +.SH CONFORMING TO +C99, POSIX.1-2001, POSIX.1-2008. .SH NOTES -SUSv2 and POSIX 1003.1-2001 contain text about overflow (which might set +SUSv2 and POSIX.1-2001 contain text about overflow (which might set .I errno -to ERANGE, or raise an exception). +to +.BR ERANGE , +or raise an +.B FE_OVERFLOW +exception). In practice, the result cannot overflow on any current machine, so this error-handling stuff is just nonsense. (More precisely, overflow can happen only when the maximum value of the exponent is smaller than the number of mantissa bits. -For the IEEE-754 standard 32-bit and 64-bit floating point numbers -the maximum value of the exponent is 128 (resp. 1024), and the number -of mantissa bits is 24 (resp. 53).) -.SH "CONFORMING TO" -The -.B rint() -function conforms to 4.3BSD. -The other functions are from C99. -.SH "SEE ALSO" +For the IEEE-754 standard 32-bit and 64-bit floating-point numbers +the maximum value of the exponent is 128 (respectively, 1024), +and the number of mantissa bits is 24 (respectively, 53).) +.PP +If you want to store the rounded value in an integer type, +you probably want to use one of the functions described in +.BR lrint (3) +instead. +.SH SEE ALSO .BR ceil (3), .BR floor (3), .BR lrint (3), -.BR nearbyint (3), .BR round (3), .BR trunc (3)