BSD 4_4 release
[unix-history] / usr / src / lib / libm / common_source / sin.3
index 5fe01db..c9bddd9 100644 (file)
-.TH SIN 3M  "8 May 1985"
-.UC 4
-.SH NAME
-sin, cos, tan, asin, acos, atan, atan2 \- trigonometric functions
-.SH SYNOPSIS
-.nf
-.B #include <math.h>
-.PP
-.B double sin(x)
-.B double x;
-.PP
-.B double cos(x)
-.B double x;
-.PP
-.B double tan(x)
-.B double x;
-.PP
-.B double asin(x)
-.B double x;
-.PP
-.B double acos(x)
-.B double x;
-.PP
-.B double atan(x)
-.B double x;
-.PP
-.B double atan2(y, x)
-.B double y, x;
-.fi
-.SH DESCRIPTION
-.I Sin, cos
-and
-.I tan
-return trigonometric functions of radian arguments.
-.PP
-.I Asin
-returns the arc sin in the range \-\(*p/2 to \(*p/2.
-.PP
-.I Acos
-returns the arc cosine in the range 0 to \(*p.
-.PP
-.I Atan
-returns the arc tangent of
-.I x
-in the range \-\(*p/2 to \(*p/2.
-.PP
-.I Atan2
-returns
-.I atan(y/x)
-if
-.I x
-> 0,
-.br
-.I sign(y)*(\(*p \- atan(|y/x|))
-if
-.I x
-< 0,
-.br
-.I zero
-if
-.I x
-= 
-.I y
-= 0 and
-.br
-.I sign(y)*\(*p/2
-if
-.I x
-= 0 but
-.I y
-not equal to 0.
-.SH SEE ALSO
-intro(3M), hypot(3M), sqrt(3M)
-.SH DIAGNOSTICS
-Arguments of magnitude greater than 1 cause
-.I asin
-and
-.I acos
-to return the reserved operand on the VAX;
-.I errno
-is set to EDOM.
-.SH NOTES
-.I Atan2
-defines
-.I atan2(0,0)
-=
-.I 0
-on the VAX despite that previously
-.I atan2(0,0)
-may have generated an error message.
-The reasons for assigning a value to
-.I atan2(0,0)
-are these:
-.IP (1)
-Any program that already tests whether
-.I y
-=
-.I x
-=
-.I 0
-before computing
-.I atan2(y,x)
-will be indifferent to whether
-.I atan2(0,0)
-=
-.I 0
-or not.
-Any program that expects
-.I atan2(0,0)
-to be invalid is dubious because the consequence of that
-invalidity will vary from one computer system to another.
-.IP (2)
-The principal use for
-.I atan2
-is conversion between rectangular (\fIx, y\fR) and polar
-(\fIr\fR,
-.if n\
-\fItheta\fR)
-.if t\
-\fI\(*h\fR)
-coordinates that must satisfy
-.br
-.I x
-=
-.I r
-\(**
-.I cos
-.if n\
-.I theta
-.if t\
-\(*h
-and
-.I y
-=
-.I r
-\(**
-.I sin
-.if n\
-.I theta.
-.if t\
-\(*h.
-Then mapping (\fIx\fR = \fI0\fR, \fIy\fR = \fI0\fR) to
-(\fIr\fR = \fI0\fR,
-.if n\
-.I theta
-.if t\
-.I \(*h
-= \fI0\fR)
-without fuss saves a programmer from nuisance tests.
-In general, given
-.I x
-and
-.I y
-the conversion should be effected by computing
-.RS
-.I r
-=
-\fIhypot\fR(\fIx\fR,\fIy\fR)                   ... :=
-.if n\
-\fIsqrt\fR(\fIx**2\fR+\fIy**2\fR)
-.if t\
-\fIsqrt\fR(\fIx\u\s82\s10\d\fR+\fIy\u\s82\s10\d\fR)
-.br
-.if n\
-.I theta
-.if t\
-\(*h
-=
-.I atan2(y,x).
-.RE
-.IP (3)
-On a machine that conforms to IEEE
-.I 754,
-the foregoing conversion has to cope with signed
-.I zeroes
-and
-.I infinities.
-For that purpose the formula above is compatible
-with the following:
-.br
-if
-.I x
-\(>=
-.I 0
-then
-.if n\
-.I theta
-.if t\
-\(*h
-=
-.I 2\(**atan(y/(r\fR+\fIx))
-else
-.if n\
-I theta
-.if t\
-\(*h
-=
-.I 2\(**atan((r\-x)/y)
-.br
-except if
-.I r
-=
-.I 0
-then replace
-.I x
-by
-.I copysign(1,x)
-here, and if
-.I r
-is infinite take limits to get a multiple of
-.if n\
-.I pi/4
-.if t\
-\(*p/4
-for
-.if n\
-.I theta.
-.if t\
-\(*h.
-.SH AUTHOR
-Robert P. Corbett, W. Kahan, Stuart McDonald, Kwok\-Choi Ng
+.\" 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
+.\"
+.Dd June 4, 1993
+.Dt SIN 3
+.Os
+.Sh NAME
+.Nm sin
+.Nd sine function
+.Sh SYNOPSIS
+.Fd #include <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 sinh 3 ,
+.Xr tan 3 ,
+.Xr tanh 3 ,
+.Xr math 3 ,
+.Sh STANDARDS
+The
+.Fn sin
+function conforms to
+.St -ansiC .