.\" (walter.harms@informatik.uni-oldenburg.de)
.\" Modified 2003-11-18, 2004-10-05 aeb
.\"
-.TH REMAINDER 3 2016-12-12 "" "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
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.
\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,
is not a NaN,
a domain error occurs, and
a NaN is returned.
-
+.PP
If
.I y
is zero,
and
.BR remainderl ()
are specified in C99, POSIX.1-2001, and POSIX.1-2008.
-
+.PP
The function
.BR drem ()
is from 4.3BSD.
Before glibc 2.15,
.\" http://sources.redhat.com/bugzilla/show_bug.cgi?id=6779
the call
-
+.PP
remainder(nan(""), 0);
-
+.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
is an infinity and
.I y
is not a NaN.
-.I errno was not set
.SH EXAMPLE
The call "remainder(29.0, 3.0)" returns \-1.
.SH SEE ALSO