| .\" Copyright (c) 1985, 1991 Regents of the University of California. |
| .\" All rights reserved. |
| .\" |
| .\" Redistribution and use in source and binary forms, with or without |
| .\" modification, are permitted provided that the following conditions |
| .\" are met: |
| .\" 1. Redistributions of source code must retain the above copyright |
| .\" notice, this list of conditions and the following disclaimer. |
| .\" 2. Redistributions in binary form must reproduce the above copyright |
| .\" notice, this list of conditions and the following disclaimer in the |
| .\" documentation and/or other materials provided with the distribution. |
| .\" 3. All advertising materials mentioning features or use of this software |
| .\" must display the following acknowledgement: |
| .\" This product includes software developed by the University of |
| .\" California, Berkeley and its contributors. |
| .\" 4. Neither the name of the University nor the names of its contributors |
| .\" may be used to endorse or promote products derived from this software |
| .\" without specific prior written permission. |
| .\" |
| .\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND |
| .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE |
| .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE |
| .\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE |
| .\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL |
| .\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS |
| .\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) |
| .\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT |
| .\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY |
| .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF |
| .\" SUCH DAMAGE. |
| .\" |
| .\" from: @(#)ieee.3 6.4 (Berkeley) 5/6/91 |
| .\" $FreeBSD: src/lib/msun/man/remainder.3,v 1.4 2005/11/24 09:25:10 joel Exp $ |
| .\" |
| .Dd March 24, 2005 |
| .Dt REMAINDER 3 |
| .Os |
| .Sh NAME |
| .Nm remainder , |
| .Nm remainderf , |
| .Nm remquo , |
| .Nm remquof |
| .Nd minimal residue functions |
| .Sh LIBRARY |
| .Lb libm |
| .Sh SYNOPSIS |
| .In math.h |
| .Ft double |
| .Fn remainder "double x" "double y" |
| .Ft float |
| .Fn remainderf "float x" "float y" |
| .Ft double |
| .Fn remquo "double x" "double y" "int *quo" |
| .Ft float |
| .Fn remquof "float x" "float y" "int *quo" |
| .Sh DESCRIPTION |
| .Fn remainder , |
| .Fn remainderf , |
| .Fn remquo , |
| and |
| .Fn remquof |
| return the remainder |
| .Fa r |
| := |
| .Fa x |
| \- |
| .Fa n\(**y |
| where |
| .Fa n |
| is the integer nearest the exact value of |
| .Bk -words |
| .Fa x Ns / Ns Fa y ; |
| .Ek |
| moreover if |
| .Pf \\*(Ba Fa n |
| \- |
| .Sm off |
| .Fa x No / Fa y No \\*(Ba |
| .Sm on |
| = |
| 1/2 |
| then |
| .Fa n |
| is even. |
| Consequently |
| the remainder is computed exactly and |
| .Sm off |
| .Pf \\*(Ba Fa r No \\*(Ba |
| .Sm on |
| \*(Le |
| .Sm off |
| .Pf \\*(Ba Fa y No \\*(Ba/2 . |
| .Sm on |
| But attempting to take the remainder when |
| .Fa y |
| is 0 or |
| .Fa x |
| is \*(Pm\*(If is an invalid operation that produces a \*(Na. |
| .Pp |
| The |
| .Fn remquo |
| and |
| .Fn remquof |
| functions also store the last |
| .Va k |
| bits of |
| .Fa n |
| in the location pointed to by |
| .Fa quo , |
| provided that |
| .Fa n |
| exists. |
| The number of bits |
| .Va k |
| is platform-specific, but is guaranteed to be at least 3. |
| .Sh SEE ALSO |
| .Xr fmod 3 , |
| .Xr ieee 3 , |
| .Xr math 3 |
| .Sh STANDARDS |
| The |
| .Fn remainder , |
| .Fn remainderf , |
| .Fn remquo , |
| and |
| .Fn remquof |
| routines conform to |
| .St -isoC-99 . |
| The remainder is as defined in |
| .St -ieee754 . |
| .Sh HISTORY |
| The |
| .Fn remainder |
| and |
| .Fn remainderf |
| functions appeared in |
| .Bx 4.3 |
| and |
| .Fx 2.0 , |
| respectively. |
| The |
| .Fn remquo |
| and |
| .Fn remquof |
| functions were added in |
| .Fx 6.0 . |