s10aa returns a value for the hyperbolic tangent, $\mathrm{tanh}\u200ax$.

# Syntax

C# |
---|

public static double s10aa( double x ) |

Visual Basic |
---|

Public Shared Function s10aa ( _ x As Double _ ) As Double |

Visual C++ |
---|

public: static double s10aa( double x ) |

F# |
---|

static member s10aa : x : float -> float |

#### Parameters

- x
- Type: System..::..Double
*On entry*: the argument $x$ of the function.

#### Return Value

s10aa returns a value for the hyperbolic tangent, $\mathrm{tanh}\u200ax$.

# Description

s10aa calculates an approximate value for the hyperbolic tangent of its argument, $\mathrm{tanh}\u200ax$.

For $\left|x\right|\le 1$ it is based on the Chebyshev expansion

where $-1\le x\le 1\text{, \hspace{1em}}-1\le t\le 1\text{, \hspace{1em} and \hspace{1em}}t=2{x}^{2}-1$.

$$\mathrm{tanh}\u200ax=x\times y\left(t\right)=x\underset{r=0}{{\sum}^{\prime}}\phantom{\rule{0.25em}{0ex}}{a}_{r}{T}_{r}\left(t\right)$$ |

For $1<\left|x\right|<{E}_{1}$ (see the Users' Note for your implementation for value of ${E}_{1}$)

For $\left|x\right|\ge {E}_{1}$, $\mathrm{tanh}\u200ax=\mathrm{sign}\u200ax$ to within the representation accuracy of the machine and so this approximation is used.

$$\mathrm{tanh}\u200ax=\frac{{e}^{2x}-1}{{e}^{2x}+1}\text{.}$$ |

# References

Abramowitz M and Stegun I A (1972)

*Handbook of Mathematical Functions*(3rd Edition) Dover Publications# Error Indicators and Warnings

None.

# Accuracy

If $\delta $ and $\epsilon $ are the relative errors in the argument and the result respectively, then in principle,

That is, a relative error in the argument, $x$, is amplified by a factor approximately $\frac{2x}{\mathrm{sinh}\u200a2x}$, in the result.

$$\left|\epsilon \right|\simeq \left|\frac{2x}{\mathrm{sinh}\u200a2x}\delta \right|\text{.}$$ |

The equality should hold if $\delta $ is greater than the machine precision ($\delta $ due to data errors etc.) but if $\delta $ is due simply to the round-off in the machine representation it is possible that an extra figure may be lost in internal calculation round-off.

It should be noted that this factor is always less than or equal to $1.0$ and away from $x=0$ the accuracy will eventually be limited entirely by the precision of machine representation.

# Parallelism and Performance

None.

# Further Comments

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#): s10aae.cs