From 8f7624b016bd100620de68c4ccb5aebdcd02e04d Mon Sep 17 00:00:00 2001 From: das Date: Fri, 18 Jan 2008 21:43:00 +0000 Subject: [PATCH] Introduce a new log(3) manpage and move the relevant functions there. Document exp2l() in exp(3), and remove the quaint discussion of topics such as what these functions were called on the HP-71B's variant of BASIC. --- lib/msun/man/exp.3 | 83 ++++++------------------------------ lib/msun/man/log.3 | 104 +++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 118 insertions(+), 69 deletions(-) create mode 100644 lib/msun/man/log.3 diff --git a/lib/msun/man/exp.3 b/lib/msun/man/exp.3 index b470f1cccd7b..b051e5b0aad8 100644 --- a/lib/msun/man/exp.3 +++ b/lib/msun/man/exp.3 @@ -28,7 +28,7 @@ .\" from: @(#)exp.3 6.12 (Berkeley) 7/31/91 .\" $FreeBSD$ .\" -.Dd April 5, 2005 +.Dd January 17, 2008 .Dt EXP 3 .Os .Sh NAME @@ -37,17 +37,12 @@ .\" The sorting error is intentional. exp and expf should be adjacent. .Nm exp2 , .Nm exp2f , +.Nm exp2l , .Nm expm1 , .Nm expm1f , -.Nm log , -.Nm logf , -.Nm log10 , -.Nm log10f , -.Nm log1p , -.Nm log1pf , .Nm pow , .Nm powf -.Nd exponential, logarithm, power functions +.Nd exponential and power functions .Sh LIBRARY .Lb libm .Sh SYNOPSIS @@ -60,23 +55,13 @@ .Fn exp2 "double x" .Ft float .Fn exp2f "float x" +.Ft long double +.Fn exp2l "long double x" .Ft double .Fn expm1 "double x" .Ft float .Fn expm1f "float x" .Ft double -.Fn log "double x" -.Ft float -.Fn logf "float x" -.Ft double -.Fn log10 "double x" -.Ft float -.Fn log10f "float x" -.Ft double -.Fn log1p "double x" -.Ft float -.Fn log1pf "float x" -.Ft double .Fn pow "double x" "double y" .Ft float .Fn powf "float x" "float y" @@ -91,9 +76,10 @@ exponential value of the given argument .Fa x . .Pp The -.Fn exp2 -and the -.Fn exp2f +.Fn exp2 , +.Fn exp2f , +and +.Fn exp2l functions compute the base 2 exponential of the given argument .Fa x . .Pp @@ -105,29 +91,6 @@ functions compute the value exp(x)\-1 accurately even for tiny argument .Fa x . .Pp The -.Fn log -and the -.Fn logf -functions compute the value of the natural logarithm of argument -.Fa x . -.Pp -The -.Fn log10 -and the -.Fn log10f -functions compute the value of the logarithm of argument -.Fa x -to base 10. -.Pp -The -.Fn log1p -and the -.Fn log1pf -functions compute -the value of log(1+x) accurately even for tiny argument -.Fa x . -.Pp -The .Fn pow and the .Fn powf @@ -159,30 +122,7 @@ raise an invalid exception and return an \*(Na if < 0 and .Fa y is not an integer. -An attempt to take the logarithm of \*(Pm0 will result in -a divide-by-zero exception, and an infinity will be returned. -An attempt to take the logarithm of a negative number will -result in an invalid exception, and an \*(Na will be generated. .Sh NOTES -The functions exp(x)\-1 and log(1+x) are called -expm1 and logp1 in -.Tn BASIC -on the Hewlett\-Packard -.Tn HP Ns \-71B -and -.Tn APPLE -Macintosh, -.Tn EXP1 -and -.Tn LN1 -in Pascal, exp1 and log1 in C -on -.Tn APPLE -Macintoshes, where they have been provided to make -sure financial calculations of ((1+x)**n\-1)/x, namely -expm1(n\(**log1p(x))/x, will be accurate when x is tiny. -They also provide accurate inverse hyperbolic functions. -.Pp The function .Fn pow x 0 returns x**0 = 1 for all x including x = 0, \*(If, and \*(Na . @@ -229,4 +169,9 @@ and infinite x, i.e., independently of x. .El .Sh SEE ALSO .Xr fenv 3 , +.Xr ldexp 3 , +.Xr log 3 , .Xr math 3 +.Sh STANDARDS +These functions conform to +.St -isoC-99 . diff --git a/lib/msun/man/log.3 b/lib/msun/man/log.3 new file mode 100644 index 000000000000..19344736752e --- /dev/null +++ b/lib/msun/man/log.3 @@ -0,0 +1,104 @@ +.\" Copyright (c) 2008 David Schultz +.\" 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 AUTHOR 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 AUTHOR 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. +.\" +.\" $FreeBSD$ +.\" +.Dd January 17, 2008 +.Dt LOG 3 +.Os +.Sh NAME +.Nm log , +.Nm logf , +.Nm logl , +.Nm log10 , +.Nm log10f , +.Nm log1p , +.Nm log1pf +.Nd logarithm functions +.Sh LIBRARY +.Lb libm +.Sh SYNOPSIS +.In math.h +.Ft double +.Fn log "double x" +.Ft float +.Fn logf "float x" +.Ft double +.Fn log10 "double x" +.Ft float +.Fn log10f "float x" +.Ft double +.Fn log1p "double x" +.Ft float +.Fn log1pf "float x" +.Sh DESCRIPTION +The +.Fn log +and +.Fn logf +functions compute the natural logarithm of +.Fa x . +.Pp +The +.Fn log10 +and +.Fn log10f +functions compute the logarithm base 10 of +.Fa x . +.Pp +The +.Fn log1p +and +.Fn log1pf +functions compute the natural logarithm of +.No "1 + x" . +Computing the natural logarithm as +.Li log1p(x) +is more accurate than computing it as +.Li log(1 + x) +when +.Fa x +is close to zero. +.Sh RETURN VALUES +These functions return the requested logarithm; the logarithm of 1 is +0. +An attempt to take the logarithm of \*(Pm0 results in a divide-by-zero +exception, and -\*(If is returned. +Otherwise, attempting to take the logarithm of a negative number +results in an invalid exception and a return value of \*(Na. +.Sh SEE ALSO +.Xr exp 3 , +.Xr ilogb 3 , +.Xr math 3 , +.Xr pow 3 +.Sh STANDARDS +The +.Fn log , +.Fn logf , +.Fn log10 , +.Fn log10f , +.Fn log1p , +and +.Fn log1pf +functions conform to +.St -isoC-99 .