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