.\" 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 CACOSH 3 2011-09-15 "" "Linux Programmer's Manual"
.SH NAME
cacosh, cacoshf, cacoshl \- complex arc hyperbolic cosine
.SH SYNOPSIS
.B #include <complex.h>
.sp
.BI "double complex cacosh(double complex " z );
.br
.BI "float complex cacoshf(float complex " z );
.br
.BI "long double complex cacoshl(long double complex " z );
.sp
Link with \fI\-lm\fP.
.SH DESCRIPTION
The
.BR cacosh ()
function calculates the complex arc hyperpolic cosine of
.IR z .
If \fIy\ =\ cacosh(z)\fP, then \fIz\ =\ ccosh(y)\fP.
The imaginary part of
.I y
is chosen in the interval [\-pi,pi].
The real part of
.I y
is chosen nonnegative.
.LP
One has:
.nf

    cacosh(z) = 2 * clog(csqrt((z + 1) / 2) + csqrt((z \- 1) / 2))
.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 cacosh (),
.BR cacoshf (),
.BR cacoshl ()
T}	Thread safety	MT-Safe
.TE
.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 = cacosh(z);
    printf("cacosh() = %6.3f %6.3f*i\\n", creal(c), cimag(c));

    f = 2 * clog(csqrt((z + 1)/2) + csqrt((z \- 1)/2));
    printf("formula  = %6.3f %6.3f*i\\n", creal(f2), cimag(f2));

    exit(EXIT_SUCCESS);
}
.fi
.SH SEE ALSO
.BR acosh (3),
.BR cabs (3),
.BR ccosh (3),
.BR cimag (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/.
