]> git.ipfire.org Git - thirdparty/man-pages.git/blobdiff - man3/tan.3
Start of man-pages-5.03: renaming .Announce and .lsm files
[thirdparty/man-pages.git] / man3 / tan.3
index a5b811eae77b8b9205eb9040a61e4af363225d02..6a0c3d966ef1d10683b137e00e6ede231d9ed39f 100644 (file)
@@ -1,5 +1,8 @@
 .\" Copyright 1993 David Metcalfe (david@prism.demon.co.uk)
+.\" and Copyright 2008, Linux Foundation, written by Michael Kerrisk
+.\"     <mtk.manpages@gmail.com>
 .\"
+.\" %%%LICENSE_START(VERBATIM)
 .\" Permission is granted to make and distribute verbatim copies of this
 .\" manual provided the copyright notice and this permission notice are
 .\" preserved on all copies.
@@ -19,6 +22,7 @@
 .\"
 .\" Formatted or processed versions of this manual, if unaccompanied by
 .\" the source, must acknowledge the copyright and authors of this work.
+.\" %%%LICENSE_END
 .\"
 .\" References consulted:
 .\"     Linux libc source code
 .\" Modified 2002-07-27 by Walter Harms
 .\"    (walter.harms@informatik.uni-oldenburg.de)
 .\"
-.TH TAN 3 2002-07-27 ""  "Linux Programmer's Manual"
+.TH TAN 3 2017-09-15 ""  "Linux Programmer's Manual"
 .SH NAME
 tan, tanf, tanl \- tangent function
 .SH SYNOPSIS
 .nf
 .B #include <math.h>
-.sp
+.PP
 .BI "double tan(double " x );
-.br
 .BI "float tanf(float " x );
-.br
 .BI "long double tanl(long double " x );
 .fi
-.sp
-Link with \fI-lm\fP.
+.PP
+Link with \fI\-lm\fP.
+.PP
+.in -4n
+Feature Test Macro Requirements for glibc (see
+.BR feature_test_macros (7)):
+.in
+.PP
+.ad l
+.BR tanf (),
+.BR tanl ():
+.RS 4
+_ISOC99_SOURCE || _POSIX_C_SOURCE\ >=\ 200112L
+    || /* Since glibc 2.19: */ _DEFAULT_SOURCE
+    || /* Glibc versions <= 2.19: */ _BSD_SOURCE || _SVID_SOURCE
+.RE
+.ad
 .SH DESCRIPTION
-The
-.BR tan ()
-function returns the tangent of \fIx\fP, where \fIx\fP is
+These functions return the tangent of
+.IR x ,
+where
+.I x
+is
 given in radians.
-.SH "CONFORMING TO"
+.SH RETURN VALUE
+On success, these functions return the tangent of
+.IR x .
+.PP
+If
+.I x
+is a NaN, a NaN is returned.
+.PP
+If
+.I x
+is positive infinity or negative infinity,
+a domain error occurs,
+and a NaN is returned.
+.PP
+If the correct result would overflow,
+a range error occurs,
+and the functions return
+.BR HUGE_VAL ,
+.BR HUGE_VALF ,
+or
+.BR HUGE_VALL ,
+respectively, with the mathematically correct sign.
+.\" I think overflow can't occur, because the closest floating-point
+.\" representation of pi/2 is still not close enough to pi/2 to
+.\" produce a large enough value to overflow.
+.\" Testing certainly seems to bear this out.  -- mtk, Jul 08
+.\"
+.\" POSIX.1 allows an optional underflow error;
+.\" glibc 2.8 doesn't do this
+.\" POSIX.1 an optional range error for subnormal x;
+.\" glibc 2.8 doesn't do this
+.SH ERRORS
+See
+.BR math_error (7)
+for information on how to determine whether an error has occurred
+when calling these functions.
+.PP
+The following errors can occur:
+.TP
+Domain error: \fIx\fP is an infinity
+.I errno
+is set to
+.B EDOM
+(but see BUGS).
+An invalid floating-point exception
+.RB ( FE_INVALID )
+is raised.
+.TP
+Range error: result overflow
+.\" Unable to test this case, since the best approximation of
+.\" pi/2 in double precision only yields a tan() value of 1.633e16.
+.\" .I errno
+.\" is set to
+.\" .BR ERANGE .
+An overflow floating-point exception
+.RB ( FE_OVERFLOW )
+is raised.
+.SH ATTRIBUTES
+For an explanation of the terms used in this section, see
+.BR attributes (7).
+.TS
+allbox;
+lbw21 lb lb
+l l l.
+Interface      Attribute       Value
+T{
+.BR tan (),
+.BR tanf (),
+.BR tanl ()
+T}     Thread safety   MT-Safe
+.TE
+.SH CONFORMING TO
+C99, POSIX.1-2001, POSIX.1-2008.
+.PP
+The variant returning
+.I double
+also conforms to
 SVr4, 4.3BSD, C89.
-The
-.I float
-and
-.I "long double"
-variants are C99 requirements.
-.SH "SEE ALSO"
+.SH BUGS
+Before version 2.10, the glibc implementation did not set
+.\" http://sourceware.org/bugzilla/show_bug.cgi?id=6782
+.I errno
+to
+.B EDOM
+when a domain error occurred.
+.SH SEE ALSO
 .BR acos (3),
 .BR asin (3),
 .BR atan (3),