1
0
mirror of https://git.FreeBSD.org/src.git synced 2025-01-03 12:35:02 +00:00

Removed most of the zombie man pages in libm. All relevant parts have

been copied to msun/man (most of them long ago without proper history).
This commit is contained in:
Bruce Evans 2001-10-13 14:22:08 +00:00
parent aa842e6a12
commit d509410f99
Notes: svn2git 2020-12-20 02:59:44 +00:00
svn path=/head/; revision=84886
26 changed files with 0 additions and 3333 deletions

View File

@ -1,91 +0,0 @@
.\" Copyright (c) 1991, 1993
.\" The Regents of the University of California. 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.
.\" 3. All advertising materials mentioning features or use of this software
.\" must display the following acknowledgement:
.\" This product includes software developed by the University of
.\" California, Berkeley and its contributors.
.\" 4. Neither the name of the University nor the names of its contributors
.\" may be used to endorse or promote products derived from this software
.\" without specific prior written permission.
.\"
.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS 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 REGENTS 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.
.\"
.\" @(#)acos.3 8.1 (Berkeley) 6/4/93
.\" $FreeBSD$
.\"
.Dd June 4, 1993
.Dt ACOS 3
.Os
.Sh NAME
.Nm acos
.Nd arc cosine function
.Sh LIBRARY
.Lb libm
.Sh SYNOPSIS
.In math.h
.Ft double
.Fn acos "double x"
.Sh DESCRIPTION
The
.Fn acos
function computes the principal value of the arc cosine of
.Fa x .
A domain error occurs for arguments not in the range [-1, +1].
For a discussion of error due to roundoff, see
.Xr math 3 .
.Sh RETURN VALUES
The
.Fn acos
function returns the arc cosine in the range
.Bq 0 , \*(Pi
radians.
On the
.Tn VAX
and
.Tn Tahoe ,
if:
.Bd -unfilled -offset indent
.Pf \&| Ns Ar x Ns \&| > 1 ,
.Ed
.Pp
.Fn acos x
sets the global variable
.Va errno
to
.Er EDOM
and a reserved operand fault is generated.
.Sh SEE ALSO
.Xr asin 3 ,
.Xr atan 3 ,
.Xr atan2 3 ,
.Xr cos 3 ,
.Xr cosh 3 ,
.Xr math 3 ,
.Xr sin 3 ,
.Xr sinh 3 ,
.Xr tan 3 ,
.Xr tanh 3
.Sh STANDARDS
The
.Fn acos
function conforms to
.St -isoC .

View File

@ -1,84 +0,0 @@
.\" Copyright (c) 1991, 1993
.\" The Regents of the University of California. 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.
.\" 3. All advertising materials mentioning features or use of this software
.\" must display the following acknowledgement:
.\" This product includes software developed by the University of
.\" California, Berkeley and its contributors.
.\" 4. Neither the name of the University nor the names of its contributors
.\" may be used to endorse or promote products derived from this software
.\" without specific prior written permission.
.\"
.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS 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 REGENTS 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.
.\"
.\" @(#)acosh.3 8.1 (Berkeley) 6/4/93
.\" $FreeBSD$
.\"
.Dd June 4, 1993
.Dt ACOSH 3
.Os
.Sh NAME
.Nm acosh
.Nd inverse hyperbolic cosine function
.Sh LIBRARY
.Lb libm
.Sh SYNOPSIS
.In math.h
.Ft double
.Fn acosh "double x"
.Sh DESCRIPTION
The
.Fn acosh
function computes the inverse hyperbolic cosine
of the real
argument
.Ar x .
For a discussion of error due to roundoff, see
.Xr math 3 .
.Sh RETURN VALUES
The
.Fn acosh
function
returns the inverse hyperbolic cosine of
.Ar x .
On the
.Tn VAX
and
.Tn Tahoe ,
if the argument is less than one
.Fn acosh
sets the global variable
.Va errno
to
.Er EDOM
and
causes a reserved operand fault.
.Sh SEE ALSO
.Xr asinh 3 ,
.Xr atanh 3 ,
.Xr exp 3 ,
.Xr infnan 3 ,
.Xr math 3
.Sh HISTORY
The
.Fn acosh
function appeared in
.Bx 4.3 .

View File

@ -1,93 +0,0 @@
.\" Copyright (c) 1991, 1993
.\" The Regents of the University of California. 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.
.\" 3. All advertising materials mentioning features or use of this software
.\" must display the following acknowledgement:
.\" This product includes software developed by the University of
.\" California, Berkeley and its contributors.
.\" 4. Neither the name of the University nor the names of its contributors
.\" may be used to endorse or promote products derived from this software
.\" without specific prior written permission.
.\"
.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS 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 REGENTS 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.
.\"
.\" @(#)asin.3 8.1 (Berkeley) 6/4/93
.\" $FreeBSD$
.\"
.Dd June 4, 1993
.Dt ASIN 3
.Os
.Sh NAME
.Nm asin
.Nd arc sine function
.Sh LIBRARY
.Lb libm
.Sh SYNOPSIS
.In math.h
.Ft double
.Fn asin "double x"
.Sh DESCRIPTION
The
.Fn asin
function computes the principal value of the arc sine of
.Fa x .
A domain error occurs for arguments not in the range [-1, +1].
For a discussion of error due to roundoff, see
.Xr math 3 .
.Sh RETURN VALUES
The
.Fn asin
function returns the arc sine in the range
.Bk -words
.Bq -\*(Pi/2 , +\*(Pi/2
.Ek
radians.
On the
.Tn VAX ,
and Tahoe,
if:
.Bd -unfilled -offset indent
.Pf \&| Ns Ar x Ns \&| > 1
.Ed
.Pp
the
global variable
.Va errno
is set to
.Er EDOM
and
a reserved operand fault generated.
.Sh SEE ALSO
.Xr acos 3 ,
.Xr atan 3 ,
.Xr atan2 3 ,
.Xr cos 3 ,
.Xr cosh 3 ,
.Xr math 3 ,
.Xr sin 3 ,
.Xr sinh 3 ,
.Xr tan 3 ,
.Xr tanh 3
.Sh STANDARDS
The
.Fn asin
function conforms to
.St -isoC .

View File

@ -1,72 +0,0 @@
.\" Copyright (c) 1985, 1991, 1993
.\" The Regents of the University of California. 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.
.\" 3. All advertising materials mentioning features or use of this software
.\" must display the following acknowledgement:
.\" This product includes software developed by the University of
.\" California, Berkeley and its contributors.
.\" 4. Neither the name of the University nor the names of its contributors
.\" may be used to endorse or promote products derived from this software
.\" without specific prior written permission.
.\"
.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS 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 REGENTS 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.
.\"
.\" @(#)asinh.3 8.1 (Berkeley) 6/4/93
.\" $FreeBSD$
.\"
.Dd June 4, 1993
.Dt ASINH 3
.Os
.Sh NAME
.Nm asinh
.Nd inverse hyperbolic sine function
.Sh LIBRARY
.Lb libm
.Sh SYNOPSIS
.In math.h
.Ft double
.Fn asinh "double x"
.Sh DESCRIPTION
The
.Fn asinh
function computes the inverse hyperbolic sine
of the real
argument
.Ar x .
For a discussion of error due to roundoff, see
.Xr math 3 .
.Sh RETURN VALUES
The
.Fn asinh
function
returns the inverse hyperbolic sine of
.Ar x .
.Sh SEE ALSO
.Xr acosh 3 ,
.Xr atanh 3 ,
.Xr exp 3 ,
.Xr infnan 3 ,
.Xr math 3
.Sh HISTORY
The
.Fn asinh
function appeared in
.Bx 4.3 .

View File

@ -1,77 +0,0 @@
.\" Copyright (c) 1991, 1993
.\" The Regents of the University of California. 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.
.\" 3. All advertising materials mentioning features or use of this software
.\" must display the following acknowledgement:
.\" This product includes software developed by the University of
.\" California, Berkeley and its contributors.
.\" 4. Neither the name of the University nor the names of its contributors
.\" may be used to endorse or promote products derived from this software
.\" without specific prior written permission.
.\"
.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS 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 REGENTS 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.
.\"
.\" @(#)atan.3 8.1 (Berkeley) 6/4/93
.\" $FreeBSD$
.\"
.Dd June 4, 1993
.Dt ATAN 3
.Os
.Sh NAME
.Nm atan
.Nd arc tangent function of one variable
.Sh LIBRARY
.Lb libm
.Sh SYNOPSIS
.In math.h
.Ft double
.Fn atan "double x"
.Sh DESCRIPTION
The
.Fn atan
function computes the principal value of the arc tangent of
.Fa x .
For a discussion of error due to roundoff, see
.Xr math 3 .
.Sh RETURN VALUES
The
.Fn atan
function returns the arc tangent in the range
.Bk -words
.Bq -\*(Pi/2 , +\*(Pi/2
.Ek
radians.
.Sh SEE ALSO
.Xr acos 3 ,
.Xr asin 3 ,
.Xr atan2 3 ,
.Xr cos 3 ,
.Xr cosh 3 ,
.Xr math 3 ,
.Xr sin 3 ,
.Xr sinh 3 ,
.Xr tan 3 ,
.Xr tanh 3
.Sh STANDARDS
The
.Fn atan
function conforms to
.St -isoC .

View File

@ -1,191 +0,0 @@
.\" Copyright (c) 1991, 1993
.\" The Regents of the University of California. 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.
.\" 3. All advertising materials mentioning features or use of this software
.\" must display the following acknowledgement:
.\" This product includes software developed by the University of
.\" California, Berkeley and its contributors.
.\" 4. Neither the name of the University nor the names of its contributors
.\" may be used to endorse or promote products derived from this software
.\" without specific prior written permission.
.\"
.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS 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 REGENTS 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.
.\"
.\" @(#)atan2.3 8.1 (Berkeley) 6/4/93
.\" $FreeBSD$
.\"
.Dd June 4, 1993
.Dt ATAN2 3
.Os
.Sh NAME
.Nm atan2
.Nd arc tangent function of two variables
.Sh LIBRARY
.Lb libm
.Sh SYNOPSIS
.In math.h
.Ft double
.Fn atan2 "double y" "double x"
.Sh DESCRIPTION
The
.Xr atan2
function computes the principal value of the arc tangent of
.Ar y/ Ns Ar x ,
using the signs of both arguments to determine the quadrant of
the return value.
.Sh RETURN VALUES
The
.Xr atan2
function, if successful,
returns the arc tangent of
.Ar y/ Ns Ar x
in the range
.Bk -words
.Bq \&- Ns \*(Pi , \&+ Ns \*(Pi
.Ek
radians.
If both
.Ar x
and
.Ar y
are zero, the global variable
.Va errno
is set to
.Er EDOM .
On the
.Tn VAX :
.Bl -column atan_(y,x)_:=____ sign(y)_(Pi_atan2(Xy_xX))___
.It Fn atan2 y x No := Ta
.Fn atan y/x Ta
if
.Ar x
> 0,
.It Ta sign( Ns Ar y Ns )*(\*(Pi -
.Fn atan "\\*(Bay/x\\*(Ba" ) Ta
if
.Ar x
< 0,
.It Ta
.No 0 Ta
if x = y = 0, or
.It Ta
.Pf sign( Ar y Ns )*\\*(Pi/2 Ta
if
.Ar x
= 0 \(!=
.Ar y .
.El
.Sh NOTES
The function
.Fn atan2
defines "if x > 0,"
.Fn atan2 0 0
= 0 on a
.Tn VAX
despite that previously
.Fn atan2 0 0
may have generated an error message.
The reasons for assigning a value to
.Fn atan2 0 0
are these:
.Bl -enum -offset indent
.It
Programs that test arguments to avoid computing
.Fn atan2 0 0
must be indifferent to its value.
Programs that require it to be invalid are vulnerable
to diverse reactions to that invalidity on diverse computer systems.
.It
The
.Fn atan2
function is used mostly to convert from rectangular (x,y)
to polar
.if n\
(r,theta)
.if t\
(r,\(*h)
coordinates that must satisfy x =
.if n\
r\(**cos theta
.if t\
r\(**cos\(*h
and y =
.if n\
r\(**sin theta.
.if t\
r\(**sin\(*h.
These equations are satisfied when (x=0,y=0)
is mapped to
.if n \
(r=0,theta=0)
.if t \
(r=0,\(*h=0)
on a VAX. In general, conversions to polar coordinates
should be computed thus:
.Bd -unfilled -offset indent
.if n \{\
r := hypot(x,y); ... := sqrt(x\(**x+y\(**y)
theta := atan2(y,x).
.\}
.if t \{\
r := hypot(x,y); ... := \(sr(x\u\s82\s10\d+y\u\s82\s10\d)
\(*h := atan2(y,x).
.\}
.Ed
.It
The foregoing formulas need not be altered to cope in a
reasonable way with signed zeros and infinities
on a machine that conforms to
.Tn IEEE 754 ;
the versions of
.Xr hypot 3
and
.Fn atan2
provided for
such a machine are designed to handle all cases.
That is why
.Fn atan2 \(+-0 \-0
= \(+-\*(Pi
for instance.
In general the formulas above are equivalent to these:
.Bd -unfilled -offset indent
.if n \
r := sqrt(x\(**x+y\(**y); if r = 0 then x := copysign(1,x);
.if t \
r := \(sr(x\(**x+y\(**y);\0\0if r = 0 then x := copysign(1,x);
.Ed
.El
.Sh SEE ALSO
.Xr acos 3 ,
.Xr asin 3 ,
.Xr atan 3 ,
.Xr cos 3 ,
.Xr cosh 3 ,
.Xr math 3 ,
.Xr sin 3 ,
.Xr sinh 3 ,
.Xr tan 3 ,
.Xr tanh 3
.Sh STANDARDS
The
.Fn atan2
function conforms to
.St -isoC .

View File

@ -1,86 +0,0 @@
.\" Copyright (c) 1985, 1991, 1993
.\" The Regents of the University of California. 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.
.\" 3. All advertising materials mentioning features or use of this software
.\" must display the following acknowledgement:
.\" This product includes software developed by the University of
.\" California, Berkeley and its contributors.
.\" 4. Neither the name of the University nor the names of its contributors
.\" may be used to endorse or promote products derived from this software
.\" without specific prior written permission.
.\"
.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS 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 REGENTS 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.
.\"
.\" @(#)atanh.3 8.1 (Berkeley) 6/4/93
.\" $FreeBSD$
.\"
.Dd June 4, 1993
.Dt ATANH 3
.Os
.Sh NAME
.Nm atanh
.Nd inverse hyperbolic tangent function
.Sh LIBRARY
.Lb libm
.Sh SYNOPSIS
.In math.h
.Ft double
.Fn atanh "double x"
.Sh DESCRIPTION
The
.Fn atanh
function computes the inverse hyperbolic tangent
of the real
argument
.Ar x .
For a discussion of error due to roundoff, see
.Xr math 3 .
.Sh RETURN VALUES
The
.Fn atanh
function
returns the inverse hyperbolic tangent of
.Ar x
if successful.
On the
.Tn VAX
and
.Tn Tahoe ,
if the argument has absolute value
bigger than or equal to 1,
.Fn atanh
sets the global variable
.Va errno
to
.Er EDOM
and
a reserved operand fault is generated.
.Sh SEE ALSO
.Xr acosh 3 ,
.Xr asinh 3 ,
.Xr exp 3 ,
.Xr infnan 3 ,
.Xr math 3
.Sh HISTORY
The
.Fn atanh
function appeared in
.Bx 4.3 .

View File

@ -1,68 +0,0 @@
.\" Copyright (c) 1991, 1993
.\" The Regents of the University of California. 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.
.\" 3. All advertising materials mentioning features or use of this software
.\" must display the following acknowledgement:
.\" This product includes software developed by the University of
.\" California, Berkeley and its contributors.
.\" 4. Neither the name of the University nor the names of its contributors
.\" may be used to endorse or promote products derived from this software
.\" without specific prior written permission.
.\"
.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS 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 REGENTS 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.
.\"
.\" @(#)ceil.3 8.1 (Berkeley) 6/4/93
.\" $FreeBSD$
.\"
.Dd June 4, 1993
.Dt CEIL 3
.Os
.Sh NAME
.Nm ceil
.Nd smallest integral value greather than or equal to x
.Sh LIBRARY
.Lb libm
.Sh SYNOPSIS
.In math.h
.Ft double
.Fn ceil "double x"
.Sh DESCRIPTION
The
.Fn ceil
function computes the smallest integral value greater than or equal to
.Fa x .
.Sh RETURN VALUES
The
.Fn ceil
function returns the smallest integral value
expressed as a double.
.Sh SEE ALSO
.Xr abs 3 ,
.Xr fabs 3 ,
.Xr floor 3 ,
.Xr ieee 3 ,
.Xr math 3 ,
.Xr rint 3
.Sh STANDARDS
The
.Fn ceil
function conforms to
.St -isoC .

View File

@ -1,76 +0,0 @@
.\" Copyright (c) 1991, 1993
.\" The Regents of the University of California. 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.
.\" 3. All advertising materials mentioning features or use of this software
.\" must display the following acknowledgement:
.\" This product includes software developed by the University of
.\" California, Berkeley and its contributors.
.\" 4. Neither the name of the University nor the names of its contributors
.\" may be used to endorse or promote products derived from this software
.\" without specific prior written permission.
.\"
.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS 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 REGENTS 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.
.\"
.\" @(#)cos.3 8.1 (Berkeley) 6/4/93
.\" $FreeBSD$
.\"
.Dd June 4, 1993
.Dt COS 3
.Os
.Sh NAME
.Nm cos
.Nd cosine function
.Sh LIBRARY
.Lb libm
.Sh SYNOPSIS
.In math.h
.Ft double
.Fn cos "double x"
.Sh DESCRIPTION
The
.Fn cos
function computes the cosine of
.Fa x
(measured in radians).
A large magnitude argument may yield a result with little or no
significance.
For a discussion of error due to roundoff, see
.Xr math 3 .
.Sh RETURN VALUES
The
.Fn cos
function returns the cosine value.
.Sh SEE ALSO
.Xr acos 3 ,
.Xr asin 3 ,
.Xr atan 3 ,
.Xr atan2 3 ,
.Xr cosh 3 ,
.Xr math 3 ,
.Xr sin 3 ,
.Xr sinh 3 ,
.Xr tan 3 ,
.Xr tanh 3
.Sh STANDARDS
The
.Fn acos
function conforms to
.St -isoC .

View File

@ -1,77 +0,0 @@
.\" Copyright (c) 1989, 1991, 1993
.\" The Regents of the University of California. 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.
.\" 3. All advertising materials mentioning features or use of this software
.\" must display the following acknowledgement:
.\" This product includes software developed by the University of
.\" California, Berkeley and its contributors.
.\" 4. Neither the name of the University nor the names of its contributors
.\" may be used to endorse or promote products derived from this software
.\" without specific prior written permission.
.\"
.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS 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 REGENTS 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.
.\"
.\" @(#)cosh.3 8.1 (Berkeley) 6/4/93
.\" $FreeBSD$
.\"
.Dd June 4, 1993
.Dt COSH 3
.Os
.Sh NAME
.Nm cosh
.Nd hyperbolic cosine function
.Sh LIBRARY
.Lb libm
.Sh SYNOPSIS
.In math.h
.Ft double
.Fn cosh "double x"
.Sh DESCRIPTION
The
.Fn cosh
function computes the hyperbolic cosine of
.Fa x .
.Sh RETURN VALUES
The
.Fn cosh
function returns the hyperbolic cosine unless the magnitude
of
.Fa x
is too large; in this event, the global variable
.Va errno
is set to
.Er ERANGE .
.Sh SEE ALSO
.Xr acos 3 ,
.Xr asin 3 ,
.Xr atan 3 ,
.Xr atan2 3 ,
.Xr cos 3 ,
.Xr math 3 ,
.Xr sin 3 ,
.Xr sinh 3 ,
.Xr tan 3 ,
.Xr tanh 3
.Sh STANDARDS
The
.Fn cosh
function conforms to
.St -isoC .

View File

@ -1,85 +0,0 @@
.\" Copyright (c) 1985, 1991, 1993
.\" The Regents of the University of California. 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.
.\" 3. All advertising materials mentioning features or use of this software
.\" must display the following acknowledgement:
.\" This product includes software developed by the University of
.\" California, Berkeley and its contributors.
.\" 4. Neither the name of the University nor the names of its contributors
.\" may be used to endorse or promote products derived from this software
.\" without specific prior written permission.
.\"
.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS 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 REGENTS 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.
.\"
.\" @(#)erf.3 8.1 (Berkeley) 6/4/93
.\" $FreeBSD$
.\"
.Dd June 4, 1993
.Dt ERF 3
.Os
.Sh NAME
.Nm erf ,
.Nm erfc
.Nd error function operators
.Sh LIBRARY
.Lb libm
.Sh SYNOPSIS
.In math.h
.Ft double
.Fn erf "double x"
.Ft double
.Fn erfc "double x"
.Sh DESCRIPTION
These functions calculate the error function of
.Fa x .
.Pp
The
.Fn erf
calculates the error function of x; where
.Bd -ragged -offset indent
.if n \{\
erf(x) = 2/sqrt(pi)\(**\|integral from 0 to x of exp(\-t\(**t) dt. \}
.if t \{\
erf\|(x) :=
(2/\(sr\(*p)\|\(is\d\s8\z0\s10\u\u\s8x\s10\d\|exp(\-t\u\s82\s10\d)\|dt. \}
.Ed
.Pp
The
.Fn erfc
function calculates the complementary error function of
.Fa x ;
that is
.Fn erfc
subtracts the result of the error function
.Fn erf x
from 1.0.
This is useful, since for large
.Fa x
places disappear.
.Sh SEE ALSO
.Xr math 3
.Sh HISTORY
The
.Fn erf
and
.Fn erfc
functions appeared in
.Bx 4.3 .

View File

@ -1,290 +0,0 @@
.\" Copyright (c) 1985, 1991, 1993
.\" The Regents of the University of California. 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.
.\" 3. All advertising materials mentioning features or use of this software
.\" must display the following acknowledgement:
.\" This product includes software developed by the University of
.\" California, Berkeley and its contributors.
.\" 4. Neither the name of the University nor the names of its contributors
.\" may be used to endorse or promote products derived from this software
.\" without specific prior written permission.
.\"
.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS 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 REGENTS 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.
.\"
.\" @(#)exp.3 8.2 (Berkeley) 4/19/94
.\" $FreeBSD$
.\"
.Dd April 19, 1994
.Dt EXP 3
.Os
.Sh NAME
.Nm exp ,
.Nm expm1 ,
.Nm log ,
.Nm log10 ,
.Nm log1p ,
.Nm pow
.Nd exponential, logarithm, power functions
.Sh LIBRARY
.Lb libm
.Sh SYNOPSIS
.In math.h
.Ft double
.Fn exp "double x"
.Ft double
.Fn expm1 "double x"
.Ft double
.Fn log "double x"
.Ft double
.Fn log10 "double x"
.Ft double
.Fn log1p "double x"
.Ft double
.Fn pow "double x" "double y"
.Sh DESCRIPTION
The
.Fn exp
function computes the exponential value of the given argument
.Fa x .
.Pp
The
.Fn expm1
function computes the value exp(x)\-1 accurately even for tiny argument
.Fa x .
.Pp
The
.Fn log
function computes the value for the natural logarithm of
the argument x.
.Pp
The
.Fn log10
function computes the value for the logarithm of
argument
.Fa x
to base 10.
.Pp
The
.Fn log1p
function computes
the value of log(1+x) accurately even for tiny argument
.Fa x .
.Pp
The
.Fn pow
computes the value
of
.Ar x
to the exponent
.Ar y .
.Sh ERROR (due to Roundoff etc.)
exp(x), log(x), expm1(x) and log1p(x) are accurate to within
an
.Em up ,
and log10(x) to within about 2
.Em ups ;
an
.Em up
is one
.Em Unit
in the
.Em Last
.Em Place .
The error in
.Fn pow x y
is below about 2
.Em ups
when its
magnitude is moderate, but increases as
.Fn pow x y
approaches
the over/underflow thresholds until almost as many bits could be
lost as are occupied by the floating\-point format's exponent
field; that is 8 bits for
.Tn "VAX D"
and 11 bits for IEEE 754 Double.
No such drastic loss has been exposed by testing; the worst
errors observed have been below 20
.Em ups
for
.Tn "VAX D" ,
300
.Em ups
for
.Tn IEEE
754 Double.
Moderate values of
.Fn pow
are accurate enough that
.Fn pow integer integer
is exact until it is bigger than 2**56 on a
.Tn VAX ,
2**53 for
.Tn IEEE
754.
.Sh RETURN VALUES
These functions will return the appropriate computation unless an error
occurs or an argument is out of range.
The functions
.Fn exp ,
.Fn expm1
and
.Fn pow
detect if the computed value will overflow,
set the global variable
.Va errno
to
.Er ERANGE
and cause a reserved operand fault on a
.Tn VAX
or
.Tn Tahoe .
The function
.Fn pow x y
checks to see if
.Fa x
< 0 and
.Fa y
is not an integer, in the event this is true,
the global variable
.Va errno
is set to
.Er EDOM
and on the
.Tn VAX
and
.Tn Tahoe
generate a reserved operand fault.
On a
.Tn VAX
and
.Tn Tahoe ,
.Va errno
is set to
.Er EDOM
and the reserved operand is returned
by log unless
.Fa x
> 0, by
.Fn log1p
unless
.Fa x
> \-1.
.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 n \
Infinity
.if t \
\(if
(not found on a
.Tn VAX ) ,
and
.Em NaN
(the reserved
operand on a
.Tn VAX ) .
Previous implementations of pow may
have defined x**0 to be undefined in some or all of these
cases. Here are reasons for returning x**0 = 1 always:
.Bl -enum -width indent
.It
Any program that already tests whether x is zero (or
infinite or \*(Na) before computing x**0 cannot care
whether 0**0 = 1 or not.
Any program that depends
upon 0**0 to be invalid is dubious anyway since that
expression's meaning and, if invalid, its consequences
vary from one computer system to another.
.It
Some Algebra texts (e.g. Sigler's) define x**0 = 1 for
all x, including x = 0.
This is compatible with the convention that accepts a[0]
as the value of polynomial
.Bd -literal -offset indent
p(x) = a[0]\(**x**0 + a[1]\(**x**1 + a[2]\(**x**2 +...+ a[n]\(**x**n
.Ed
.Pp
at x = 0 rather than reject a[0]\(**0**0 as invalid.
.It
Analysts will accept 0**0 = 1 despite that x**y can
approach anything or nothing as x and y approach 0
independently.
The reason for setting 0**0 = 1 anyway is this:
.Bd -ragged -offset indent
If x(z) and y(z) are
.Em any
functions analytic (expandable
in power series) in z around z = 0, and if there
x(0) = y(0) = 0, then x(z)**y(z) \(-> 1 as z \(-> 0.
.Ed
.It
If 0**0 = 1, then
.if n \
infinity**0 = 1/0**0 = 1 too; and
.if t \
\(if**0 = 1/0**0 = 1 too; and
then \*(Na**0 = 1 too because x**0 = 1 for all finite
and infinite x, i.e., independently of x.
.El
.Sh SEE ALSO
.Xr infnan 3 ,
.Xr math 3
.Sh HISTORY
A
.Fn exp ,
.Fn log
and
.Fn pow
function
appeared in
.At v6 .
A
.Fn log10
function
appeared in
.At v7 .
The
.Fn log1p
and
.Fn expm1
functions appeared in
.Bx 4.3 .

View File

@ -1,69 +0,0 @@
.\" Copyright (c) 1991, 1993
.\" The Regents of the University of California. All rights reserved.
.\"
.\" @(#)fabs.3 8.1 (Berkeley) 6/4/93
.\" 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.
.\" 3. All advertising materials mentioning features or use of this software
.\" must display the following acknowledgement:
.\" This product includes software developed by the University of
.\" California, Berkeley and its contributors.
.\" 4. Neither the name of the University nor the names of its contributors
.\" may be used to endorse or promote products derived from this software
.\" without specific prior written permission.
.\"
.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS 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 REGENTS 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.
.\"
.\" @(#)fabs.3 8.1 (Berkeley) 6/4/93
.\" $FreeBSD$
.\"
.Dd June 4, 1993
.Dt FABS 3
.Os
.Sh NAME
.Nm fabs
.Nd floating-point absolute value function
.Sh LIBRARY
.Lb libm
.Sh SYNOPSIS
.In math.h
.Ft double
.Fn fabs "double x"
.Sh DESCRIPTION
The
.Fn fabs
function computes the absolute value of a floating-point number
.Fa x .
.Sh RETURN VALUES
The
.Fn fabs
function returns the absolute value of
.Fa x .
.Sh SEE ALSO
.Xr abs 3 ,
.Xr ceil 3 ,
.Xr floor 3 ,
.Xr ieee 3 ,
.Xr math 3 ,
.Xr rint 3
.Sh STANDARDS
The
.Fn fabs
function conforms to
.St -isoC .

View File

@ -1,68 +0,0 @@
.\" Copyright (c) 1985, 1991, 1993
.\" The Regents of the University of California. 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.
.\" 3. All advertising materials mentioning features or use of this software
.\" must display the following acknowledgement:
.\" This product includes software developed by the University of
.\" California, Berkeley and its contributors.
.\" 4. Neither the name of the University nor the names of its contributors
.\" may be used to endorse or promote products derived from this software
.\" without specific prior written permission.
.\"
.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS 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 REGENTS 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.
.\"
.\" @(#)floor.3 8.1 (Berkeley) 6/4/93
.\" $FreeBSD$
.\"
.Dd June 4, 1993
.Dt FLOOR 3
.Os
.Sh NAME
.Nm floor
.Nd largest integral value less than or equal to x
.Sh LIBRARY
.Lb libm
.Sh SYNOPSIS
.In math.h
.Ft double
.Fn floor "double x"
.Sh DESCRIPTION
The
.Fn floor
function computes the largest integral value less than or equal to
.Fa x .
.Sh RETURN VALUES
The
.Fn floor
function returns the largest integral value
expressed as a double.
.Sh SEE ALSO
.Xr abs 3 ,
.Xr fabs 3 ,
.Xr floor 3 ,
.Xr ieee 3 ,
.Xr math 3 ,
.Xr rint 3
.Sh STANDARDS
The
.Fn floor
function conforms to
.St -isoC .

View File

@ -1,78 +0,0 @@
.\" Copyright (c) 1991, 1993
.\" The Regents of the University of California. 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.
.\" 3. All advertising materials mentioning features or use of this software
.\" must display the following acknowledgement:
.\" This product includes software developed by the University of
.\" California, Berkeley and its contributors.
.\" 4. Neither the name of the University nor the names of its contributors
.\" may be used to endorse or promote products derived from this software
.\" without specific prior written permission.
.\"
.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS 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 REGENTS 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.
.\"
.\" @(#)fmod.3 8.1 (Berkeley) 6/4/93
.\" $FreeBSD$
.\"
.Dd June 4, 1993
.Dt FMOD 3
.Os
.Sh NAME
.Nm fmod
.Nd floating-point remainder function
.Sh LIBRARY
.Lb libm
.Sh SYNOPSIS
.In math.h
.Ft double
.Fn fmod "double x" "double y"
.Sh DESCRIPTION
The
.Fn fmod
function computes the floating-point remainder of
.Fa x Ns / Fa y .
.Sh RETURN VALUES
The
.Fn fmod
function returns the value
.Sm off
.Fa x - Em i * Fa y ,
.Sm on
for some integer
.Em i
such that, if
.Fa y
is non-zero, the result has the same sign as
.Fa x
and magnitude less than the magnitude of
.Fa y .
If
.Fa y
is zero, whether a domain error occurs or the
.Fn fmod
function returns zero is implementation-defined.
.Sh SEE ALSO
.Xr math 3
.Sh STANDARDS
The
.Fn fmod
function conforms to
.St -isoC .

View File

@ -1,127 +0,0 @@
.\" Copyright (c) 1985, 1991, 1993
.\" The Regents of the University of California. 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.
.\" 3. All advertising materials mentioning features or use of this software
.\" must display the following acknowledgement:
.\" This product includes software developed by the University of
.\" California, Berkeley and its contributors.
.\" 4. Neither the name of the University nor the names of its contributors
.\" may be used to endorse or promote products derived from this software
.\" without specific prior written permission.
.\"
.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS 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 REGENTS 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.
.\"
.\" @(#)hypot.3 8.1 (Berkeley) 6/4/93
.\" $FreeBSD$
.\"
.Dd June 4, 1993
.Dt HYPOT 3
.Os
.Sh NAME
.Nm hypot ,
.Nm cabs
.Nd euclidean distance and complex absolute value functions
.Sh LIBRARY
.Lb libm
.Sh SYNOPSIS
.In math.h
.Ft double
.Fn hypot "double x" "double y"
.Vt struct {double x, y;} z ;
.Ft double
.Fn cabs z
.Sh DESCRIPTION
The
.Fn hypot
and
.Fn cabs
functions
computes the
sqrt(x*x+y*y)
in such a way that underflow will not happen, and overflow
occurs only if the final result deserves it.
.Pp
.Fn hypot "\*(If" "v"
=
.Fn hypot "v" "\*(If"
= +\*(If for all
.Ar v ,
including \*(Na.
.Sh ERROR (due to Roundoff, etc.)
Below 0.97
.Em ulps .
Consequently
.Fn hypot "5.0" "12.0"
= 13.0
exactly;
in general, hypot and cabs return an integer whenever an
integer might be expected.
.Pp
The same cannot be said for the shorter and faster version of hypot
and cabs that is provided in the comments in cabs.c; its error can
exceed 1.2
.Em ulps .
.Sh NOTES
As might be expected,
.Fn hypot "v" "\*(Na"
and
.Fn hypot "\*(Na" "v"
are \*(Na for all
.Em finite
.Ar v ;
with "reserved operand" in place of "\*(Na", the
same is true on a
.Tn VAX .
But programmers on machines other than a
.Tn VAX
(if has no \*(If)
might be surprised at first to discover that
.Fn hypot "\(+-\*(If" "\*(Na"
= +\*(If.
This is intentional; it happens because
.Fn hypot "\*(If" "v"
= +\*(If
for
.Em all
.Ar v ,
finite or infinite.
Hence
.Fn hypot "\*(If" "v"
is independent of
.Ar v .
Unlike the reserved operand fault on a
.Tn VAX ,
the
.Tn IEEE
\*(Na is designed to
disappear when it turns out to be irrelevant, as it does in
.Fn hypot "\*(If" "\*(Na" .
.Sh SEE ALSO
.Xr math 3 ,
.Xr sqrt 3
.Sh HISTORY
Both a
.Fn hypot
function and a
.Fn cabs
function
appeared in
.At v7 .

View File

@ -1,270 +0,0 @@
.\" Copyright (c) 1985, 1991, 1993
.\" The Regents of the University of California. 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.
.\" 3. All advertising materials mentioning features or use of this software
.\" must display the following acknowledgement:
.\" This product includes software developed by the University of
.\" California, Berkeley and its contributors.
.\" 4. Neither the name of the University nor the names of its contributors
.\" may be used to endorse or promote products derived from this software
.\" without specific prior written permission.
.\"
.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS 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 REGENTS 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.
.\"
.\" @(#)ieee.3 8.1 (Berkeley) 6/4/93
.\" $FreeBSD$
.\"
.Dd June 4, 1993
.Dt IEEE 3
.Os
.Sh NAME
.Nm copysign ,
.Nm drem ,
.Nm finite ,
.Nm logb ,
.Nm scalb
.Nd "IEEE 754 floating point support
.Sh LIBRARY
.Lb libm
.Sh SYNOPSIS
.In math.h
.Ft double
.Fn copysign "double x" "double y"
.Ft double
.Fn drem "double x" "double y"
.Ft int
.Fn finite "double x"
.Ft double
.Fn logb "double x"
.Ft double
.Fn scalb "double x" "int n"
.Sh DESCRIPTION
These functions are required for, or recommended by the
.Tn IEEE
standard
754 for floating\-point arithmetic.
.Pp
The
.Fn copysign
function
returns
.Fa x
with its sign changed to
.Fa y Ns 's .
.Pp
The
.Fn drem
function
returns the remainder
.Fa r
:=
.Fa x
\-
.Fa n\(**y
where
.Fa n
is the integer nearest the exact value of
.Bk -words
.Fa x Ns / Ns Fa y ;
.Ek
moreover if
.Pf \\*(Ba Fa n
\-
.Sm off
.Fa x No / Fa y No \\*(Ba
.Sm on
=
1/2
then
.Fa n
is even. Consequently
the remainder is computed exactly and
.Sm off
.Pf \\*(Ba Fa r No \\*(Ba
.Sm on
\*(Le
.Sm off
.Pf \\*(Ba Fa y No \\*(Ba/2 .
.Sm on
But
.Fn drem x 0
is exceptional.
(See below under
.Sx DIAGNOSTICS . )
.Pp
The
.Fn finite
function returns the value 1 just when
\-\*(If \*(Lt
.Fa x
\*(Lt +\*(If;
otherwise a
zero is returned
(when
.Pf \\*(Ba Ns Fa x Ns \\*(Ba
= \*(If or
.Fa x
is \*(Na or
is the
.Tn VAX Ns 's
reserved operand).
.Pp
The
.Fn logb
function returns
.Fa x Ns 's exponent
.Fa n ,
a signed integer converted to double\-precision floating\-point and so
chosen that
1 (<=
.Pf \\*(Ba Ns Fa x Ns \\*(Ba2** Ns Fa n
< 2
unless
.Fa x
= 0 or
(only on machines that conform to
.Tn IEEE
754)
.Pf \\*(Ba Fa x Ns \\*(Ba
= \*(If
or
.Fa x
lies between 0 and the Underflow Threshold.
(See below under
.Sx BUGS . )
.Pp
The
.Fn scalb
function returns
.Fa x Ns \(**(2** Ns Fa n )
computed, for integer n, without first computing
.Pf 2\(** Fa n .
.Sh RETURN VALUES
The
.Tn IEEE
standard
754 defines
.Fn drem x 0
and
.Fn drem \\*(If y
to be invalid operations that produce a \*(Na.
On the
.Tn VAX ,
.Fn drem x 0
generates a reserved operand fault. No \*(If
exists on a
.Tn VAX .
.Pp
.Tn IEEE
754 defines
.if n \
.Fn logb \(+-\\*(If
= \*(If and
.Fn logb 0
= \-\*(If, and
requires the latter to signal Division\-by\-Zero.
But on a
.Tn VAX ,
.Fn logb 0
= 1.0 \- 2.0**31 = \-2,147,483,647.0.
And if the correct value of
.Fn scalb
would overflow on a
.Tn VAX ,
it generates a reserved operand fault and sets the global variable
.Va errno
to
.Er ERANGE .
.Sh SEE ALSO
.Xr floor 3 ,
.Xr infnan 3 ,
.Xr math 3
.Sh HISTORY
The
.Nm ieee
functions appeared in
.Bx 4.3 .
.Sh BUGS
Should
.Fn drem x 0
and
.Fn logb 0
on a
.Tn VAX
signal invalidity
by setting
.Va errno No = Er EDOM ?
Should
.Fn logb 0
return \-1.7e38?
.Pp
.Tn IEEE
754 currently specifies that
.Fn logb "denormalized no.\&"
=
.Fn logb "tiniest normalized no. > 0"
but the consensus has changed to the specification in the new
proposed
.Tn IEEE
standard p854, namely that
.Fn logb x
satisfy
.Bd -ragged -offset indent
1 \(<=
.Fn scalb \\*(Bax\\*(Ba \-logb(x)
<
Radix\0 ... = 2
for
.Tn IEEE
754
.Ed
.Pp
for every x except 0,
\*(If
and \*(Na.
Almost every program that assumes 754's specification will work
correctly if
.Fn logb
follows 854's specification instead.
.Pp
.Tn IEEE
754 requires
.Fn copysign x \\*(Na)
=
.Pf \(+- Ns Fa x
but says nothing
else about the sign of a \*(Na. A \*(Na
.Em (N Ns ot
.Em a
.Em N Ns umber )
is
similar in spirit to the
.Tn VAX Ns 's
reserved operand, but very
different in important details. Since the sign bit of a
reserved operand makes it look negative,
.Bd -ragged -offset indent
.Fn copysign x "reserved operand"
=
.Pf \- Fa x ;
.Ed
.Pp
should this return the reserved operand instead?

View File

@ -1,130 +0,0 @@
.\" Copyright (c) 1985, 1991, 1993
.\" The Regents of the University of California. 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.
.\" 3. All advertising materials mentioning features or use of this software
.\" must display the following acknowledgement:
.\" This product includes software developed by the University of
.\" California, Berkeley and its contributors.
.\" 4. Neither the name of the University nor the names of its contributors
.\" may be used to endorse or promote products derived from this software
.\" without specific prior written permission.
.\"
.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS 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 REGENTS 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.
.\"
.\" @(#)j0.3 8.2 (Berkeley) 4/19/94
.\" $FreeBSD$
.\"
.Dd April 19, 1994
.Dt J0 3
.Os
.Sh NAME
.Nm j0 ,
.Nm j1 ,
.Nm jn ,
.Nm y0 ,
.Nm y1 ,
.Nm yn
.Nd bessel functions of first and second kind
.Sh LIBRARY
.Lb libm
.Sh SYNOPSIS
.In math.h
.Ft double
.Fn j0 "double x"
.Ft double
.Fn j1 "double x"
.Ft double
.Fn jn "int n" "double x"
.Ft double
.Fn y0 "double x"
.Ft double
.Fn y1 "double x"
.Ft double
.Fn yn "int n" "double x"
.Sh DESCRIPTION
The functions
.Fn j0
and
.Fn j1
compute the
.Em Bessel function of the first kind of the order
0 and the
.Em order
1, respectively,
for the
real value
.Fa x ;
the function
.Fn jn
computes the
.Em "Bessel function of the first kind of the integer order"
.Fa n
for the real value
.Fa x .
.Pp
The functions
.Fn y0
and
.Fn y1
compute the linearly independent
.Em Bessel function of the second kind of the order
0 and the
.Em order
1, respectively,
for the positive
.Em integer
value
.Fa x
(expressed as a double);
the function
.Fn yn
computes the
.Em "Bessel function of the second kind for the integer order"
.Fa n
for the positive
.Em integer
value
.Fa x
(expressed as a double).
.Sh RETURN VALUES
If these functions are successful,
the computed value is returned.
On the
.Tn VAX
and
.Tn Tahoe
architectures,
a negative
.Fa x
value
results in an error; the global
variable
.Va errno
is set to
.Er EDOM
and a reserve operand fault is generated.
.Sh SEE ALSO
.Xr infnan 3 ,
.Xr math 3
.Sh HISTORY
A set of these functions
function appeared in
.At v7 .

View File

@ -1,126 +0,0 @@
.\" Copyright (c) 1985, 1991, 1993
.\" The Regents of the University of California. 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.
.\" 3. All advertising materials mentioning features or use of this software
.\" must display the following acknowledgement:
.\" This product includes software developed by the University of
.\" California, Berkeley and its contributors.
.\" 4. Neither the name of the University nor the names of its contributors
.\" may be used to endorse or promote products derived from this software
.\" without specific prior written permission.
.\"
.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS 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 REGENTS 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.
.\"
.\" @(#)lgamma.3 8.2 (Berkeley) 12/11/93
.\" $FreeBSD$
.\"
.Dd December 11, 1993
.Dt LGAMMA 3
.Os
.Sh NAME
.Nm lgamma
.Nm gamma
.Nd log gamma function, gamma function
.Sh LIBRARY
.Lb libm
.Sh SYNOPSIS
.In math.h
.Ft extern int
.Fa signgam ;
.sp
.Ft double
.Fn lgamma "double x"
.Ft double
.Fn gamma "double x"
.Sh DESCRIPTION
.Fn Lgamma x
.if t \{\
returns ln\||\(*G(x)| where
.Bd -unfilled -offset indent
\(*G(x) = \(is\d\s8\z0\s10\u\u\s8\(if\s10\d t\u\s8x\-1\s10\d e\u\s8\-t\s10\d dt for x > 0 and
.br
\(*G(x) = \(*p/(\(*G(1\-x)\|sin(\(*px)) for x < 1.
.Ed
.\}
.if n \
returns ln\||\(*G(x)|.
.Pp
The external integer
.Fa signgam
returns the sign of \(*G(x).
.Pp
.Fn Gamma x
returns \(*G(x), with no effect on
.Fa signgam .
.Sh IDIOSYNCRASIES
Do not use the expression
.Dq Li signgam\(**exp(lgamma(x))
to compute g := \(*G(x).
Instead use a program like this (in C):
.Bd -literal -offset indent
lg = lgamma(x); g = signgam\(**exp(lg);
.Ed
.Pp
Only after
.Fn lgamma
has returned can signgam be correct.
.Pp
For arguments in its range,
.Fn gamma
is preferred, as for positive arguments
it is accurate to within one unit in the last place.
Exponentiation of
.Fn lgamma
will lose up to 10 significant bits.
.Sh RETURN VALUES
.Fn Gamma
and
.Fn lgamma
return appropriate values unless an argument is out of range.
Overflow will occur for sufficiently large positive values, and
non-positive integers.
On the
.Tn VAX ,
the reserved operator is returned,
and
.Va errno
is set to
.Er ERANGE .
For large non-integer negative values,
.Fn gamma
will underflow.
.Sh SEE ALSO
.Xr infnan 3 ,
.Xr math 3
.Sh HISTORY
The
.Fn lgamma
function appeared in
.Bx 4.3 .
The
.Fn gamma
function appeared in
.Bx 4.4 .
The name
.Fn gamma
was originally dedicated to the
.Fn lgamma
function, so some old code may no longer be compatible.

View File

@ -1,632 +0,0 @@
.\" Copyright (c) 1985, 1993
.\" The Regents of the University of California. 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.
.\" 3. All advertising materials mentioning features or use of this software
.\" must display the following acknowledgement:
.\" This product includes software developed by the University of
.\" California, Berkeley and its contributors.
.\" 4. Neither the name of the University nor the names of its contributors
.\" may be used to endorse or promote products derived from this software
.\" without specific prior written permission.
.\"
.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS 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 REGENTS 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.
.\"
.\" @(#)math.3 8.2 (Berkeley) 5/5/94
.\" $FreeBSD$
.\"
.TH MATH 3 "May 5, 1994"
.UC 4
.ds up \fIulp\fR
.ds nn \fINaN\fR
.de If
.if n \\
\\$1Infinity\\$2
.if t \\
\\$1\\(if\\$2
..
.SH NAME
math \- introduction to mathematical library functions
.SH DESCRIPTION
These functions constitute the C math library,
.I libm.
The link editor searches this library under the \*(lq\-lm\*(rq option.
Declarations for these functions may be obtained from the include file
.RI < math.h >.
The Fortran math library is described in ``man 3f intro''.
.SH "LIST OF FUNCTIONS"
.sp 2
.nf
.ta \w'copysign'u+2n +\w'infnan.3m'u+10n +\w'inverse trigonometric func'u
\fIName\fP \fIAppears on Page\fP \fIDescription\fP \fIError Bound (ULPs)\fP
.ta \w'copysign'u+4n +\w'infnan.3m'u+4n +\w'inverse trigonometric function'u+6nC
.sp 5p
acos sin.3m inverse trigonometric function 3
acosh asinh.3m inverse hyperbolic function 3
asin sin.3m inverse trigonometric function 3
asinh asinh.3m inverse hyperbolic function 3
atan sin.3m inverse trigonometric function 1
atanh asinh.3m inverse hyperbolic function 3
atan2 sin.3m inverse trigonometric function 2
cabs hypot.3m complex absolute value 1
cbrt sqrt.3m cube root 1
ceil floor.3m integer no less than 0
copysign ieee.3m copy sign bit 0
cos sin.3m trigonometric function 1
cosh sinh.3m hyperbolic function 3
drem ieee.3m remainder 0
erf erf.3m error function ???
erfc erf.3m complementary error function ???
exp exp.3m exponential 1
expm1 exp.3m exp(x)\-1 1
fabs floor.3m absolute value 0
floor floor.3m integer no greater than 0
hypot hypot.3m Euclidean distance 1
infnan infnan.3m signals exceptions
j0 j0.3m bessel function ???
j1 j0.3m bessel function ???
jn j0.3m bessel function ???
lgamma lgamma.3m log gamma function; (formerly gamma.3m)
log exp.3m natural logarithm 1
logb ieee.3m exponent extraction 0
log10 exp.3m logarithm to base 10 3
log1p exp.3m log(1+x) 1
pow exp.3m exponential x**y 60\-500
rint floor.3m round to nearest integer 0
scalb ieee.3m exponent adjustment 0
sin sin.3m trigonometric function 1
sinh sinh.3m hyperbolic function 3
sqrt sqrt.3m square root 1
tan sin.3m trigonometric function 3
tanh sinh.3m hyperbolic function 3
y0 j0.3m bessel function ???
y1 j0.3m bessel function ???
yn j0.3m bessel function ???
.ta
.fi
.SH NOTES
In 4.3 BSD, distributed from the University of California
in late 1985, most of the foregoing functions come in two
versions, one for the double\-precision "D" format in the
DEC VAX\-11 family of computers, another for double\-precision
arithmetic conforming to the IEEE Standard 754 for Binary
Floating\-Point Arithmetic. The two versions behave very
similarly, as should be expected from programs more accurate
and robust than was the norm when UNIX was born. For
instance, the programs are accurate to within the numbers
of \*(ups tabulated above; an \*(up is one \fIU\fRnit in the \fIL\fRast
\fIP\fRlace. And the programs have been cured of anomalies that
afflicted the older math library \fIlibm\fR in which incidents like
the following had been reported:
.RS
sqrt(\-1.0) = 0.0 and log(\-1.0) = \-1.7e38.
.br
cos(1.0e\-11) > cos(0.0) > 1.0.
.br
pow(x,1.0)
.if n \
!=
.if t \
\(!=
x when x = 2.0, 3.0, 4.0, ..., 9.0.
.br
pow(\-1.0,1.0e10) trapped on Integer Overflow.
.br
sqrt(1.0e30) and sqrt(1.0e\-30) were very slow.
.RE
However the two versions do differ in ways that have to be
explained, to which end the following notes are provided.
.PP
\fBDEC VAX\-11 D_floating\-point:\fR
.PP
This is the format for which the original math library \fIlibm\fR
was developed, and to which this manual is still principally
dedicated. It is \fIthe\fR double\-precision format for the PDP\-11
and the earlier VAX\-11 machines; VAX\-11s after 1983 were
provided with an optional "G" format closer to the IEEE
double\-precision format. The earlier DEC MicroVAXs have no
D format, only G double\-precision.
(Why? Why not?)
.PP
Properties of D_floating\-point:
.RS
Wordsize: 64 bits, 8 bytes. Radix: Binary.
.br
Precision: 56
.if n \
sig.
.if t \
significant
bits, roughly like 17
.if n \
sig.
.if t \
significant
decimals.
.RS
If x and x' are consecutive positive D_floating\-point
numbers (they differ by 1 \*(up), then
.br
1.3e\-17 < 0.5**56 < (x'\-x)/x \(<= 0.5**55 < 2.8e\-17.
.RE
.nf
.ta \w'Range:'u+1n +\w'Underflow threshold'u+1n +\w'= 2.0**127'u+1n
Range: Overflow threshold = 2.0**127 = 1.7e38.
Underflow threshold = 0.5**128 = 2.9e\-39.
NOTE: THIS RANGE IS COMPARATIVELY NARROW.
.ta
.fi
.RS
Overflow customarily stops computation.
.br
Underflow is customarily flushed quietly to zero.
.br
CAUTION:
.RS
It is possible to have x
.if n \
!=
.if t \
\(!=
y and yet
x\-y = 0 because of underflow. Similarly
x > y > 0 cannot prevent either x\(**y = 0
or y/x = 0 from happening without warning.
.RE
.RE
Zero is represented ambiguously.
.RS
Although 2**55 different representations of zero are accepted by
the hardware, only the obvious representation is ever produced.
There is no \-0 on a VAX.
.RE
.If
is not part of the VAX architecture.
.br
Reserved operands:
.RS
of the 2**55 that the hardware
recognizes, only one of them is ever produced.
Any floating\-point operation upon a reserved
operand, even a MOVF or MOVD, customarily stops
computation, so they are not much used.
.RE
Exceptions:
.RS
Divisions by zero and operations that
overflow are invalid operations that customarily
stop computation or, in earlier machines, produce
reserved operands that will stop computation.
.RE
Rounding:
.RS
Every rational operation (+, \-, \(**, /) on a
VAX (but not necessarily on a PDP\-11), if not an
over/underflow nor division by zero, is rounded to
within half an \*(up, and when the rounding error is
exactly half an \*(up then rounding is away from 0.
.RE
.RE
.PP
Except for its narrow range, D_floating\-point is one of the
better computer arithmetics designed in the 1960's.
Its properties are reflected fairly faithfully in the elementary
functions for a VAX distributed in 4.3 BSD.
They over/underflow only if their results have to lie out of range
or very nearly so, and then they behave much as any rational
arithmetic operation that over/underflowed would behave.
Similarly, expressions like log(0) and atanh(1) behave
like 1/0; and sqrt(\-3) and acos(3) behave like 0/0;
they all produce reserved operands and/or stop computation!
The situation is described in more detail in manual pages.
.RS
.ll -0.5i
\fIThis response seems excessively punitive, so it is destined
to be replaced at some time in the foreseeable future by a
more flexible but still uniform scheme being developed to
handle all floating\-point arithmetic exceptions neatly.
See infnan(3M) for the present state of affairs.\fR
.ll +0.5i
.RE
.PP
How do the functions in 4.3 BSD's new \fIlibm\fR for UNIX
compare with their counterparts in DEC's VAX/VMS library?
Some of the VMS functions are a little faster, some are
a little more accurate, some are more puritanical about
exceptions (like pow(0.0,0.0) and atan2(0.0,0.0)),
and most occupy much more memory than their counterparts in
\fIlibm\fR.
The VMS codes interpolate in large table to achieve
speed and accuracy; the \fIlibm\fR codes use tricky formulas
compact enough that all of them may some day fit into a ROM.
.PP
More important, DEC regards the VMS codes as proprietary
and guards them zealously against unauthorized use. But the
\fIlibm\fR codes in 4.3 BSD are intended for the public domain;
they may be copied freely provided their provenance is always
acknowledged, and provided users assist the authors in their
researches by reporting experience with the codes.
Therefore no user of UNIX on a machine whose arithmetic resembles
VAX D_floating\-point need use anything worse than the new \fIlibm\fR.
.PP
\fBIEEE STANDARD 754 Floating\-Point Arithmetic:\fR
.PP
This standard is on its way to becoming more widely adopted
than any other design for computer arithmetic.
VLSI chips that conform to some version of that standard have been
produced by a host of manufacturers, among them ...
.nf
.ta 0.5i +\w'Intel i8070, i80287'u+6n
Intel i8087, i80287 National Semiconductor 32081
Motorola 68881 Weitek WTL-1032, ... , -1165
Zilog Z8070 Western Electric (AT&T) WE32106.
.ta
.fi
Other implementations range from software, done thoroughly
in the Apple Macintosh, through VLSI in the Hewlett\-Packard
9000 series, to the ELXSI 6400 running ECL at 3 Megaflops.
Several other companies have adopted the formats
of IEEE 754 without, alas, adhering to the standard's way
of handling rounding and exceptions like over/underflow.
The DEC VAX G_floating\-point format is very similar to the IEEE
754 Double format, so similar that the C programs for the
IEEE versions of most of the elementary functions listed
above could easily be converted to run on a MicroVAX, though
nobody has volunteered to do that yet.
.PP
The codes in 4.3 BSD's \fIlibm\fR for machines that conform to
IEEE 754 are intended primarily for the National Semi. 32081
and WTL 1164/65. To use these codes with the Intel or Zilog
chips, or with the Apple Macintosh or ELXSI 6400, is to
forego the use of better codes provided (perhaps freely) by
those companies and designed by some of the authors of the
codes above.
Except for \fIatan\fR, \fIcabs\fR, \fIcbrt\fR, \fIerf\fR,
\fIerfc\fR, \fIhypot\fR, \fIj0\-jn\fR, \fIlgamma\fR, \fIpow\fR
and \fIy0\-yn\fR,
the Motorola 68881 has all the functions in \fIlibm\fR on chip,
and faster and more accurate;
it, Apple, the i8087, Z8070 and WE32106 all use 64
.if n \
sig.
.if t \
significant
bits.
The main virtue of 4.3 BSD's
\fIlibm\fR codes is that they are intended for the public domain;
they may be copied freely provided their provenance is always
acknowledged, and provided users assist the authors in their
researches by reporting experience with the codes.
Therefore no user of UNIX on a machine that conforms to
IEEE 754 need use anything worse than the new \fIlibm\fR.
.PP
Properties of IEEE 754 Double\-Precision:
.RS
Wordsize: 64 bits, 8 bytes. Radix: Binary.
.br
Precision: 53
.if n \
sig.
.if t \
significant
bits, roughly like 16
.if n \
sig.
.if t \
significant
decimals.
.RS
If x and x' are consecutive positive Double\-Precision
numbers (they differ by 1 \*(up), then
.br
1.1e\-16 < 0.5**53 < (x'\-x)/x \(<= 0.5**52 < 2.3e\-16.
.RE
.nf
.ta \w'Range:'u+1n +\w'Underflow threshold'u+1n +\w'= 2.0**1024'u+1n
Range: Overflow threshold = 2.0**1024 = 1.8e308
Underflow threshold = 0.5**1022 = 2.2e\-308
.ta
.fi
.RS
Overflow goes by default to a signed
.If "" .
.br
Underflow is \fIGradual,\fR rounding to the nearest
integer multiple of 0.5**1074 = 4.9e\-324.
.RE
Zero is represented ambiguously as +0 or \-0.
.RS
Its sign transforms correctly through multiplication or
division, and is preserved by addition of zeros
with like signs; but x\-x yields +0 for every
finite x. The only operations that reveal zero's
sign are division by zero and copysign(x,\(+-0).
In particular, comparison (x > y, x \(>= y, etc.)
cannot be affected by the sign of zero; but if
finite x = y then
.If
\&= 1/(x\-y)
.if n \
!=
.if t \
\(!=
\-1/(y\-x) =
.If \- .
.RE
.If
is signed.
.RS
it persists when added to itself
or to any finite number. Its sign transforms
correctly through multiplication and division, and
.If (finite)/\(+- \0=\0\(+-0
(nonzero)/0 =
.If \(+- .
But
.if n \
Infinity\-Infinity, Infinity\(**0 and Infinity/Infinity
.if t \
\(if\-\(if, \(if\(**0 and \(if/\(if
are, like 0/0 and sqrt(\-3),
invalid operations that produce \*(nn. ...
.RE
Reserved operands:
.RS
there are 2**53\-2 of them, all
called \*(nn (\fIN\fRot \fIa N\fRumber).
Some, called Signaling \*(nns, trap any floating\-point operation
performed upon them; they are used to mark missing
or uninitialized values, or nonexistent elements
of arrays. The rest are Quiet \*(nns; they are
the default results of Invalid Operations, and
propagate through subsequent arithmetic operations.
If x
.if n \
!=
.if t \
\(!=
x then x is \*(nn; every other predicate
(x > y, x = y, x < y, ...) is FALSE if \*(nn is involved.
.br
NOTE: Trichotomy is violated by \*(nn.
.RS
Besides being FALSE, predicates that entail ordered
comparison, rather than mere (in)equality,
signal Invalid Operation when \*(nn is involved.
.RE
.RE
Rounding:
.RS
Every algebraic operation (+, \-, \(**, /,
.if n \
sqrt)
.if t \
\(sr)
is rounded by default to within half an \*(up, and
when the rounding error is exactly half an \*(up then
the rounded value's least significant bit is zero.
This kind of rounding is usually the best kind,
sometimes provably so; for instance, for every
x = 1.0, 2.0, 3.0, 4.0, ..., 2.0**52, we find
(x/3.0)\(**3.0 == x and (x/10.0)\(**10.0 == x and ...
despite that both the quotients and the products
have been rounded. Only rounding like IEEE 754
can do that. But no single kind of rounding can be
proved best for every circumstance, so IEEE 754
provides rounding towards zero or towards
.If +
or towards
.If \-
at the programmer's option. And the
same kinds of rounding are specified for
Binary\-Decimal Conversions, at least for magnitudes
between roughly 1.0e\-10 and 1.0e37.
.RE
Exceptions:
.RS
IEEE 754 recognizes five kinds of floating\-point exceptions,
listed below in declining order of probable importance.
.RS
.nf
.ta \w'Invalid Operation'u+6n +\w'Gradual Underflow'u+2n
Exception Default Result
.sp 0.5
Invalid Operation \*(nn, or FALSE
.if n \{\
Overflow \(+-Infinity
Divide by Zero \(+-Infinity \}
.if t \{\
Overflow \(+-\(if
Divide by Zero \(+-\(if \}
Underflow Gradual Underflow
Inexact Rounded value
.ta
.fi
.RE
NOTE: An Exception is not an Error unless handled
badly. What makes a class of exceptions exceptional
is that no single default response can be satisfactory
in every instance. On the other hand, if a default
response will serve most instances satisfactorily,
the unsatisfactory instances cannot justify aborting
computation every time the exception occurs.
.RE
.PP
For each kind of floating\-point exception, IEEE 754
provides a Flag that is raised each time its exception
is signaled, and stays raised until the program resets
it. Programs may also test, save and restore a flag.
Thus, IEEE 754 provides three ways by which programs
may cope with exceptions for which the default result
might be unsatisfactory:
.IP 1) \w'\0\0\0\0'u
Test for a condition that might cause an exception
later, and branch to avoid the exception.
.IP 2) \w'\0\0\0\0'u
Test a flag to see whether an exception has occurred
since the program last reset its flag.
.IP 3) \w'\0\0\0\0'u
Test a result to see whether it is a value that only
an exception could have produced.
.RS
CAUTION: The only reliable ways to discover
whether Underflow has occurred are to test whether
products or quotients lie closer to zero than the
underflow threshold, or to test the Underflow
flag. (Sums and differences cannot underflow in
IEEE 754; if x
.if n \
!=
.if t \
\(!=
y then x\-y is correct to
full precision and certainly nonzero regardless of
how tiny it may be.) Products and quotients that
underflow gradually can lose accuracy gradually
without vanishing, so comparing them with zero
(as one might on a VAX) will not reveal the loss.
Fortunately, if a gradually underflowed value is
destined to be added to something bigger than the
underflow threshold, as is almost always the case,
digits lost to gradual underflow will not be missed
because they would have been rounded off anyway.
So gradual underflows are usually \fIprovably\fR ignorable.
The same cannot be said of underflows flushed to 0.
.RE
.PP
At the option of an implementor conforming to IEEE 754,
other ways to cope with exceptions may be provided:
.IP 4) \w'\0\0\0\0'u
ABORT. This mechanism classifies an exception in
advance as an incident to be handled by means
traditionally associated with error\-handling
statements like "ON ERROR GO TO ...". Different
languages offer different forms of this statement,
but most share the following characteristics:
.IP \(em \w'\0\0\0\0'u
No means is provided to substitute a value for
the offending operation's result and resume
computation from what may be the middle of an
expression. An exceptional result is abandoned.
.IP \(em \w'\0\0\0\0'u
In a subprogram that lacks an error\-handling
statement, an exception causes the subprogram to
abort within whatever program called it, and so
on back up the chain of calling subprograms until
an error\-handling statement is encountered or the
whole task is aborted and memory is dumped.
.IP 5) \w'\0\0\0\0'u
STOP. This mechanism, requiring an interactive
debugging environment, is more for the programmer
than the program. It classifies an exception in
advance as a symptom of a programmer's error; the
exception suspends execution as near as it can to
the offending operation so that the programmer can
look around to see how it happened. Quite often
the first several exceptions turn out to be quite
unexceptionable, so the programmer ought ideally
to be able to resume execution after each one as if
execution had not been stopped.
.IP 6) \w'\0\0\0\0'u
\&... Other ways lie beyond the scope of this document.
.RE
.PP
The crucial problem for exception handling is the problem of
Scope, and the problem's solution is understood, but not
enough manpower was available to implement it fully in time
to be distributed in 4.3 BSD's \fIlibm\fR. Ideally, each
elementary function should act as if it were indivisible, or
atomic, in the sense that ...
.IP i) \w'iii)'u+2n
No exception should be signaled that is not deserved by
the data supplied to that function.
.IP ii) \w'iii)'u+2n
Any exception signaled should be identified with that
function rather than with one of its subroutines.
.IP iii) \w'iii)'u+2n
The internal behavior of an atomic function should not
be disrupted when a calling program changes from
one to another of the five or so ways of handling
exceptions listed above, although the definition
of the function may be correlated intentionally
with exception handling.
.PP
Ideally, every programmer should be able \fIconveniently\fR to
turn a debugged subprogram into one that appears atomic to
its users. But simulating all three characteristics of an
atomic function is still a tedious affair, entailing hosts
of tests and saves\-restores; work is under way to ameliorate
the inconvenience.
.PP
Meanwhile, the functions in \fIlibm\fR are only approximately
atomic. They signal no inappropriate exception except
possibly ...
.RS
Over/Underflow
.RS
when a result, if properly computed, might have lain barely within range, and
.RE
Inexact in \fIcabs\fR, \fIcbrt\fR, \fIhypot\fR, \fIlog10\fR and \fIpow\fR
.RS
when it happens to be exact, thanks to fortuitous cancellation of errors.
.RE
.RE
Otherwise, ...
.RS
Invalid Operation is signaled only when
.RS
any result but \*(nn would probably be misleading.
.RE
Overflow is signaled only when
.RS
the exact result would be finite but beyond the overflow threshold.
.RE
Divide\-by\-Zero is signaled only when
.RS
a function takes exactly infinite values at finite operands.
.RE
Underflow is signaled only when
.RS
the exact result would be nonzero but tinier than the underflow threshold.
.RE
Inexact is signaled only when
.RS
greater range or precision would be needed to represent the exact result.
.RE
.RE
.SH BUGS
When signals are appropriate, they are emitted by certain
operations within the codes, so a subroutine\-trace may be
needed to identify the function with its signal in case
method 5) above is in use. And the codes all take the
IEEE 754 defaults for granted; this means that a decision to
trap all divisions by zero could disrupt a code that would
otherwise get correct results despite division by zero.
.SH SEE ALSO
An explanation of IEEE 754 and its proposed extension p854
was published in the IEEE magazine MICRO in August 1984 under
the title "A Proposed Radix\- and Word\-length\-independent
Standard for Floating\-point Arithmetic" by W. J. Cody et al.
The manuals for Pascal, C and BASIC on the Apple Macintosh
document the features of IEEE 754 pretty well.
Articles in the IEEE magazine COMPUTER vol. 14 no. 3 (Mar.
1981), and in the ACM SIGNUM Newsletter Special Issue of
Oct. 1979, may be helpful although they pertain to
superseded drafts of the standard.

View File

@ -1,118 +0,0 @@
.\" Copyright (c) 1985, 1991, 1993
.\" The Regents of the University of California. 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.
.\" 3. All advertising materials mentioning features or use of this software
.\" must display the following acknowledgement:
.\" This product includes software developed by the University of
.\" California, Berkeley and its contributors.
.\" 4. Neither the name of the University nor the names of its contributors
.\" may be used to endorse or promote products derived from this software
.\" without specific prior written permission.
.\"
.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS 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 REGENTS 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.
.\"
.\" @(#)rint.3 8.2 (Berkeley) 12/11/93
.\" $FreeBSD$
.\"
.Dd December 11, 1993
.Dt RINT 3
.Os
.Sh NAME
.Nm rint
.Nd round-to-closest integer functions
.Sh LIBRARY
.Lb libm
.Sh SYNOPSIS
.In math.h
.Ft double
.Fn rint "double x"
.Sh DESCRIPTION
The
.Fn rint
function finds the integer (represented as a double precision number)
nearest to
.Fa x
in the direction of the prevailing rounding mode.
.Sh NOTES
On a
.Tn VAX ,
.Fn rint x
is equivalent to adding half to the magnitude
and then rounding towards zero.
.Pp
In the default rounding mode, to nearest,
on a machine that conforms to
.Tn IEEE
754,
.Fn rint x
is the integer nearest
.Fa x
with the additional stipulation
that if
.Li |rint(x)\-x|=1/2
then
.Fn rint x
is even.
Other rounding modes can make
.Fn rint
act like
.Fn floor ,
or like
.Fn ceil ,
or round towards zero.
.Pp
Another way to obtain an integer near
.Fa x
is to declare (in C)
.Bd -literal -offset indent
double x;\0\0\0\0 int k;\0\0\0\0k\0=\0x;
.Ed
.Pp
Most C compilers round
.Fa x
towards 0 to get the integer
.Fa k ,
but
some do otherwise.
If in doubt, use
.Fn floor ,
.Fn ceil ,
or
.Fn rint
first, whichever you intend.
Also note that, if x is larger than
.Fa k
can accommodate, the value of
.Fa k
and the presence or absence of an integer overflow are hard to
predict.
.Sh SEE ALSO
.Xr abs 3 ,
.Xr ceil 3 ,
.Xr fabs 3 ,
.Xr floor 3 ,
.Xr ieee 3 ,
.Xr math 3
.Sh HISTORY
A
.Fn rint
function appeared in
.At v6 .

View File

@ -1,75 +0,0 @@
.\" Copyright (c) 1991, 1993
.\" The Regents of the University of California. All rights reserved.
.\"
.\" @(#)sin.3 8.1 (Berkeley) 6/4/93
.\" 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.
.\" 3. All advertising materials mentioning features or use of this software
.\" must display the following acknowledgement:
.\" This product includes software developed by the University of
.\" California, Berkeley and its contributors.
.\" 4. Neither the name of the University nor the names of its contributors
.\" may be used to endorse or promote products derived from this software
.\" without specific prior written permission.
.\"
.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS 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 REGENTS 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.
.\"
.\" @(#)sin.3 8.1 (Berkeley) 6/4/93
.\" $FreeBSD$
.\"
.Dd June 4, 1993
.Dt SIN 3
.Os
.Sh NAME
.Nm sin
.Nd sine function
.Sh LIBRARY
.Lb libm
.Sh SYNOPSIS
.In math.h
.Ft double
.Fn sin "double x"
.Sh DESCRIPTION
The
.Fn sin
function computes the sine of
.Fa x
(measured in radians).
A large magnitude argument may yield a result with little
or no significance.
.Sh RETURN VALUES
The
.Fn sin
function returns the sine value.
.Sh SEE ALSO
.Xr acos 3 ,
.Xr asin 3 ,
.Xr atan 3 ,
.Xr atan2 3 ,
.Xr cos 3 ,
.Xr cosh 3 ,
.Xr math 3 ,
.Xr sinh 3 ,
.Xr tan 3 ,
.Xr tanh 3
.Sh STANDARDS
The
.Fn sin
function conforms to
.St -isoC .

View File

@ -1,78 +0,0 @@
.\" Copyright (c) 1991, 1993
.\" The Regents of the University of California. 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.
.\" 3. All advertising materials mentioning features or use of this software
.\" must display the following acknowledgement:
.\" This product includes software developed by the University of
.\" California, Berkeley and its contributors.
.\" 4. Neither the name of the University nor the names of its contributors
.\" may be used to endorse or promote products derived from this software
.\" without specific prior written permission.
.\"
.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS 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 REGENTS 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.
.\"
.\" @(#)sinh.3 8.1 (Berkeley) 6/4/93
.\" $FreeBSD$
.\"
.Dd June 4, 1993
.Dt SINH 3
.Os
.Sh NAME
.Nm sinh
.Nd hyperbolic sine function
.Sh LIBRARY
.Lb libm
.Sh SYNOPSIS
.In math.h
.Ft double
.Fn sinh "double x"
.Sh DESCRIPTION
The
.Fn sinh
function computes the hyperbolic sine of
.Fa x .
.Sh RETURN VALUES
The
.Fn sinh
function returns the hyperbolic sine value unless
the magnitude
of
.Fa x
is too large; in this event, the global variable
.Va errno
is set to
.Er ERANGE .
.Sh SEE ALSO
.Xr acos 3 ,
.Xr asin 3 ,
.Xr atan 3 ,
.Xr atan2 3 ,
.Xr cos 3 ,
.Xr cosh 3 ,
.Xr math 3 ,
.Xr sin 3 ,
.Xr tan 3 ,
.Xr tanh 3
.Sh STANDARDS
The
.Fn sinh
function conforms to
.St -isoC .

View File

@ -1,123 +0,0 @@
.\" Copyright (c) 1985, 1991, 1993
.\" The Regents of the University of California. 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.
.\" 3. All advertising materials mentioning features or use of this software
.\" must display the following acknowledgement:
.\" This product includes software developed by the University of
.\" California, Berkeley and its contributors.
.\" 4. Neither the name of the University nor the names of its contributors
.\" may be used to endorse or promote products derived from this software
.\" without specific prior written permission.
.\"
.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS 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 REGENTS 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.
.\"
.\" @(#)sqrt.3 8.1 (Berkeley) 6/4/93
.\" $FreeBSD$
.\"
.Dd June 4, 1993
.Dt SQRT 3
.Os
.Sh NAME
.Nm cbrt ,
.Nm sqrt
.Nd cube root and square root functions
.Sh LIBRARY
.Lb libm
.Sh SYNOPSIS
.In math.h
.Ft double
.Fn cbrt "double x"
.Ft double
.Fn sqrt "double x"
.Sh DESCRIPTION
The
.Fn cbrt
function computes
the cube root of
.Ar x .
.Pp
The
.Fn sqrt
computes the
non-negative square root of x.
.Sh RETURN VALUES
The
.Fn cbrt
function returns the requested cube root.
The
.Fn sqrt
function returns the requested square root
unless an error occurs.
On the
.Tn VAX
or
.Tn Tahoe
processor an attempt to take the
.Fn sqrt
of negative
.Fa x
causes an error; in this event,
the global variable
.Va errno
is set to
.Er EDOM
and a reserved operand fault is generated.
.Sh ERROR (due to Roundoff etc.)
The
.Fn cbrt
function
is accurate to within 0.7
.Em ulps .
.Pp
The
.Fn sqrt
function on a
.Tn VAX
is accurate to within 0.501
.Em ulps .
Sqrt on a machine that conforms to
.Tn IEEE
754 is correctly rounded
in accordance with the rounding mode in force; the error is less than
half an
.Em ulp
in the default mode (round\-to\-nearest).
An
.Em ulp
is one
.Em U Ns nit
in the
.Em L Ns ast
.Em P Ns lace
carried.
.Sh SEE ALSO
.Xr infnan 3 ,
.Xr math 3
.Sh STANDARDS
The
.Fn sqrt
function conforms to
.St -isoC .
.Sh HISTORY
The
.Fn cbrt
function appeared in
.Bx 4.3 .

View File

@ -1,76 +0,0 @@
.\" Copyright (c) 1991, 1993
.\" The Regents of the University of California. 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.
.\" 3. All advertising materials mentioning features or use of this software
.\" must display the following acknowledgement:
.\" This product includes software developed by the University of
.\" California, Berkeley and its contributors.
.\" 4. Neither the name of the University nor the names of its contributors
.\" may be used to endorse or promote products derived from this software
.\" without specific prior written permission.
.\"
.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS 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 REGENTS 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.
.\"
.\" @(#)tan.3 8.1 (Berkeley) 6/4/93
.\" $FreeBSD$
.\"
.Dd June 4, 1993
.Dt TAN 3
.Os
.Sh NAME
.Nm tan
.Nd tangent function
.Sh LIBRARY
.Lb libm
.Sh SYNOPSIS
.In math.h
.Ft double
.Fn tan "double x"
.Sh DESCRIPTION
The
.Fn tan
function computes the tangent of
.Fa x
(measured in radians).
A large magnitude argument may yield a result
with little or no significance.
For a discussion of error due to roundoff, see
.Xr math 3 .
.Sh RETURN VALUES
The
.Fn tan
function returns the tangent value.
.Sh SEE ALSO
.Xr acos 3 ,
.Xr asin 3 ,
.Xr atan 3 ,
.Xr atan2 3 ,
.Xr cos 3 ,
.Xr cosh 3 ,
.Xr math 3 ,
.Xr sin 3 ,
.Xr sinh 3 ,
.Xr tanh 3
.Sh STANDARDS
The
.Fn tan
function conforms to
.St -isoC .

View File

@ -1,73 +0,0 @@
.\" Copyright (c) 1991, 1993
.\" The Regents of the University of California. 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.
.\" 3. All advertising materials mentioning features or use of this software
.\" must display the following acknowledgement:
.\" This product includes software developed by the University of
.\" California, Berkeley and its contributors.
.\" 4. Neither the name of the University nor the names of its contributors
.\" may be used to endorse or promote products derived from this software
.\" without specific prior written permission.
.\"
.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS 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 REGENTS 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.
.\"
.\" @(#)tanh.3 8.1 (Berkeley) 6/4/93
.\" $FreeBSD$
.\"
.Dd June 4, 1993
.Dt TANH 3
.Os
.Sh NAME
.Nm tanh
.Nd hyperbolic tangent function
.Sh LIBRARY
.Lb libm
.Sh SYNOPSIS
.In math.h
.Ft double
.Fn tanh "double x"
.Sh DESCRIPTION
The
.Fn tanh
function computes the hyperbolic tangent of
.Fa x .
For a discussion of error due to roundoff, see
.Xr math 3 .
.Sh RETURN VALUES
The
.Fn tanh
function returns the hyperbolic tangent value.
.Sh SEE ALSO
.Xr acos 3 ,
.Xr asin 3 ,
.Xr atan 3 ,
.Xr atan2 3 ,
.Xr cos 3 ,
.Xr cosh 3 ,
.Xr math 3 ,
.Xr sin 3 ,
.Xr sinh 3 ,
.Xr tan 3
.Sh STANDARDS
The
.Fn tanh
function conforms to
.St -isoC .