.\" 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.
.\"
.\" 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 2008-07-29 "" "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
+.PP
Link with \fI\-lm\fP.
-.sp
+.PP
.in -4n
Feature Test Macro Requirements for glibc (see
.BR feature_test_macros (7)):
.in
-.sp
+.PP
.ad l
.BR tanf (),
.BR tanl ():
-_BSD_SOURCE || _SVID_SOURCE || _XOPEN_SOURCE\ >=\ 600 || _ISOC99_SOURCE; or
-.I cc\ -std=c99
-.ad b
+.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 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,
+a domain error occurs,
and a NaN is returned.
-
+.PP
If the correct result would overflow,
-a "range error" occurs,
+a range error occurs,
and the functions return
.BR HUGE_VAL ,
.BR HUGE_VALF ,
The following errors can occur:
.TP
Domain error: \fIx\fP is an infinity
-.\" .I errno
-.\" is set to
-.\" .BR EDOM .
+.I errno
+is set to
+.B EDOM
+(but see BUGS).
An invalid floating-point exception
.RB ( FE_INVALID )
is raised.
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
-These functions do not set
-.IR errno .
-.\" FIXME . Is it intentional that these functions do not set
-.\" errno (at least for domain error)?
-.\" Bug raised: http://sourceware.org/bugzilla/show_bug.cgi?id=6782
-.SH "CONFORMING TO"
-C99, POSIX.1-2001.
The variant returning
.I double
also conforms to
SVr4, 4.3BSD, C89.
-.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),