Namespaces
Variants

atanh, atanhf, atanhl

From cppreference.net
< c ‎ | numeric ‎ | math
Common mathematical functions
Functions
Basic operations
(C99)
(C99)
(C99)
(C99) (C99) (C99) (C23)
Maximum/minimum operations
Exponential functions
Power functions
Trigonometric and hyperbolic functions
Nearest integer floating-point
(C99) (C99) (C99)
(C23) (C23) (C23) (C23)
Floating-point manipulation
Narrowing operations
(C23)
(C23)
(C23)
(C23)
(C23)
(C23)
Quantum and quantum exponent
Decimal re-encoding functions
Total order and payload functions
Classification
Error and gamma functions
(C99)
(C99)
(C99)
(C99)
Types
Macro constants
Special floating-point values
Arguments and return values
Error handling
Fast operation indicators
헤더 파일에 정의됨 <math.h>
float atanhf ( float arg ) ;
(1) (C99부터)
double atanh ( double arg ) ;
(2) (C99부터)
long double atanhl ( long double arg ) ;
(3) (C99부터)
헤더 파일에 정의됨 <tgmath.h>
#define atanh( arg )
(4) (C99부터)
1-3) arg 의 역쌍곡탄젠트를 계산합니다.
4) 타입-제네릭 매크로: 인수가 long double 타입을 가지면 atanhl 이 호출됩니다. 그렇지 않고 인수가 정수 타입이거나 double 타입을 가지면 atanh 가 호출됩니다. 그 외의 경우에는 atanhf 가 호출됩니다. 인수가 복소수인 경우, 매크로는 해당 복소수 함수( catanhf , catanh , catanhl )를 호출합니다.

목차

매개변수

arg - 쌍곡선 섹터의 면적을 나타내는 부동 소수점 값

반환값

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

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

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

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

오류 처리

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

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

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

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

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

참고 사항

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

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

예제

#include <errno.h>
#include <fenv.h>
#include <float.h>
#include <math.h>
#include <stdio.h>
// #pragma STDC FENV_ACCESS ON
int main(void)
{
    printf("atanh(0) = %f\natanh(-0) = %f\n", atanh(0), atanh(-0.0));
    printf("atanh(0.9) = %f\n", atanh(0.9));
    // error handling
    errno = 0; feclearexcept(FE_ALL_EXCEPT);
    printf("atanh(-1) = %f\n", atanh(-1));
    if (errno == ERANGE)
        perror("    errno == ERANGE");
    if (fetestexcept(FE_DIVBYZERO))
        puts("    FE_DIVBYZERO raised");
}

가능한 출력:

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

참고문헌

  • C23 표준 (ISO/IEC 9899:2024):
  • 7.12.5.3 atanh 함수들 (p: 241)
  • 7.25 타입-제네릭 수학 <tgmath.h> (p: 373-375)
  • F.10.2.3 atanh 함수들 (p: 520)
  • C17 표준 (ISO/IEC 9899:2018):
  • 7.12.5.3 atanh 함수들 (p: TBD)
  • 7.25 타입-제네릭 수학 <tgmath.h> (p: TBD)
  • F.10.2.3 atanh 함수들 (p: TBD)
  • C11 표준 (ISO/IEC 9899:2011):
  • 7.12.5.3 atanh 함수 (p: 241)
  • 7.25 타입-제네릭 수학 <tgmath.h> (p: 373-375)
  • F.10.2.3 atanh 함수 (p: 520)
  • C99 표준 (ISO/IEC 9899:1999):
  • 7.12.5.3 atanh 함수 (p: 221-222)
  • 7.22 타입-제네릭 수학 <tgmath.h> (p: 335-337)
  • F.9.2.3 atanh 함수 (p: 457)

참고 항목

(C99) (C99) (C99)
역쌍곡사인을 계산함 ( arsinh(x) )
(함수)
(C99) (C99) (C99)
역쌍곡코사인을 계산함 ( arcosh(x) )
(함수)
(C99) (C99)
쌍곡탄젠트를 계산함 ( tanh(x) )
(함수)
(C99) (C99) (C99)
복소수 아크 쌍곡탄젠트를 계산함
(함수)
C++ 문서 for atanh

외부 링크

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