]> git.ipfire.org Git - thirdparty/man-pages.git/blobdiff - man3/tan.3
man3/t-v.3: srcfix: Use a single-font-style macro for a single argument
[thirdparty/man-pages.git] / man3 / tan.3
index 2dd1837228ff87a635b07ef006209544ff2cb03a..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.
@@ -8,7 +11,7 @@
 .\" manual under the conditions for verbatim copying, provided that the
 .\" entire resulting derived work is distributed under the terms of a
 .\" permission notice identical to this one.
-.\" 
+.\"
 .\" Since the Linux kernel and libraries are constantly changing, this
 .\" manual page may be incorrect or out-of-date.  The author(s) assume no
 .\" responsibility for errors or omissions, or for damages resulting from
 .\" have taken the same level of care in the production of this manual,
 .\" which is licensed free of charge, as they might when working
 .\" professionally.
-.\" 
+.\"
 .\" 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 \-lm.
+.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 \fBtan\fP() 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),