<html lang="en">
<head>
<title>Hyperbolic Functions - The GNU C Library</title>
<meta http-equiv="Content-Type" content="text/html">
<meta name="description" content="The GNU C Library">
<meta name="generator" content="makeinfo 4.13">
<link title="Top" rel="start" href="index.html#Top">
<link rel="up" href="Mathematics.html#Mathematics" title="Mathematics">
<link rel="prev" href="Exponents-and-Logarithms.html#Exponents-and-Logarithms" title="Exponents and Logarithms">
<link rel="next" href="Special-Functions.html#Special-Functions" title="Special Functions">
<link href="http://www.gnu.org/software/texinfo/" rel="generator-home" title="Texinfo Homepage">
<!--
This file documents the GNU C library.

This is Edition 0.12, last updated 2007-10-27,
of `The GNU C Library Reference Manual', for version
2.8 (Sourcery G++ Lite 2011.03-41).

Copyright (C) 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2001, 2002,
2003, 2007, 2008, 2010 Free Software Foundation, Inc.

Permission is granted to copy, distribute and/or modify this document
under the terms of the GNU Free Documentation License, Version 1.3 or
any later version published by the Free Software Foundation; with the
Invariant Sections being ``Free Software Needs Free Documentation''
and ``GNU Lesser General Public License'', the Front-Cover texts being
``A GNU Manual'', and with the Back-Cover Texts as in (a) below.  A
copy of the license is included in the section entitled "GNU Free
Documentation License".

(a) The FSF's Back-Cover Text is: ``You have the freedom to
copy and modify this GNU manual.  Buying copies from the FSF
supports it in developing GNU and promoting software freedom.''-->
<meta http-equiv="Content-Style-Type" content="text/css">
<style type="text/css"><!--
  pre.display { font-family:inherit }
  pre.format  { font-family:inherit }
  pre.smalldisplay { font-family:inherit; font-size:smaller }
  pre.smallformat  { font-family:inherit; font-size:smaller }
  pre.smallexample { font-size:smaller }
  pre.smalllisp    { font-size:smaller }
  span.sc    { font-variant:small-caps }
  span.roman { font-family:serif; font-weight:normal; } 
  span.sansserif { font-family:sans-serif; font-weight:normal; } 
--></style>
<link rel="stylesheet" type="text/css" href="../cs.css">
</head>
<body>
<div class="node">
<a name="Hyperbolic-Functions"></a>
<p>
Next:&nbsp;<a rel="next" accesskey="n" href="Special-Functions.html#Special-Functions">Special Functions</a>,
Previous:&nbsp;<a rel="previous" accesskey="p" href="Exponents-and-Logarithms.html#Exponents-and-Logarithms">Exponents and Logarithms</a>,
Up:&nbsp;<a rel="up" accesskey="u" href="Mathematics.html#Mathematics">Mathematics</a>
<hr>
</div>

<h3 class="section">19.5 Hyperbolic Functions</h3>

<p><a name="index-hyperbolic-functions-2200"></a>
The functions in this section are related to the exponential functions;
see <a href="Exponents-and-Logarithms.html#Exponents-and-Logarithms">Exponents and Logarithms</a>.

<!-- math.h -->
<!-- ISO -->
<div class="defun">
&mdash; Function: double <b>sinh</b> (<var>double x</var>)<var><a name="index-sinh-2201"></a></var><br>
<blockquote><!-- math.h -->
     <!-- ISO -->
   &mdash; Function: float <b>sinhf</b> (<var>float x</var>)<var><a name="index-sinhf-2202"></a></var><br>
<blockquote><!-- math.h -->
     <!-- ISO -->
   &mdash; Function: long double <b>sinhl</b> (<var>long double x</var>)<var><a name="index-sinhl-2203"></a></var><br>
<blockquote><p>These functions return the hyperbolic sine of <var>x</var>, defined
mathematically as <code>(exp&nbsp;(</code><var>x</var><code>)&nbsp;-&nbsp;exp&nbsp;(-</code><var>x</var><code>))&nbsp;/&nbsp;2</code><!-- /@w -->.  They
may signal overflow if <var>x</var> is too large. 
</p></blockquote></div>

<!-- math.h -->
<!-- ISO -->
<div class="defun">
&mdash; Function: double <b>cosh</b> (<var>double x</var>)<var><a name="index-cosh-2204"></a></var><br>
<blockquote><!-- math.h -->
     <!-- ISO -->
   &mdash; Function: float <b>coshf</b> (<var>float x</var>)<var><a name="index-coshf-2205"></a></var><br>
<blockquote><!-- math.h -->
     <!-- ISO -->
   &mdash; Function: long double <b>coshl</b> (<var>long double x</var>)<var><a name="index-coshl-2206"></a></var><br>
<blockquote><p>These function return the hyperbolic cosine of <var>x</var>,
defined mathematically as <code>(exp&nbsp;(</code><var>x</var><code>)&nbsp;+&nbsp;exp&nbsp;(-</code><var>x</var><code>))&nbsp;/&nbsp;2</code><!-- /@w -->. 
They may signal overflow if <var>x</var> is too large. 
</p></blockquote></div>

<!-- math.h -->
<!-- ISO -->
<div class="defun">
&mdash; Function: double <b>tanh</b> (<var>double x</var>)<var><a name="index-tanh-2207"></a></var><br>
<blockquote><!-- math.h -->
     <!-- ISO -->
   &mdash; Function: float <b>tanhf</b> (<var>float x</var>)<var><a name="index-tanhf-2208"></a></var><br>
<blockquote><!-- math.h -->
     <!-- ISO -->
   &mdash; Function: long double <b>tanhl</b> (<var>long double x</var>)<var><a name="index-tanhl-2209"></a></var><br>
<blockquote><p>These functions return the hyperbolic tangent of <var>x</var>,
defined mathematically as <code>sinh&nbsp;(</code><var>x</var><code>)&nbsp;/&nbsp;cosh&nbsp;(</code><var>x</var><code>)</code><!-- /@w -->. 
They may signal overflow if <var>x</var> is too large. 
</p></blockquote></div>

   <p><a name="index-hyperbolic-functions-2210"></a>
There are counterparts for the hyperbolic functions which take
complex arguments.

<!-- complex.h -->
<!-- ISO -->
<div class="defun">
&mdash; Function: complex double <b>csinh</b> (<var>complex double z</var>)<var><a name="index-csinh-2211"></a></var><br>
<blockquote><!-- complex.h -->
     <!-- ISO -->
   &mdash; Function: complex float <b>csinhf</b> (<var>complex float z</var>)<var><a name="index-csinhf-2212"></a></var><br>
<blockquote><!-- complex.h -->
     <!-- ISO -->
   &mdash; Function: complex long double <b>csinhl</b> (<var>complex long double z</var>)<var><a name="index-csinhl-2213"></a></var><br>
<blockquote><p>These functions return the complex hyperbolic sine of <var>z</var>, defined
mathematically as <code>(exp&nbsp;(</code><var>z</var><code>)&nbsp;-&nbsp;exp&nbsp;(-</code><var>z</var><code>))&nbsp;/&nbsp;2</code><!-- /@w -->. 
</p></blockquote></div>

<!-- complex.h -->
<!-- ISO -->
<div class="defun">
&mdash; Function: complex double <b>ccosh</b> (<var>complex double z</var>)<var><a name="index-ccosh-2214"></a></var><br>
<blockquote><!-- complex.h -->
     <!-- ISO -->
   &mdash; Function: complex float <b>ccoshf</b> (<var>complex float z</var>)<var><a name="index-ccoshf-2215"></a></var><br>
<blockquote><!-- complex.h -->
     <!-- ISO -->
   &mdash; Function: complex long double <b>ccoshl</b> (<var>complex long double z</var>)<var><a name="index-ccoshl-2216"></a></var><br>
<blockquote><p>These functions return the complex hyperbolic cosine of <var>z</var>, defined
mathematically as <code>(exp&nbsp;(</code><var>z</var><code>)&nbsp;+&nbsp;exp&nbsp;(-</code><var>z</var><code>))&nbsp;/&nbsp;2</code><!-- /@w -->. 
</p></blockquote></div>

<!-- complex.h -->
<!-- ISO -->
<div class="defun">
&mdash; Function: complex double <b>ctanh</b> (<var>complex double z</var>)<var><a name="index-ctanh-2217"></a></var><br>
<blockquote><!-- complex.h -->
     <!-- ISO -->
   &mdash; Function: complex float <b>ctanhf</b> (<var>complex float z</var>)<var><a name="index-ctanhf-2218"></a></var><br>
<blockquote><!-- complex.h -->
     <!-- ISO -->
   &mdash; Function: complex long double <b>ctanhl</b> (<var>complex long double z</var>)<var><a name="index-ctanhl-2219"></a></var><br>
<blockquote><p>These functions return the complex hyperbolic tangent of <var>z</var>,
defined mathematically as <code>csinh&nbsp;(</code><var>z</var><code>)&nbsp;/&nbsp;ccosh&nbsp;(</code><var>z</var><code>)</code><!-- /@w -->. 
</p></blockquote></div>

   <p><a name="index-inverse-hyperbolic-functions-2220"></a>
<!-- math.h -->
<!-- ISO -->

<div class="defun">
&mdash; Function: double <b>asinh</b> (<var>double x</var>)<var><a name="index-asinh-2221"></a></var><br>
<blockquote><!-- math.h -->
     <!-- ISO -->
   &mdash; Function: float <b>asinhf</b> (<var>float x</var>)<var><a name="index-asinhf-2222"></a></var><br>
<blockquote><!-- math.h -->
     <!-- ISO -->
   &mdash; Function: long double <b>asinhl</b> (<var>long double x</var>)<var><a name="index-asinhl-2223"></a></var><br>
<blockquote><p>These functions return the inverse hyperbolic sine of <var>x</var>&mdash;the
value whose hyperbolic sine is <var>x</var>. 
</p></blockquote></div>

<!-- math.h -->
<!-- ISO -->
<div class="defun">
&mdash; Function: double <b>acosh</b> (<var>double x</var>)<var><a name="index-acosh-2224"></a></var><br>
<blockquote><!-- math.h -->
     <!-- ISO -->
   &mdash; Function: float <b>acoshf</b> (<var>float x</var>)<var><a name="index-acoshf-2225"></a></var><br>
<blockquote><!-- math.h -->
     <!-- ISO -->
   &mdash; Function: long double <b>acoshl</b> (<var>long double x</var>)<var><a name="index-acoshl-2226"></a></var><br>
<blockquote><p>These functions return the inverse hyperbolic cosine of <var>x</var>&mdash;the
value whose hyperbolic cosine is <var>x</var>.  If <var>x</var> is less than
<code>1</code>, <code>acosh</code> signals a domain error. 
</p></blockquote></div>

<!-- math.h -->
<!-- ISO -->
<div class="defun">
&mdash; Function: double <b>atanh</b> (<var>double x</var>)<var><a name="index-atanh-2227"></a></var><br>
<blockquote><!-- math.h -->
     <!-- ISO -->
   &mdash; Function: float <b>atanhf</b> (<var>float x</var>)<var><a name="index-atanhf-2228"></a></var><br>
<blockquote><!-- math.h -->
     <!-- ISO -->
   &mdash; Function: long double <b>atanhl</b> (<var>long double x</var>)<var><a name="index-atanhl-2229"></a></var><br>
<blockquote><p>These functions return the inverse hyperbolic tangent of <var>x</var>&mdash;the
value whose hyperbolic tangent is <var>x</var>.  If the absolute value of
<var>x</var> is greater than <code>1</code>, <code>atanh</code> signals a domain error;
if it is equal to 1, <code>atanh</code> returns infinity. 
</p></blockquote></div>

   <p><a name="index-inverse-complex-hyperbolic-functions-2230"></a>
<!-- complex.h -->
<!-- ISO -->

<div class="defun">
&mdash; Function: complex double <b>casinh</b> (<var>complex double z</var>)<var><a name="index-casinh-2231"></a></var><br>
<blockquote><!-- complex.h -->
     <!-- ISO -->
   &mdash; Function: complex float <b>casinhf</b> (<var>complex float z</var>)<var><a name="index-casinhf-2232"></a></var><br>
<blockquote><!-- complex.h -->
     <!-- ISO -->
   &mdash; Function: complex long double <b>casinhl</b> (<var>complex long double z</var>)<var><a name="index-casinhl-2233"></a></var><br>
<blockquote><p>These functions return the inverse complex hyperbolic sine of
<var>z</var>&mdash;the value whose complex hyperbolic sine is <var>z</var>. 
</p></blockquote></div>

<!-- complex.h -->
<!-- ISO -->
<div class="defun">
&mdash; Function: complex double <b>cacosh</b> (<var>complex double z</var>)<var><a name="index-cacosh-2234"></a></var><br>
<blockquote><!-- complex.h -->
     <!-- ISO -->
   &mdash; Function: complex float <b>cacoshf</b> (<var>complex float z</var>)<var><a name="index-cacoshf-2235"></a></var><br>
<blockquote><!-- complex.h -->
     <!-- ISO -->
   &mdash; Function: complex long double <b>cacoshl</b> (<var>complex long double z</var>)<var><a name="index-cacoshl-2236"></a></var><br>
<blockquote><p>These functions return the inverse complex hyperbolic cosine of
<var>z</var>&mdash;the value whose complex hyperbolic cosine is <var>z</var>.  Unlike
the real-valued functions, there are no restrictions on the value of <var>z</var>. 
</p></blockquote></div>

<!-- complex.h -->
<!-- ISO -->
<div class="defun">
&mdash; Function: complex double <b>catanh</b> (<var>complex double z</var>)<var><a name="index-catanh-2237"></a></var><br>
<blockquote><!-- complex.h -->
     <!-- ISO -->
   &mdash; Function: complex float <b>catanhf</b> (<var>complex float z</var>)<var><a name="index-catanhf-2238"></a></var><br>
<blockquote><!-- complex.h -->
     <!-- ISO -->
   &mdash; Function: complex long double <b>catanhl</b> (<var>complex long double z</var>)<var><a name="index-catanhl-2239"></a></var><br>
<blockquote><p>These functions return the inverse complex hyperbolic tangent of
<var>z</var>&mdash;the value whose complex hyperbolic tangent is <var>z</var>.  Unlike
the real-valued functions, there are no restrictions on the value of
<var>z</var>. 
</p></blockquote></div>

   </body></html>

