]> git.ipfire.org Git - thirdparty/man-pages.git/blobdiff - man3/remainder.3
rename.2: SEE ALSO: add rename(1)
[thirdparty/man-pages.git] / man3 / remainder.3
index 71d5473d213a3fb0d76373459e06581905b7303f..59b2038e81674133cab676505afb05901f607011 100644 (file)
 .\"    (walter.harms@informatik.uni-oldenburg.de)
 .\" Modified 2003-11-18, 2004-10-05 aeb
 .\"
-.TH REMAINDER 3 2015-04-19 "" "Linux Programmer's Manual"
+.TH REMAINDER 3 2017-09-15 "" "Linux Programmer's Manual"
 .SH NAME
 drem, dremf, dreml, remainder, remainderf, remainderl \- \
 floating-point remainder function
 .SH SYNOPSIS
 .nf
 .B #include <math.h>
-.sp
+.PP
 /* The C99 versions */
 .BI "double remainder(double " x ", double " y );
 .BI "float remainderf(float " x ", float " y );
 .BI "long double remainderl(long double " x ", long double " y );
-.sp
+.PP
 /* Obsolete synonyms */
 .BI "double drem(double " x ", double " y );
 .BI "float dremf(float " x ", float " y );
 .BI "long double dreml(long double " x ", long double " y );
-.sp
+.PP
 .fi
 Link with \fI\-lm\fP.
-.sp
+.PP
 .in -4n
 Feature Test Macro Requirements for glibc (see
 .BR feature_test_macros (7)):
 .in
-.sp
+.PP
 .ad l
 .BR remainder ():
 .RS 4
-_SVID_SOURCE || _BSD_SOURCE || _XOPEN_SOURCE\ >=\ 500 ||
-_XOPEN_SOURCE\ &&\ _XOPEN_SOURCE_EXTENDED ||
 _ISOC99_SOURCE || _POSIX_C_SOURCE\ >=\ 200112L
-.br
-or
-.I cc\ -std=c99
+    || _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 remainderf (),
 .BR remainderl ():
 .RS 4
-_BSD_SOURCE || _SVID_SOURCE || _ISOC99_SOURCE || _POSIX_C_SOURCE\ >=\ 200112L
-.br
-or
-.I cc\ -std=c99
+_ISOC99_SOURCE || _POSIX_C_SOURCE\ >=\ 200112L
+    || /* Since glibc 2.19: */ _DEFAULT_SOURCE
+    || /* Glibc versions <= 2.19: */ _BSD_SOURCE || _SVID_SOURCE
 .RE
 .br
 .BR drem (),
 .BR dremf (),
 .BR dreml ():
 .RS 4
-_SVID_SOURCE || _BSD_SOURCE
+/* Since glibc 2.19: */ _DEFAULT_SOURCE
+    || /* Glibc versions <= 2.19: */ _BSD_SOURCE || _SVID_SOURCE
 .RE
 .ad b
 .SH DESCRIPTION
@@ -105,10 +104,10 @@ If the absolute value of
 is 0.5,
 .I n
 is chosen to be even.
-
+.PP
 These functions are unaffected by the current rounding mode (see
 .BR fenv (3)).
-.LP
+.PP
 The
 .BR drem ()
 function does precisely the same thing.
@@ -118,13 +117,13 @@ functions return the floating-point remainder,
 \fIx\fP\-\fIn\fP*\fIy\fP.
 If the return value is 0, it has the sign of
 .IR x .
-
+.PP
 If
 .I x
 or
 .I y
 is a NaN, a NaN is returned.
-
+.PP
 If
 .I x
 is an infinity,
@@ -133,7 +132,7 @@ and
 is not a NaN,
 a domain error occurs, and
 a NaN is returned.
-
+.PP
 If
 .I y
 is zero,
@@ -153,9 +152,10 @@ when calling these functions.
 The following errors can occur:
 .TP
 Domain error: \fIx\fP is an infinity and \fIy\fP is not a NaN
-.\" .I errno
-.\" is set to
-.\" .BR EDOM .
+.I errno
+is set to
+.BR EDOM
+(but see BUGS).
 An invalid floating-point exception
 .RB ( FE_INVALID )
 is raised.
@@ -163,9 +163,6 @@ is raised.
 These functions do not set
 .IR errno
 for this case.
-.\" FIXME . Is it intentional that these functions do not set errno?
-.\" They do set errno for the y == 0 case, below.
-.\" Bug raised: http://sources.redhat.com/bugzilla/show_bug.cgi?id=6783
 .TP
 Domain error: \fIy\fP is zero\" [XXX see bug above] and \fIx\fP is not a NaN
 .I errno
@@ -201,7 +198,7 @@ The functions
 and
 .BR remainderl ()
 are specified in C99, POSIX.1-2001, and POSIX.1-2008.
-
+.PP
 The function
 .BR drem ()
 is from 4.3BSD.
@@ -218,14 +215,25 @@ Avoid the use of these functions in favor of
 .BR remainder ()
 etc.
 .SH BUGS
-The call
-
+Before glibc 2.15,
+.\" http://sources.redhat.com/bugzilla/show_bug.cgi?id=6779
+the call
+.PP
     remainder(nan(""), 0);
-
-returns a NaN, as expected, but wrongly causes a domain error;
-it should yield a silent NaN.
-.\" FIXME . this bug occurs as at glibc 2.8.
-.\" Bug raised: http://sources.redhat.com/bugzilla/show_bug.cgi?id=6779
+.PP
+returned a NaN, as expected, but wrongly caused a domain error.
+Since glibc 2.15, a silent NaN (i.e., no domain error) is returned.
+.PP
+Before glibc 2.15,
+.\" http://sources.redhat.com/bugzilla/show_bug.cgi?id=6783
+.I errno
+was not set to
+.BR EDOM
+for the domain error that occurs when
+.I x
+is an infinity and
+.I y
+is not a NaN.
 .SH EXAMPLE
 The call "remainder(29.0, 3.0)" returns \-1.
 .SH SEE ALSO