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:
Parameter Passed(x) |
Return Value |
-1<x<1 |
Finite Value |
x>1 or x<-1 |
NaN(Not a Number) |
x=-1 |
-inf |
x=1 |
+inf |
According to C++ 11 standard, there are various prototypes available for atanh() function,
Datatype |
Prototype |
For double |
double atanh(double x); |
Explicit conversion is required from (int, float or long double) to double,
Datatype |
Prototype |
For int |
int a = 0;
double b = atanh(double(a));
|
For float |
float a = 0;
double b = atanh(double(a));
|
For long double |
long double a = 0;
double b = atanh(double(a));
|
Time Complexity: O(1)
Auxiliary Space: O(1)
Below programs illustrate the above method:
Example 1:
CPP
< div id= "highlighter_811356" class = "syntaxhighlighter nogutter " ><table border= "0" cellpadding= "0" cellspacing= "0" ><tbody><tr><td class = "code" >< div class = "container" >< div class = "line number1 index0 alt2" ><code class = "comments" >
|
Output
atanh(0) = 0 radians
atanh(0) = 0 degrees
atanh(-1) = -inf radians
atanh(-1) = -inf degrees
atanh(1) = inf radians
atanh(1) = inf degrees
atanh(-2) = -nan radians
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:
The above program generates an error if no matching function for call as a string is passed as an argument.
C++
#include <iostream>
#include <cmath>
using namespace std;
int main() {
double x = 2.0;
double result = atanh(x);
cout << "result = " << result << endl;
return 0;
}
|
The above code generates nan as output which means not a number this is because the input is outside the range of [-1,1].
Last Updated :
06 Mar, 2023
Like Article
Save Article
Share your thoughts in the comments
Please Login to comment...