xref: /freebsd/lib/msun/man/ieee.3 (revision 7a15a32a17f4c2cbeb6f842c4c6b1cf93e4639e7)
13a8617a8SJordan K. Hubbard.\" Copyright (c) 1985, 1991 Regents of the University of California.
23a8617a8SJordan K. Hubbard.\" All rights reserved.
33a8617a8SJordan K. Hubbard.\"
43a8617a8SJordan K. Hubbard.\" Redistribution and use in source and binary forms, with or without
53a8617a8SJordan K. Hubbard.\" modification, are permitted provided that the following conditions
63a8617a8SJordan K. Hubbard.\" are met:
73a8617a8SJordan K. Hubbard.\" 1. Redistributions of source code must retain the above copyright
83a8617a8SJordan K. Hubbard.\"    notice, this list of conditions and the following disclaimer.
93a8617a8SJordan K. Hubbard.\" 2. Redistributions in binary form must reproduce the above copyright
103a8617a8SJordan K. Hubbard.\"    notice, this list of conditions and the following disclaimer in the
113a8617a8SJordan K. Hubbard.\"    documentation and/or other materials provided with the distribution.
123a8617a8SJordan K. Hubbard.\" 3. All advertising materials mentioning features or use of this software
133a8617a8SJordan K. Hubbard.\"    must display the following acknowledgement:
143a8617a8SJordan K. Hubbard.\"	This product includes software developed by the University of
153a8617a8SJordan K. Hubbard.\"	California, Berkeley and its contributors.
163a8617a8SJordan K. Hubbard.\" 4. Neither the name of the University nor the names of its contributors
173a8617a8SJordan K. Hubbard.\"    may be used to endorse or promote products derived from this software
183a8617a8SJordan K. Hubbard.\"    without specific prior written permission.
193a8617a8SJordan K. Hubbard.\"
203a8617a8SJordan K. Hubbard.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
213a8617a8SJordan K. Hubbard.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
223a8617a8SJordan K. Hubbard.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
233a8617a8SJordan K. Hubbard.\" ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
243a8617a8SJordan K. Hubbard.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
253a8617a8SJordan K. Hubbard.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
263a8617a8SJordan K. Hubbard.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
273a8617a8SJordan K. Hubbard.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
283a8617a8SJordan K. Hubbard.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
293a8617a8SJordan K. Hubbard.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
303a8617a8SJordan K. Hubbard.\" SUCH DAMAGE.
313a8617a8SJordan K. Hubbard.\"
323a8617a8SJordan K. Hubbard.\"     from: @(#)ieee.3	6.4 (Berkeley) 5/6/91
337a15a32aSJordan K. Hubbard.\"	$Id: ieee.3,v 1.1.1.1 1994/08/19 09:39:42 jkh Exp $
343a8617a8SJordan K. Hubbard.\"
353a8617a8SJordan K. Hubbard.Dd Feb 25, 1994
363a8617a8SJordan K. Hubbard.Dt IEEE 3
373a8617a8SJordan K. Hubbard.Os
383a8617a8SJordan K. Hubbard.Sh NAME
393a8617a8SJordan K. Hubbard.Nm copysign ,
407a15a32aSJordan K. Hubbard.Nm copysignf ,
413a8617a8SJordan K. Hubbard.Nm finite ,
427a15a32aSJordan K. Hubbard.Nm finitef ,
433a8617a8SJordan K. Hubbard.Nm ilogb ,
447a15a32aSJordan K. Hubbard.Nm ilogbf ,
453a8617a8SJordan K. Hubbard.Nm nextafter ,
467a15a32aSJordan K. Hubbard.Nm nextafterf ,
473a8617a8SJordan K. Hubbard.Nm remainder ,
487a15a32aSJordan K. Hubbard.Nm remainderf ,
497a15a32aSJordan K. Hubbard.Nm scalbn ,
507a15a32aSJordan K. Hubbard.Nm scalbnf
513a8617a8SJordan K. Hubbard.Nd Functions for IEEE arithmetic
523a8617a8SJordan K. Hubbard.Sh SYNOPSIS
533a8617a8SJordan K. Hubbard.Fd #include <math.h>
543a8617a8SJordan K. Hubbard.Ft double
553a8617a8SJordan K. Hubbard.Fn copysign "double x" "double y"
567a15a32aSJordan K. Hubbard.Ft float
577a15a32aSJordan K. Hubbard.Fn copysignf "float x" "float y"
583a8617a8SJordan K. Hubbard.Ft int
593a8617a8SJordan K. Hubbard.Fn finite "double x"
603a8617a8SJordan K. Hubbard.Ft int
617a15a32aSJordan K. Hubbard.Fn finitef "float x"
627a15a32aSJordan K. Hubbard.Ft int
633a8617a8SJordan K. Hubbard.Fn ilogb "double x"
647a15a32aSJordan K. Hubbard.Ft int
657a15a32aSJordan K. Hubbard.Fn ilogbf "float x"
663a8617a8SJordan K. Hubbard.Ft double
673a8617a8SJordan K. Hubbard.Fn nextafter "double x" "double y"
687a15a32aSJordan K. Hubbard.Ft float
697a15a32aSJordan K. Hubbard.Fn nextafterf "float x" "float y"
703a8617a8SJordan K. Hubbard.Ft double
713a8617a8SJordan K. Hubbard.Fn remainder "double x" "double y"
727a15a32aSJordan K. Hubbard.Ft float
737a15a32aSJordan K. Hubbard.Fn remainderf "float x" "float y"
743a8617a8SJordan K. Hubbard.Ft double
753a8617a8SJordan K. Hubbard.Fn scalbn "double x" "int n"
767a15a32aSJordan K. Hubbard.Ft float
777a15a32aSJordan K. Hubbard.Fn scalbnf "float x" "int n"
783a8617a8SJordan K. Hubbard.Sh DESCRIPTION
793a8617a8SJordan K. HubbardThese functions are required or recommended by
803a8617a8SJordan K. Hubbard.St -ieee754 .
813a8617a8SJordan K. Hubbard.Pp
823a8617a8SJordan K. Hubbard.Fn copysign
837a15a32aSJordan K. Hubbardand
847a15a32aSJordan K. Hubbard.Fn copysignf
857a15a32aSJordan K. Hubbardreturn
863a8617a8SJordan K. Hubbard.Fa x
873a8617a8SJordan K. Hubbardwith its sign changed to
883a8617a8SJordan K. Hubbard.Fa y Ns 's.
893a8617a8SJordan K. Hubbard.Pp
903a8617a8SJordan K. Hubbard.Fn finite
917a15a32aSJordan K. Hubbardand
927a15a32aSJordan K. Hubbard.Fn finitef
937a15a32aSJordan K. Hubbardreturn the value 1 just when
943a8617a8SJordan K. Hubbard\-\*(If \*(Lt
953a8617a8SJordan K. Hubbard.Fa x
963a8617a8SJordan K. Hubbard\*(Lt +\*(If;
973a8617a8SJordan K. Hubbardotherwise a
983a8617a8SJordan K. Hubbardzero is returned
993a8617a8SJordan K. Hubbard(when
1003a8617a8SJordan K. Hubbard.Pf \\*(Ba Ns Fa x Ns \\*(Ba
1013a8617a8SJordan K. Hubbard= \*(If or
1023a8617a8SJordan K. Hubbard.Fa x
1033a8617a8SJordan K. Hubbardis \*(Na
1043a8617a8SJordan K. Hubbard.Pp
1053a8617a8SJordan K. Hubbard.Fn ilogb
1067a15a32aSJordan K. Hubbardand
1077a15a32aSJordan K. Hubbard.Fn ilogbf
1087a15a32aSJordan K. Hubbardreturn
1093a8617a8SJordan K. Hubbard.Fa x Ns 's exponent
1103a8617a8SJordan K. Hubbard.Fa n ,
1113a8617a8SJordan K. Hubbardin integer format.
1123a8617a8SJordan K. Hubbard.Fn ilogb \*(Pm\*(If
1133a8617a8SJordan K. Hubbardreturns
1143a8617a8SJordan K. Hubbard.Dv INT_MAX
1153a8617a8SJordan K. Hubbardand
1163a8617a8SJordan K. Hubbard.Fn ilogb 0
1173a8617a8SJordan K. Hubbardreturns
1183a8617a8SJordan K. Hubbard.Dv INT_MIN .
1193a8617a8SJordan K. Hubbard.Pp
1203a8617a8SJordan K. Hubbard.Fn nextafter
1217a15a32aSJordan K. Hubbardand
1227a15a32aSJordan K. Hubbard.Fn nextafterf
1237a15a32aSJordan K. Hubbardreturn the next machine representable number from
1243a8617a8SJordan K. Hubbard.Fa x
1253a8617a8SJordan K. Hubbardin direction
1263a8617a8SJordan K. Hubbard.Fa y .
1273a8617a8SJordan K. Hubbard.Pp
1283a8617a8SJordan K. Hubbard.Fn remainder
1297a15a32aSJordan K. Hubbardand
1307a15a32aSJordan K. Hubbard.Fn remainderf
1317a15a32aSJordan K. Hubbardreturn the remainder
1323a8617a8SJordan K. Hubbard.Fa r
1333a8617a8SJordan K. Hubbard:=
1343a8617a8SJordan K. Hubbard.Fa x
1353a8617a8SJordan K. Hubbard\-
1363a8617a8SJordan K. Hubbard.Fa n\(**y
1373a8617a8SJordan K. Hubbardwhere
1383a8617a8SJordan K. Hubbard.Fa n
1393a8617a8SJordan K. Hubbardis the integer nearest the exact value of
1403a8617a8SJordan K. Hubbard.Bk -words
1413a8617a8SJordan K. Hubbard.Fa x Ns / Ns Fa y ;
1423a8617a8SJordan K. Hubbard.Ek
1433a8617a8SJordan K. Hubbardmoreover if
1443a8617a8SJordan K. Hubbard.Pf \\*(Ba Fa n
1453a8617a8SJordan K. Hubbard\-
1463a8617a8SJordan K. Hubbard.Sm off
1473a8617a8SJordan K. Hubbard.Fa x No / Fa y No \\*(Ba
1483a8617a8SJordan K. Hubbard.Sm on
1493a8617a8SJordan K. Hubbard=
1503a8617a8SJordan K. Hubbard1/2
1513a8617a8SJordan K. Hubbardthen
1523a8617a8SJordan K. Hubbard.Fa n
1533a8617a8SJordan K. Hubbardis even.  Consequently
1543a8617a8SJordan K. Hubbardthe remainder is computed exactly and
1553a8617a8SJordan K. Hubbard.Sm off
1563a8617a8SJordan K. Hubbard.Pf \\*(Ba Fa r No \\*(Ba
1573a8617a8SJordan K. Hubbard.Sm on
1583a8617a8SJordan K. Hubbard\*(Le
1593a8617a8SJordan K. Hubbard.Sm off
1603a8617a8SJordan K. Hubbard.Pf \\*(Ba Fa y No \\*(Ba/2.
1613a8617a8SJordan K. Hubbard.Sm on
1623a8617a8SJordan K. HubbardBut
1633a8617a8SJordan K. Hubbard.Fn remainder x 0
1643a8617a8SJordan K. Hubbardand
1653a8617a8SJordan K. Hubbard.Fn remainder \*(If 0
1663a8617a8SJordan K. Hubbardare invalid operations that produce a \*(Na.
1673a8617a8SJordan K. Hubbard.Pp
1683a8617a8SJordan K. Hubbard.Fn scalbn
1697a15a32aSJordan K. Hubbardand
1707a15a32aSJordan K. Hubbard.Fn scalbnf
1717a15a32aSJordan K. Hubbardreturn
1723a8617a8SJordan K. Hubbard.Fa x Ns \(**(2** Ns Fa n )
1733a8617a8SJordan K. Hubbardcomputed by exponent manipulation.
1743a8617a8SJordan K. Hubbard.Sh SEE ALSO
1753a8617a8SJordan K. Hubbard.Xr math 3
1763a8617a8SJordan K. Hubbard.Sh HISTORY
1773a8617a8SJordan K. HubbardThe
1783a8617a8SJordan K. Hubbard.Nm ieee
1793a8617a8SJordan K. Hubbardfunctions appeared in
1803a8617a8SJordan K. Hubbard.Bx 4.3 .
1813a8617a8SJordan K. Hubbard.Sh STANDARDS
1823a8617a8SJordan K. Hubbard.St -ieee754
183