Module Name:    src
Committed By:   jruoho
Date:           Tue May 10 06:38:33 UTC 2011

Modified Files:
        src/lib/libm: Makefile
        src/lib/libm/man: ieee.3
Added Files:
        src/lib/libm/man: ilogb.3

Log Message:
Split out the ilogb(3) family out of ieee(3) and properly document it.


To generate a diff of this commit:
cvs rdiff -u -r1.107 -r1.108 src/lib/libm/Makefile
cvs rdiff -u -r1.24 -r1.25 src/lib/libm/man/ieee.3
cvs rdiff -u -r0 -r1.1 src/lib/libm/man/ilogb.3

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/lib/libm/Makefile
diff -u src/lib/libm/Makefile:1.107 src/lib/libm/Makefile:1.108
--- src/lib/libm/Makefile:1.107	Sat Apr 16 05:48:50 2011
+++ src/lib/libm/Makefile	Tue May 10 06:38:33 2011
@@ -1,4 +1,4 @@
-#  $NetBSD: Makefile,v 1.107 2011/04/16 05:48:50 jruoho Exp $
+#  $NetBSD: Makefile,v 1.108 2011/05/10 06:38:33 jruoho Exp $
 #
 #  @(#)Makefile 5.1beta 93/09/24
 #
@@ -204,7 +204,7 @@
 	ceil.3 copysign.3 cos.3 cosh.3 \
 	erf.3 exp.3 \
 	fabs.3 fmod.3 frexp.3 hypot.3 ieee.3 \
-	ieee_test.3 isinff.3 j0.3 ldexp.3 lgamma.3 lrint.3 \
+	ieee_test.3 ilogb.3 isinff.3 j0.3 ldexp.3 lgamma.3 lrint.3 \
 	math.3 modf.3 nextafter.3 \
 	remainder.3 rint.3 round.3 \
 	sin.3 sinh.3 sqrt.3 \
@@ -249,11 +249,11 @@
 MLINKS+=fmod.3 fmodf.3
 MLINKS+=hypot.3 hypotf.3
 MLINKS+=ieee.3 finite.3 ieee.3 finitef.3 				\
-	ieee.3 ilogb.3 ieee.3 ilogbf.3					\
 	ieee.3 scalbn.3 ieee.3 scalbnf.3
 MLINKS+=ieee_test.3 logb.3 ieee_test.3 logbf.3
 MLINKS+=ieee_test.3 scalb.3 ieee_test.3 scalbf.3
 MLINKS+=ieee_test.3 significand.3 ieee_test.3 significandf.3
+MLINKS+=ilogb.3 ilogbf.3					\
 MLINKS+=isinff.3 isnanf.3
 MLINKS+=j0.3 j0f.3 j0.3 j1.3 j0.3 j1f.3 j0.3 jn.3 j0.3 jnf.3 \
 	j0.3 y0.3 j0.3 y0f.3 j0.3 y1.3 j0.3 y1f.3 j0.3 yn.3 j0.3 ynf.3

Index: src/lib/libm/man/ieee.3
diff -u src/lib/libm/man/ieee.3:1.24 src/lib/libm/man/ieee.3:1.25
--- src/lib/libm/man/ieee.3:1.24	Wed Apr 13 04:57:10 2011
+++ src/lib/libm/man/ieee.3	Tue May 10 06:38:33 2011
@@ -26,7 +26,7 @@
 .\" SUCH DAMAGE.
 .\"
 .\"     from: @(#)ieee.3	6.4 (Berkeley) 5/6/91
-.\"	$NetBSD: ieee.3,v 1.24 2011/04/13 04:57:10 jruoho Exp $
+.\"	$NetBSD: ieee.3,v 1.25 2011/05/10 06:38:33 jruoho Exp $
 .\"
 .Dd April 12, 2011
 .Dt IEEE 3
@@ -34,8 +34,6 @@
 .Sh NAME
 .Nm finite ,
 .Nm finitef ,
-.Nm ilogb ,
-.Nm ilogbf ,
 .Nm scalbn ,
 .Nm scalbnf
 .Nd functions for IEEE arithmetic
@@ -47,10 +45,6 @@
 .Fn finite "double x"
 .Ft int
 .Fn finitef "float x"
-.Ft int
-.Fn ilogb "double x"
-.Ft int
-.Fn ilogbf "float x"
 .Ft double
 .Fn scalbn "double x" "int n"
 .Ft float
@@ -72,20 +66,6 @@
 .Fa x
 is \*(Na).
 .Pp
-.Fn ilogb
-returns
-.Fa x Ns 's exponent
-.Fa n ,
-in integer format.
-.Fn ilogb \*(Pm\*(If
-returns
-.Dv INT_MAX
-and
-.Fn ilogb 0
-returns
-.Dv INT_MIN .
-is even.
-.Pp
 .Fn scalbn
 returns
 .Fa x Ns \(**(2** Ns Fa n )

Added files:

Index: src/lib/libm/man/ilogb.3
diff -u /dev/null src/lib/libm/man/ilogb.3:1.1
--- /dev/null	Tue May 10 06:38:34 2011
+++ src/lib/libm/man/ilogb.3	Tue May 10 06:38:33 2011
@@ -0,0 +1,110 @@
+.\" $NetBSD: ilogb.3,v 1.1 2011/05/10 06:38:33 jruoho Exp $
+.\"
+.\" Copyright (c) 2011 Jukka Ruohonen <[email protected]>
+.\" 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.
+.\"
+.\" THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. 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 FOUNDATION 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.
+.\"
+.Dd May 10, 2011
+.Dt ILOGB 3
+.Os
+.Sh NAME
+.Nm ilogb ,
+.Nm ilogbf
+.Nd an unbiased exponent
+.Sh LIBRARY
+.Lb libm
+.Sh SYNOPSIS
+.In math.h
+.Ft int
+.Fn ilogb "double x"
+.Ft int
+.Fn ilogbf "float x"
+.Sh DESCRIPTION
+The
+.Fn ilogb
+and
+.Fn ilogbf
+functions return the exponent of the non-zero real floating-point number
+.Fa x
+as a signed integer value.
+Formally the return value is the integral part of
+.Bd -ragged -offset indent
+log_r |
+.Va x | ,
+.Ed
+.Pp
+where
+.Fa r
+is the radix of the machine's floating-point arithmetic defined by the
+.Dv FLT_RADIX
+constant in
+.In float.h .
+.Sh RETURN VALUES
+As described above, upon successful completion,
+the functions return the exponent.
+Functionally this is the same as calling the corresponding
+.Xr logb 3
+function and casting the return value to
+.Vt int .
+.Pp
+The following special cases may occur:
+.Bl -enum -offset indent
+.It
+If
+.Fa x
+is zero, the value of
+.Dv FP_ILOGB0
+is returned and a domain error occurs.
+.It
+If
+.Fa x
+is infinite, a domain error occurs and the value of
+.Dv INT_MAX
+is returned.
+.It
+If
+.Fa x
+is \*(Na, a domain error is raised and the value of
+.Dv FP_ILOGBNAN
+is returned.
+.It
+If the correct value is outside the range of the return type,
+a domain error occurs but an unspecified value is returned.
+.El
+.Sh SEE ALSO
+.Xr ilog2 3 ,
+.Xr logb 3 ,
+.Xr math 3
+.Sh STANDARDS
+The described functions conform to
+.St -isoC-99 .
+.Sh BUGS
+Neither
+.Dv FP_ILOGB0
+nor
+.Dv FP_ILOGBNAN
+is defined currently in
+.Nx .
+Furthermore, the
+.Vt long double
+variant of the functions is not yet supported.

Reply via email to