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, int a = 0; double b = atanh(double(a)); float a = 0; double b = atanh(double(a)); long double a = 0; double b = atanh(double(a));Datatype Prototype For int For float For long double
Below p
ams illustrate the above method:Example 1:
CPP
// C++ program to illustrate // the atanh() function // all return values #include <bits/stdc++.h> using namespace std; // Driver Code int main() { // Return value when -1<x<1 int x = 0; // Function call to calculate atanh(x) value double result = atanh(x); cout << "atanh(0) = " << result << " radians\n" ; cout << "atanh(0) = " << result * 180 / 3.141592 << " degrees\n" ; // Return value when x=-1 x = -1; result = atanh(x); cout << "\natanh(-1) = " << result << " radians\n" ; cout << "atanh(-1) = " << result * 180 / 3.141592 << " degrees\n" ; // Return value when x=1 x = 1; result = atanh(x); cout << "\natanh(1) = " << result << " radians\n" ; cout << "atanh(1) = " << result * 180 / 3.141592 << " degrees\n" ; // Return value when x<-1 or x>1 x = -2; result = atanh(x); cout << "\natanh(-2) = " << result << " radians\n" ; cout << "atanh(-2) = " << result * 180 / 3.141592 << " degrees\n" ; return 0; } |
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:
CPP
// C++ program to demonstrate // the atanh() function // string passed #include <bits/stdc++.h> 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.
Please write comments if you find anything incorrect, or you want to share more information about the topic discussed above.