xref: /freebsd/lib/msun/man/remainder.3 (revision 4b9d6057)
1.\" Copyright (c) 1985, 1991 Regents of the University of California.
2.\" All rights reserved.
3.\"
4.\" Redistribution and use in source and binary forms, with or without
5.\" modification, are permitted provided that the following conditions
6.\" are met:
7.\" 1. Redistributions of source code must retain the above copyright
8.\"    notice, this list of conditions and the following disclaimer.
9.\" 2. Redistributions in binary form must reproduce the above copyright
10.\"    notice, this list of conditions and the following disclaimer in the
11.\"    documentation and/or other materials provided with the distribution.
12.\" 3. Neither the name of the University nor the names of its contributors
13.\"    may be used to endorse or promote products derived from this software
14.\"    without specific prior written permission.
15.\"
16.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
17.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
18.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
19.\" ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
20.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
21.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
22.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
23.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
24.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
25.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
26.\" SUCH DAMAGE.
27.\"
28.Dd March 30, 2008
29.Dt REMAINDER 3
30.Os
31.Sh NAME
32.Nm remainder ,
33.Nm remainderf ,
34.Nm remainderl ,
35.Nm remquo ,
36.Nm remquof ,
37.Nm remquol
38.Nd minimal residue functions
39.Sh LIBRARY
40.Lb libm
41.Sh SYNOPSIS
42.In math.h
43.Ft double
44.Fn remainder "double x" "double y"
45.Ft float
46.Fn remainderf "float x" "float y"
47.Ft long double
48.Fn remainderl "long double x" "long double y"
49.Ft double
50.Fn remquo "double x" "double y" "int *quo"
51.Ft float
52.Fn remquof "float x" "float y" "int *quo"
53.Ft long double
54.Fn remquol "long double x" "long double y" "int *quo"
55.Sh DESCRIPTION
56.Fn remainder ,
57.Fn remainderf ,
58.Fn remainderl ,
59.Fn remquo ,
60.Fn remquof ,
61and
62.Fn remquol
63return the remainder
64.Fa r
65:=
66.Fa x
67\-
68.Fa n\(**y
69where
70.Fa n
71is the integer nearest the exact value of
72.Bk -words
73.Fa x Ns / Ns Fa y ;
74.Ek
75moreover if
76.Pf \*(Ba Fa n
77\-
78.Sm off
79.Fa x No / Fa y No \*(Ba
80.Sm on
81=
821/2
83then
84.Fa n
85is even.
86Consequently
87the remainder is computed exactly and
88.Sm off
89.Pf \*(Ba Fa r No \*(Ba
90.Sm on
91\*(Le
92.Sm off
93.Pf \*(Ba Fa y No \*(Ba/2 .
94.Sm on
95But attempting to take the remainder when
96.Fa y
97is 0 or
98.Fa x
99is \*(Pm\*(If is an invalid operation that produces a \*(Na.
100.Pp
101The
102.Fn remquo ,
103.Fn remquof ,
104and
105.Fn remquol
106functions also store the last
107.Va k
108bits of
109.Fa n
110in the location pointed to by
111.Fa quo ,
112provided that
113.Fa n
114exists.
115The number of bits
116.Va k
117is platform-specific, but is guaranteed to be at least 3.
118.Sh SEE ALSO
119.Xr fmod 3 ,
120.Xr ieee 3 ,
121.Xr math 3
122.Sh STANDARDS
123The
124.Fn remainder ,
125.Fn remainderf ,
126.Fn remainderl ,
127.Fn remquo ,
128.Fn remquof ,
129and
130.Fn remquol
131routines conform to
132.St -isoC-99 .
133The remainder is as defined in
134.St -ieee754 .
135.Sh HISTORY
136The
137.Fn remainder
138and
139.Fn remainderf
140functions appeared in
141.Bx 4.3
142and
143.Fx 2.0 ,
144respectively.
145The
146.Fn remquo
147and
148.Fn remquof
149functions were added in
150.Fx 6.0 ,
151and
152.Fn remainderl
153and
154.Fn remquol
155were added in
156.Fx 8.0 .
157