Namespaces
Variants

std:: atanh, std:: atanhf, std:: atanhl

From cppreference.net
Common mathematical functions
Nearest integer floating point operations
(C++11)
(C++11)
(C++11) (C++11) (C++11)
Floating point manipulation functions
(C++11) (C++11)
(C++11)
(C++11)
Classification and comparison
(C++11)
(C++11)
(C++11)
(C++11)
(C++11)
(C++11)
Types
(C++11)
(C++11)
(C++11)
Macro constants
헤더 파일에 정의됨 <cmath>
(1)
float atanh ( float num ) ;

double atanh ( double num ) ;

long double atanh ( long double num ) ;
(C++23 이전)
/*floating-point-type*/
atanh ( /*floating-point-type*/ num ) ;
(C++23 이후)
(C++26부터 constexpr)
float atanhf ( float num ) ;
(2) (C++11 이후)
(C++26부터 constexpr)
long double atanhl ( long double num ) ;
(3) (C++11 이후)
(C++26부터 constexpr)
SIMD 오버로드 (C++26 이후)
헤더 파일에 정의됨 <simd>
template < /*math-floating-point*/ V >

constexpr /*deduced-simd-t*/ < V >

atanh ( const V & v_num ) ;
(S) (C++26 이후)
추가 오버로드 (C++11 이후)
헤더 파일에 정의됨 <cmath>
template < class Integer >
double atanh ( Integer num ) ;
(A) (C++26부터 constexpr)
1-3) num 의 역쌍곡탄젠트를 계산합니다. 라이브러리는 매개변수의 타입으로 모든 cv-unqualified 부동소수점 타입에 대한 std::atanh 의 오버로드를 제공합니다. (C++23부터)
S) SIMD 오버로드는 v_num 에 대해 요소별(element-wise) std::atanh 를 수행합니다.
(정의는 math-floating-point deduced-simd-t 를 참조하십시오.)
(C++26부터)
A) 모든 정수 타입에 대해 추가 오버로드가 제공되며, 이들은 double 로 처리됩니다.
(since C++11)

목차

매개변수

num - 부동 소수점 또는 정수 값

반환값

오류가 발생하지 않으면, num 의 역쌍곡탄젠트( tanh -1
(num)
, 또는 artanh(num) )가 반환됩니다.

도메인 오류가 발생하면 구현에서 정의한 값이 반환됩니다(NaN이 지원되는 경우).

극점 오류가 발생하면, ±HUGE_VAL , ±HUGE_VALF , 또는 ±HUGE_VALL 가 반환됩니다 (올바른 부호와 함께).

언더플로우로 인해 범위 오류가 발생하는 경우, 올바른 결과(반올림 후)가 반환됩니다.

오류 처리

오류는 math_errhandling 에 명시된 대로 보고됩니다.

인수가 구간 [ - 1 , + 1 ] 에 존재하지 않으면 범위 오류가 발생합니다.

인수가 ±1인 경우, 극점 오류가 발생합니다.

구현이 IEEE 부동 소수점 연산(IEC 60559)을 지원하는 경우,

  • 인자가 ±0인 경우, 수정 없이 그대로 반환됩니다.
  • 인자가 ±1인 경우, ±∞가 반환되고 FE_DIVBYZERO 가 발생합니다.
  • 만약 |num|>1 인 경우, NaN이 반환되고 FE_INVALID 가 발생합니다.
  • 인자가 NaN인 경우, NaN이 반환됩니다.

참고 사항

C++가 이 함수를 위해 참조하는 C 표준에서는 이 함수를 "arc hyperbolic tangent"라고 명명하지만, 쌍곡선 함수의 역함수는 면적 함수입니다. 이들의 인수는 호(arc)가 아닌 쌍곡선 섹터의 면적입니다. 올바른 명칭은 "inverse hyperbolic tangent"(POSIX에서 사용) 또는 "area hyperbolic tangent"입니다.

POSIX에서는 언더플로우가 발생한 경우, num 이 수정되지 않은 상태로 반환되도록 명시하며, 이를 지원하지 않는 경우 DBL_MIN , FLT_MIN , 그리고 LDBL_MIN 을 초과하지 않는 구현 정의 값이 반환됩니다.

추가 오버로드는 반드시 (A) 와 정확히 동일하게 제공될 필요가 없습니다. 정수 타입의 인수 num 에 대해, std :: atanh ( num ) std :: atanh ( static_cast < double > ( num ) ) 와 동일한 효과를 보장할 수 있을 만큼만 제공되면 됩니다.

예제

#include <cerrno>
#include <cfenv>
#include <cfloat>
#include <cmath>
#include <cstring>
#include <iostream>
// #pragma STDC FENV_ACCESS ON
int main()
{
    std::cout << "atanh(0) = " << std::atanh(0) << '\n'
              << "atanh(-0) = " << std::atanh(-0.0) << '\n'
              << "atanh(0.9) = " << std::atanh(0.9) << '\n';
    // error handling
    errno = 0;
    std::feclearexcept(FE_ALL_EXCEPT);
    std::cout << "atanh(-1) = " << std::atanh(-1) << '\n';
    if (errno == ERANGE)
        std::cout << "    errno == ERANGE: " << std::strerror(errno) << '\n';
    if (std::fetestexcept(FE_DIVBYZERO))
        std::cout << "    FE_DIVBYZERO raised\n";
}

가능한 출력:

atanh(0) = 0
atanh(-0) = -0
atanh(0.9) = 1.47222
atanh(-1) = -inf
    errno == ERANGE: Numerical result out of range
    FE_DIVBYZERO raised

참고 항목

(C++11) (C++11) (C++11)
역쌍곡사인을 계산합니다 ( arsinh(x) )
(함수)
(C++11) (C++11) (C++11)
역쌍곡코사인을 계산합니다 ( arcosh(x) )
(함수)
(C++11) (C++11)
쌍곡탄젠트를 계산합니다 ( tanh(x) )
(함수)
복소수의 면적 쌍곡탄젠트를 계산합니다 ( artanh(z) )
(함수 템플릿)
C 문서 for atanh

외부 링크

Weisstein, Eric W. "Inverse Hyperbolic Tangent." From MathWorld — A Wolfram Web Resource.