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