.\" Copyright 2002 Walter Harms (walter.harms@informatik.uni-oldenburg.de)
+.\" and Copyright (C) 2011 Michael Kerrisk <mtk.manpages@gmail.com>
+.\"
+.\" %%%LICENSE_START(GPL_NOVERSION_ONELINE)
.\" Distributed under GPL
+.\" %%%LICENSE_END
.\"
-.TH CATANH 3 2002-07-28 "" "complex math routines"
+.TH CATANH 3 2015-04-19 "" "Linux Programmer's Manual"
.SH NAME
catanh, catanhf, catanhl \- complex arc tangents hyperbolic
.SH SYNOPSIS
.B #include <complex.h>
-.sp
-.BI "double complex catanh(double complex " z );
+.PP
+.BI "double complex catanh(double complex " z );
.br
.BI "float complex catanhf(float complex " z );
.br
.BI "long double complex catanhl(long double complex " z );
-.sp
-Link with \-lm.
+.PP
+Link with \fI\-lm\fP.
.SH DESCRIPTION
-The catanh() function calculates the complex atanh().
-If y = catanh(z), then z = ctanh(y).
-The imaginary part of y is chosen in the interval [\-pi/2,pi/2].
-.LP
-One has catanh(z) = 0.5*clog((1+z)/(1\-z)).
-.SH "CONFORMING TO"
-C99
-.SH "SEE ALSO"
+These functions calculate the complex arc hyperbolic tangent of
+.IR z .
+If \fIy\ =\ catanh(z)\fP, then \fIz\ =\ ctanh(y)\fP.
+The imaginary part of
+.I y
+is chosen in the interval [\-pi/2,pi/2].
+.PP
+One has:
+.PP
+.nf
+ catanh(z) = 0.5 * (clog(1 + z) \- clog(1 \- z))
+.fi
+.SH VERSIONS
+These functions first appeared in glibc in version 2.1.
+.SH ATTRIBUTES
+For an explanation of the terms used in this section, see
+.BR attributes (7).
+.TS
+allbox;
+lbw30 lb lb
+l l l.
+Interface Attribute Value
+T{
+.BR catanh (),
+.BR catanhf (),
+.BR catanhl ()
+T} Thread safety MT-Safe
+.TE
+.SH CONFORMING TO
+C99, POSIX.1-2001, POSIX.1-2008.
+.SH EXAMPLE
+.EX
+/* Link with "\-lm" */
+
+#include <complex.h>
+#include <stdlib.h>
+#include <unistd.h>
+#include <stdio.h>
+
+int
+main(int argc, char *argv[])
+{
+ double complex z, c, f;
+
+ if (argc != 3) {
+ fprintf(stderr, "Usage: %s <real> <imag>\\n", argv[0]);
+ exit(EXIT_FAILURE);
+ }
+
+ z = atof(argv[1]) + atof(argv[2]) * I;
+
+ c = catanh(z);
+ printf("catanh() = %6.3f %6.3f*i\\n", creal(c), cimag(c));
+
+ f = 0.5 * (clog(1 + z) \- clog(1 \- z));
+ printf("formula = %6.3f %6.3f*i\\n", creal(f2), cimag(f2));
+
+ exit(EXIT_SUCCESS);
+}
+.EE
+.SH SEE ALSO
.BR atanh (3),
.BR cabs (3),
.BR cimag (3),
-.BR complex (5)
+.BR ctanh (3),
+.BR complex (7)