- C++ Library - Home
- C++ Library - <fstream>
- C++ Library - <iomanip>
- C++ Library - <ios>
- C++ Library - <iosfwd>
- C++ Library - <iostream>
- C++ Library - <istream>
- C++ Library - <ostream>
- C++ Library - <sstream>
- C++ Library - <streambuf>
- C++ Library - <atomic>
- C++ Library - <complex>
- C++ Library - <exception>
- C++ Library - <functional>
- C++ Library - <limits>
- C++ Library - <locale>
- C++ Library - <memory>
- C++ Library - <new>
- C++ Library - <numeric>
- C++ Library - <regex>
- C++ Library - <stdexcept>
- C++ Library - <string>
- C++ Library - <thread>
- C++ Library - <tuple>
- C++ Library - <typeinfo>
- C++ Library - <utility>
- C++ Library - <valarray>
- The C++ STL Library
- C++ Library - <array>
- C++ Library - <bitset>
- C++ Library - <deque>
- C++ Library - <forward_list>
- C++ Library - <list>
- C++ Library - <map>
- C++ Library - <multimap>
- C++ Library - <queue>
- C++ Library - <priority_queue>
- C++ Library - <set>
- C++ Library - <multiset >
- C++ Library - <stack>
- C++ Library - <unordered_map>
- C++ Library - <unordered_set>
- C++ Library - <unordered_multiset>
- C++ Library - <vector>
- C++ Library - <algorithm>
- C++ Library - <iterator>
- The C++ Advanced Library
- C++ Library - <any>
- C++ Library - <barrier>
- C++ Library - <bit>
- C++ Library - <chrono>
- C++ Library - <cinttypes>
- C++ Library - <clocale>
- C++ Library - <condition_variable>
- C++ Library - <coroutine>
- C++ Library - <cstdlib>
- C++ Library - <cstring>
- C++ Library - <cuchar>
- C++ Library - <charconv>
- C++ Library - <cfenv>
- C++ Library - <cmath>
- C++ Library - <ccomplex>
- C++ Library - <expected>
- C++ Library - <format>
- C++ Library - <future>
- C++ Library - <flat_set>
- C++ Library - <flat_map>
- C++ Library - <filesystem>
- C++ Library - <generator>
- C++ Library - <initializer_list>
- C++ Library - <latch>
- C++ Library - <memory_resource>
- C++ Library - <mutex>
- C++ Library - <mdspan>
- C++ Library - <optional>
- C++ Library - <print>
- C++ Library - <ratio>
- C++ Library - <scoped_allocator>
- C++ Library - <semaphore>
- C++ Library - <source_location>
- C++ Library - <span>
- C++ Library - <spanstream>
- C++ Library - <stacktrace>
- C++ Library - <stop_token>
- C++ Library - <syncstream>
- C++ Library - <system_error>
- C++ Library - <string_view>
- C++ Library - <stdatomic>
- C++ Library - <variant>
- C++ STL Library Cheat Sheet
- C++ STL - Cheat Sheet
- C++ Programming Resources
- C++ Programming Tutorial
- C++ Useful Resources
- C++ Discussion
C++ cmath atanh() Function
The C++ cmath atanh() function computes the hyperbolic arctangent, which is the inverse of the hyperbolic tangent function. It is mainly used for solving problems involving hyperbolic equations and transforming data. This function accepts input values between -1 and 1 and returns a floating-point number.
Syntax
Following is the syntax for C++ cmath atanh() function.
double atanh(double x); or float atanh(float x); or long double atanh(long double x);
Parameters
x - The value whose area hyperbolic tangent is computed, in the interval [-1,+1]. If the argument falls outside this range, a domain error occurs.
Return Value
The function returns the hyperbolic arctangent of the given value, as a floating-point value.
Time Complexity
The time complexity of this function is constant, i.e.,O(1).
Example 1
In the following example, we are going to calculate the hyperbolic arctangent of a given number using std::atanh().
#include <iostream>
#include <cmath>
int main() {
double x = 0.5;
std::cout << "atanh(" << x << ") = " << std::atanh(x) << std::endl;
return 0;
}
Output
Output of the above code is as follows
atanh(0.5) = 0.549306
Example 2
In the below, we are going to calculate the inverse hyperbolic tangent of a negative input using atanh() function.
#include <iostream>
#include <cmath>
int main() {
double value = -0.5;
double result = atanh(value);
std::cout << "The inverse hyperbolic tangent of " << value << " is " << result << " radians." << std::endl;
return 0;
}
Output
Following is the output of the above code
The inverse hyperbolic tangent of -0.5 is -0.549306 radians.
Example 3
In the example, we will use the function std::atanh() to calculate the hyperbolic arctangent for several values that are stored in an array.
#include <iostream>
#include <cmath>
int main() {
double values[] = {0.1, -0.5, 0.3, -0.7};
for (double x : values) {
std::cout << "atanh(" << x << ") = " << std::atanh(x) << std::endl;
}
return 0;
}
Output
If we run the above code it will generate the following output
atanh(0.1) = 0.100335 atanh(-0.5) = -0.549306 atanh(0.3) = 0.30952 atanh(-0.7) = -0.867301