.\" Copyright 1993 David Metcalfe (david@prism.demon.co.uk)
+.\" and Copyright 2008, Linux Foundation, written by Michael Kerrisk
+.\" <mtk.manpages@gmail.com>
.\"
.\" Permission is granted to make and distribute verbatim copies of this
.\" manual provided the copyright notice and this permission notice are
.\" Modified 2002-07-25 by Walter Harms
.\" (walter.harms@informatik.uni-oldenburg.de)
.\"
-.TH ACOS 3 2004-10-06 "" "Linux Programmer's Manual"
+.TH ACOS 3 2008-07-29 "" "Linux Programmer's Manual"
.SH NAME
acos, acosf, acosl \- arc cosine function
.SH SYNOPSIS
.fi
.sp
Link with \fI\-lm\fP.
+.sp
+.in -4n
+Feature Test Macro Requirements for glibc (see
+.BR feature_test_macros (7)):
+.in
+.sp
+.ad l
+.BR acosf (),
+.BR acosl ():
+_BSD_SOURCE || _SVID_SOURCE || _XOPEN_SOURCE\ >=\ 600 || _ISOC99_SOURCE; or
+.I cc\ -std=c99
+.ad b
.SH DESCRIPTION
The
.BR acos ()
function calculates the arc cosine of \fIx\fP; that is
the value whose cosine is \fIx\fP.
-If \fIx\fP falls outside the range
-\-1 to 1,
-.BR acos ()
-fails and \fIerrno\fP is set.
.SH "RETURN VALUE"
-The
-.BR acos ()
-function returns the arc cosine in radians and the
-value is mathematically defined to be between 0 and PI (inclusive).
+On success, these functions return the arc cosine of
+.IR x
+in radians; the return value is in the range [0,\ pi].
+
+If
+.I x
+is a NaN, a NaN is returned.
+
+If
+.I x
+is +1,
++0 is returned.
+
+If
+.I x
+is positive infinity or negative infinity,
+a "domain error" occurs,
+and a NaN is returned.
+
+If
+.I x
+is outside the range [\-1,\ 1],
+a "domain error" occurs,
+and a NaN is returned.
.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
-.B EDOM
-\fIx\fP is out of range.
+Domain error: \fIx\fP is outside the range [\-1,\ 1]
+.I errno
+is set to
+.BR EDOM .
+An invalid floating-point exception
+.RB ( FE_INVALID )
+is raised.
.SH "CONFORMING TO"
-SVr4, POSIX.1-2001, 4.3BSD, C89, C99.
-The
-.I float
-and
-.I "long double"
-variants are C99 requirements.
+C99, POSIX.1-2001.
+The variant returning
+.I double
+also conforms to
+SVr4, 4.3BSD, C89.
.SH "SEE ALSO"
.BR asin (3),
.BR atan (3),