.\" Copyright 2002 Walter Harms (walter.harms@informatik.uni-oldenburg.de)
.\" and Copyright (C) 2011 Michael Kerrisk <mtk.manpages@gamil.com>
.\"
.\" %%%LICENSE_START(GPL_NOVERSION_ONELINE)
.\" Distributed under GPL
.\" %%%LICENSE_END
.\"
.TH CATANH 3 2011-09-15 "" "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 );
.br
.BI "float complex catanhf(float complex " z );
.br
.BI "long double complex catanhl(long double complex " z );
.sp
Link with \fI\-lm\fP.
.SH DESCRIPTION
The
.BR catanh ()
function calculates 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].
.LP
One has:
.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 CONFORMING TO
C99.
.SH EXAMPLE
.nf
/* 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);
}
.fi
.SH SEE ALSO
.BR atanh (3),
.BR cabs (3),
.BR cimag (3),
.BR ctanh (3),
.BR complex (7)
.SH COLOPHON
This page is part of release 3.53 of the Linux
.I man-pages
project.
A description of the project,
and information about reporting bugs,
can be found at
\%http://www.kernel.org/doc/man\-pages/.
