xref: /freebsd/lib/msun/man/ieee.3 (revision 24a0682c6465290759ed0b09ea16e40e7cd47053)
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
337f3dea24SPeter Wemm.\" $FreeBSD$
343a8617a8SJordan K. Hubbard.\"
352f90a15eSDavid Schultz.Dd June 20, 2004
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 ,
41b60cb13fSStefan Farfeleder.Nm copysignl ,
423a8617a8SJordan K. Hubbard.Nm finite ,
437a15a32aSJordan K. Hubbard.Nm finitef ,
443a8617a8SJordan K. Hubbard.Nm ilogb ,
457a15a32aSJordan K. Hubbard.Nm ilogbf ,
462fd3a32eSStefan Farfeleder.Nm ilogbl ,
473a8617a8SJordan K. Hubbard.Nm nextafter ,
487a15a32aSJordan K. Hubbard.Nm nextafterf ,
493a8617a8SJordan K. Hubbard.Nm remainder ,
507a15a32aSJordan K. Hubbard.Nm remainderf ,
512f90a15eSDavid Schultz.Nm scalbln ,
522f90a15eSDavid Schultz.Nm scalblnf ,
537a15a32aSJordan K. Hubbard.Nm scalbn ,
547a15a32aSJordan K. Hubbard.Nm scalbnf
55eb083802SRuslan Ermilov.Nd functions for IEEE arithmetic
5664890443SBruce Evans.Sh LIBRARY
5764890443SBruce Evans.Lb libm
583a8617a8SJordan K. Hubbard.Sh SYNOPSIS
5932eef9aeSRuslan Ermilov.In math.h
603a8617a8SJordan K. Hubbard.Ft double
613a8617a8SJordan K. Hubbard.Fn copysign "double x" "double y"
627a15a32aSJordan K. Hubbard.Ft float
637a15a32aSJordan K. Hubbard.Fn copysignf "float x" "float y"
64b60cb13fSStefan Farfeleder.Ft long double
65b60cb13fSStefan Farfeleder.Fn copysignl "long double x" "long double y"
663a8617a8SJordan K. Hubbard.Ft int
673a8617a8SJordan K. Hubbard.Fn finite "double x"
683a8617a8SJordan K. Hubbard.Ft int
697a15a32aSJordan K. Hubbard.Fn finitef "float x"
707a15a32aSJordan K. Hubbard.Ft int
713a8617a8SJordan K. Hubbard.Fn ilogb "double x"
727a15a32aSJordan K. Hubbard.Ft int
737a15a32aSJordan K. Hubbard.Fn ilogbf "float x"
742fd3a32eSStefan Farfeleder.Ft int
752fd3a32eSStefan Farfeleder.Fn ilogbl "long double x"
763a8617a8SJordan K. Hubbard.Ft double
773a8617a8SJordan K. Hubbard.Fn nextafter "double x" "double y"
787a15a32aSJordan K. Hubbard.Ft float
797a15a32aSJordan K. Hubbard.Fn nextafterf "float x" "float y"
803a8617a8SJordan K. Hubbard.Ft double
813a8617a8SJordan K. Hubbard.Fn remainder "double x" "double y"
827a15a32aSJordan K. Hubbard.Ft float
837a15a32aSJordan K. Hubbard.Fn remainderf "float x" "float y"
843a8617a8SJordan K. Hubbard.Ft double
852f90a15eSDavid Schultz.Fn scalbln "double x" "long n"
862f90a15eSDavid Schultz.Ft float
872f90a15eSDavid Schultz.Fn scalblnf "float x" "long n"
882f90a15eSDavid Schultz.Ft double
893a8617a8SJordan K. Hubbard.Fn scalbn "double x" "int n"
907a15a32aSJordan K. Hubbard.Ft float
917a15a32aSJordan K. Hubbard.Fn scalbnf "float x" "int n"
923a8617a8SJordan K. Hubbard.Sh DESCRIPTION
933a8617a8SJordan K. HubbardThese functions are required or recommended by
943a8617a8SJordan K. Hubbard.St -ieee754 .
953a8617a8SJordan K. Hubbard.Pp
96862b46f6SRuslan ErmilovThe
97b60cb13fSStefan Farfeleder.Fn copysign ,
987a15a32aSJordan K. Hubbard.Fn copysignf
99b60cb13fSStefan Farfelederand
100b60cb13fSStefan Farfeleder.Fn copysignl
101862b46f6SRuslan Ermilovfunctions
1027a15a32aSJordan K. Hubbardreturn
1033a8617a8SJordan K. Hubbard.Fa x
1043a8617a8SJordan K. Hubbardwith its sign changed to
1053a8617a8SJordan K. Hubbard.Fa y Ns 's .
1063a8617a8SJordan K. Hubbard.Pp
1073a8617a8SJordan K. Hubbard.Fn finite
1087a15a32aSJordan K. Hubbardand
1097a15a32aSJordan K. Hubbard.Fn finitef
1107a15a32aSJordan K. Hubbardreturn the value 1 just when
1113a8617a8SJordan K. Hubbard\-\*(If \*(Lt
1123a8617a8SJordan K. Hubbard.Fa x
1133a8617a8SJordan K. Hubbard\*(Lt +\*(If;
1143a8617a8SJordan K. Hubbardotherwise a
1153a8617a8SJordan K. Hubbardzero is returned
1163a8617a8SJordan K. Hubbard(when
1173a8617a8SJordan K. Hubbard.Pf \\*(Ba Ns Fa x Ns \\*(Ba
1183a8617a8SJordan K. Hubbard= \*(If or
1193a8617a8SJordan K. Hubbard.Fa x
120211feb61SDima Dorfmanis \*(Na).
1213a8617a8SJordan K. Hubbard.Pp
1222fd3a32eSStefan Farfeleder.Fn ilogb ,
1237a15a32aSJordan K. Hubbard.Fn ilogbf
1242fd3a32eSStefan Farfelederand
1252fd3a32eSStefan Farfeleder.Fn ilogbl
1267a15a32aSJordan K. Hubbardreturn
127211feb61SDima Dorfman.Fa x Ns 's exponent,
1283a8617a8SJordan K. Hubbardin integer format.
1293a8617a8SJordan K. Hubbard.Fn ilogb \*(Pm\*(If
1303a8617a8SJordan K. Hubbardreturns
13132ef5abfSStefan Farfeleder.Dv INT_MAX ,
13232ef5abfSStefan Farfeleder.Fn ilogb \*(Pm\*(Na
13332ef5abfSStefan Farfelederreturns
13432ef5abfSStefan Farfeleder.Dv FP_ILOGBNAN
1353a8617a8SJordan K. Hubbardand
1363a8617a8SJordan K. Hubbard.Fn ilogb 0
1373a8617a8SJordan K. Hubbardreturns
13832ef5abfSStefan Farfeleder.Dv FP_ILOGB0 .
1393a8617a8SJordan K. Hubbard.Pp
1403a8617a8SJordan K. Hubbard.Fn nextafter
1417a15a32aSJordan K. Hubbardand
1427a15a32aSJordan K. Hubbard.Fn nextafterf
1437a15a32aSJordan K. Hubbardreturn the next machine representable number from
1443a8617a8SJordan K. Hubbard.Fa x
1453a8617a8SJordan K. Hubbardin direction
1463a8617a8SJordan K. Hubbard.Fa y .
1473a8617a8SJordan K. Hubbard.Pp
1483a8617a8SJordan K. Hubbard.Fn remainder
1497a15a32aSJordan K. Hubbardand
1507a15a32aSJordan K. Hubbard.Fn remainderf
1517a15a32aSJordan K. Hubbardreturn the remainder
1523a8617a8SJordan K. Hubbard.Fa r
1533a8617a8SJordan K. Hubbard:=
1543a8617a8SJordan K. Hubbard.Fa x
1553a8617a8SJordan K. Hubbard\-
1563a8617a8SJordan K. Hubbard.Fa n\(**y
1573a8617a8SJordan K. Hubbardwhere
1583a8617a8SJordan K. Hubbard.Fa n
1593a8617a8SJordan K. Hubbardis the integer nearest the exact value of
1603a8617a8SJordan K. Hubbard.Bk -words
1613a8617a8SJordan K. Hubbard.Fa x Ns / Ns Fa y ;
1623a8617a8SJordan K. Hubbard.Ek
1633a8617a8SJordan K. Hubbardmoreover if
1643a8617a8SJordan K. Hubbard.Pf \\*(Ba Fa n
1653a8617a8SJordan K. Hubbard\-
1663a8617a8SJordan K. Hubbard.Sm off
1673a8617a8SJordan K. Hubbard.Fa x No / Fa y No \\*(Ba
1683a8617a8SJordan K. Hubbard.Sm on
1693a8617a8SJordan K. Hubbard=
1703a8617a8SJordan K. Hubbard1/2
1713a8617a8SJordan K. Hubbardthen
1723a8617a8SJordan K. Hubbard.Fa n
1731a0a9345SRuslan Ermilovis even.
1741a0a9345SRuslan ErmilovConsequently
1753a8617a8SJordan K. Hubbardthe remainder is computed exactly and
1763a8617a8SJordan K. Hubbard.Sm off
1773a8617a8SJordan K. Hubbard.Pf \\*(Ba Fa r No \\*(Ba
1783a8617a8SJordan K. Hubbard.Sm on
1793a8617a8SJordan K. Hubbard\*(Le
1803a8617a8SJordan K. Hubbard.Sm off
1813a8617a8SJordan K. Hubbard.Pf \\*(Ba Fa y No \\*(Ba/2 .
1823a8617a8SJordan K. Hubbard.Sm on
1833a8617a8SJordan K. HubbardBut
1843a8617a8SJordan K. Hubbard.Fn remainder x 0
1853a8617a8SJordan K. Hubbardand
1863a8617a8SJordan K. Hubbard.Fn remainder \*(If 0
1873a8617a8SJordan K. Hubbardare invalid operations that produce a \*(Na.
1883a8617a8SJordan K. Hubbard.Pp
1892f90a15eSDavid Schultz.Fn scalbln ,
1902f90a15eSDavid Schultz.Fn scalblnf ,
1912f90a15eSDavid Schultz.Fn scalbn ,
1927a15a32aSJordan K. Hubbardand
1937a15a32aSJordan K. Hubbard.Fn scalbnf
1947a15a32aSJordan K. Hubbardreturn
1953a8617a8SJordan K. Hubbard.Fa x Ns \(**(2** Ns Fa n )
1963a8617a8SJordan K. Hubbardcomputed by exponent manipulation.
1973a8617a8SJordan K. Hubbard.Sh SEE ALSO
1983a8617a8SJordan K. Hubbard.Xr math 3
19924a0682cSRuslan Ermilov.Sh STANDARDS
20024a0682cSRuslan Ermilov.St -ieee754
2013a8617a8SJordan K. Hubbard.Sh HISTORY
2023a8617a8SJordan K. HubbardThe
2033a8617a8SJordan K. Hubbard.Nm ieee
2043a8617a8SJordan K. Hubbardfunctions appeared in
2053a8617a8SJordan K. Hubbard.Bx 4.3 .
206b60cb13fSStefan FarfelederThe
2072f90a15eSDavid Schultz.Fn copysignl ,
2082f90a15eSDavid Schultz.Fn scalbln ,
2092f90a15eSDavid Schultzand
2102f90a15eSDavid Schultz.Fn scalblnf
2112f90a15eSDavid Schultzfunctions first appeared in
212b60cb13fSStefan Farfeleder.Fx 5.3 .
213