﻿ s10ac Method
s10ac returns the value of the hyperbolic cosine, $\mathrm{cosh} x$.

# Syntax

C#
```public static double s10ac(
double x,
out int ifail
)```
Visual Basic
```Public Shared Function s10ac ( _
x As Double, _
<OutAttribute> ByRef ifail As Integer _
) As Double```
Visual C++
```public:
static double s10ac(
double x,
[OutAttribute] int% ifail
)```
F#
```static member s10ac :
x : float *
ifail : int byref -> float
```

#### Parameters

x
Type: System..::..Double
On entry: the argument $x$ of the function.
ifail
Type: System..::..Int32%
On exit: ${\mathbf{ifail}}={0}$ unless the method detects an error or a warning has been flagged (see [Error Indicators and Warnings]).

#### Return Value

s10ac returns the value of the hyperbolic cosine, $\mathrm{cosh} x$.

# Description

s10ac calculates an approximate value for the hyperbolic cosine, $\mathrm{cosh} x$.
For $\left|x\right|\le {E}_{1}\text{, }\mathrm{cosh} x=\frac{1}{2}\left({e}^{x}+{e}^{-x}\right)$.
For $\left|x\right|>{E}_{1}$, the method fails owing to danger of setting overflow in calculating ${e}^{x}$. The result returned for such calls is $\mathrm{cosh} {E}_{1}$, i.e., it returns the result for the nearest valid argument. The value of machine-dependent constant ${E}_{1}$ may be given in the Users' Note for your implementation.

# References

Abramowitz M and Stegun I A (1972) Handbook of Mathematical Functions (3rd Edition) Dover Publications

# Error Indicators and Warnings

Errors or warnings detected by the method:
${\mathbf{ifail}}=1$
The method has been called with an argument too large in absolute magnitude. There is a danger of overflow. The result returned is the value of $\mathrm{cosh} x$ at the nearest valid argument.
${\mathbf{ifail}}=-9000$
An error occured, see message report.

# Accuracy

If $\delta$ and $\epsilon$ are the relative errors in the argument and result, respectively, then in principle
 $ε≃xtanh x×δ.$
That is, the relative error in the argument, $x$, is amplified by a factor, at least $x\mathrm{tanh} x$. The equality should hold if $\delta$ is greater than the machine precision ($\delta$ is due to data errors etc.) but if $\delta$ is simply a result of round-off in the machine representation of $x$ then it is possible that an extra figure may be lost in internal calculation round-off.
The behaviour of the error amplification factor is shown by the following graph:
Figure 1
It should be noted that near $x=0$ where this amplification factor tends to zero the accuracy will be limited eventually by the machine precision. Also for $\left|x\right|\ge 2$
 $ε∼xδ=Δ$
where $\Delta$ is the absolute error in the argument $x$.

None.

None.

# Example

This example reads values of the argument $x$ from a file, evaluates the function at each value of $x$ and prints the results.

Example program (C#): s10ace.cs

Example program data: s10ace.d

Example program results: s10ace.r