Open In App

# atanh() function in C++ STL

The atanh() is an inbuilt function in C++ STL that returns the inverse hyperbolic tangent of an angle given in radians. The function belongs to <cmath> header file.
Syntax:

`atanh(data_type x)`

Parameter: This function accepts one mandatory parameter x which specifies the inverse hyperbolic angle in radian which lies in the range [-1, 1]. The parameter can be of double, float, or long double datatype.
Return Value: This function returns the inverse hyperbolic sine of the argument in radians depending on the parameter passed in the argument. The different return values are given in the table below:

According to C++ 11 standard, there are various prototypes available for atanh() function,

Explicit conversion is required from (int, float or long double) to double,

Time Complexity: O(1)
Auxiliary Space: O(1)

Below programs illustrate the above method:
Example 1:

## CPP

 `// C++ program to illustrate``// the atanh() function``// all return values``#include ``using` `namespace` `std;` `// Driver Code``int` `main()``{``    ``// Return value when -11``    ``x = -2;``    ``result = atanh(x);` `    ``cout << ``"\natanh(-2) = "` `<< result << ``" radians\n"``;``    ``cout << ``"atanh(-2) = "` `<< result * 180 / 3.141592``         ``<< ``" degrees\n"``;` `    ``return` `0;``}`

Output

```atanh(0) = 0 radians
atanh(0) = 0 degrees

atanh(-1) = -inf degrees

atanh(1) = inf degrees

atanh(-2) = -nan degrees```

Errors and Exceptions: The function returns a no matching function error message when a string or any other data_type except the one which the function excepts is passed.
Example:

## CPP

 `// C++ program to demonstrate``// the atanh() function``// string passed``#include ``using` `namespace` `std;` `int` `main()``{``    ``string x = ``"gfg"``;` `    ``// Function call to calculate atanh(x) value``    ``double` `result = atanh(x);` `    ``cout << ``"atanh(50.0) = "` `<< result << ``" radians"``         ``<< endl;``    ``cout << ``"atanh(50.0) = "` `<< result * 180 / 3.141592``         ``<< ``" degrees"` `<< endl;``    ``return` `0;``}`

The above program generates an error if no matching function for call as a string is passed as an argument.

## C++

 `// C++ program to demonstrate``// the atanh() function``// when input 2 is passed.``#include ``#include ``using` `namespace` `std;``int` `main() {``    ``double` `x = 2.0;``   ``// Function call to calculate atanh(x) value``    ``double` `result = atanh(x);``    ``cout << ``"result = "` `<< result << endl;``    ``return` `0;``}`

Output

`result = -nan`

The above code generates nan as output which means not a number this is because the input is outside the range of [-1,1].