Namespaces
Variants

cacoshf, cacosh, cacoshl

From cppreference.net
헤더 파일에 정의됨 <complex.h>
float complex cacoshf ( float complex z ) ;
(1) (C99부터)
double complex cacosh ( double complex z ) ;
(2) (C99부터)
long double complex cacoshl ( long double complex z ) ;
(3) (C99부터)
헤더 파일에 정의됨 <tgmath.h>
#define acosh( z )
(4) (C99부터)
1-3) 복소수 값 z 의 복소수 아크 하이퍼볼릭 코사인을 계산하며, 실수 축에서 1보다 작은 값에서 branch cut을 가집니다.
4) 타입-제네릭 매크로: z 의 타입이 long double complex 인 경우, cacoshl 이 호출됩니다. z 의 타입이 double complex 인 경우, cacosh 이 호출됩니다. z 의 타입이 float complex 인 경우, cacoshf 이 호출됩니다. z 가 실수 또는 정수인 경우, 매크로는 해당하는 실수 함수( acoshf , acosh , acoshl )를 호출합니다. z 가 허수인 경우, 매크로는 해당하는 복소수 버전을 호출하며 반환 타입은 복소수입니다.

목차

매개변수

z - 복소 인수

반환값

복소수 아크 쌍곡선 코사인은 z 에 대해 실수 축을 따라 [0; ∞) 구간에서, 그리고 허수 축을 따라 [−iπ; +iπ] 구간에서 정의됩니다.

오류 처리 및 특수 값

오류는 math_errhandling 과 일관되게 보고됩니다

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

  • cacosh ( conj ( z ) ) == conj ( cacosh ( z ) )
  • 만약 z ±0+0i 이면, 결과는 +0+iπ/2 입니다.
  • 만약 z +x+∞i (임의의 유한한 x에 대해)이면, 결과는 +∞+iπ/2 입니다.
  • 만약 z +x+NaNi (0이 아닌 유한한 x에 대해)이면, 결과는 NaN+NaNi 이며 FE_INVALID 가 발생할 수 있습니다.
  • 만약 z 0+NaNi 이면, 결과는 NaN±iπ/2 이며, 허수부의 부호는 명시되지 않습니다.
  • 만약 z -∞+yi (임의의 양의 유한한 y에 대해)이면, 결과는 +∞+iπ 입니다.
  • 만약 z +∞+yi (임의의 양의 유한한 y에 대해)이면, 결과는 +∞+0i 입니다.
  • 만약 z -∞+∞i 이면, 결과는 +∞+3iπ/4 입니다.
  • 만약 z +∞+∞i 이면, 결과는 +∞+iπ/4 입니다.
  • 만약 z ±∞+NaNi 이면, 결과는 +∞+NaNi 입니다.
  • 만약 z NaN+yi (임의의 유한한 y에 대해)이면, 결과는 NaN+NaNi 이며 FE_INVALID 가 발생할 수 있습니다.
  • 만약 z NaN+∞i 이면, 결과는 +∞+NaNi 입니다.
  • 만약 z NaN+NaNi 이면, 결과는 NaN+NaNi 입니다.

참고 사항

C 표준에서는 이 함수를 "복소 아크 쌍곡선 코사인"이라고 명명하지만, 쌍곡선 함수의 역함수는 면적 함수입니다. 이들의 인수는 호가 아닌 쌍곡선 섹터의 면적입니다. 올바른 명칭은 "복소 역쌍곡선 코사인"이며, 덜 일반적으로 "복소 면적 쌍곡선 코사인"이라고도 합니다.

역쌍곡코사인은 다가 함수이며 복소평면에서 가지 자름이 필요합니다. 가지 자름은 관례적으로 실수축의 선분 (-∞,+1) 에 위치합니다.

역쌍곡코사인의 주값에 대한 수학적 정의는 acosh z = ln(z + z+1 z-1 )

For any z, acosh(z) =
z-1
1-z
acos(z)
, or simply i acos(z) in the upper half of the complex plane.

예제

#include <stdio.h>
#include <complex.h>
int main(void)
{
    double complex z = cacosh(0.5);
    printf("cacosh(+0.5+0i) = %f%+fi\n", creal(z), cimag(z));
    double complex z2 = conj(0.5); // or cacosh(CMPLX(0.5, -0.0)) in C11
    printf("cacosh(+0.5-0i) (the other side of the cut) = %f%+fi\n", creal(z2), cimag(z2));
    // in upper half-plane, acosh(z) = i*acos(z) 
    double complex z3 = casinh(1+I);
    printf("casinh(1+1i) = %f%+fi\n", creal(z3), cimag(z3));
    double complex z4 = I*casin(1+I);
    printf("I*asin(1+1i) = %f%+fi\n", creal(z4), cimag(z4));
}

출력:

cacosh(+0.5+0i) = 0.000000-1.047198i
cacosh(+0.5-0i) (the other side of the cut) = 0.500000-0.000000i
casinh(1+1i) = 1.061275+0.666239i
I*asin(1+1i) = -1.061275+0.666239i

참고문헌

  • C11 표준 (ISO/IEC 9899:2011):
  • 7.3.6.1 The cacosh functions (p: 192)
  • 7.25 Type-generic math <tgmath.h> (p: 373-375)
  • G.6.2.1 The cacosh functions (p: 539-540)
  • G.7 Type-generic math <tgmath.h> (p: 545)
  • C99 표준 (ISO/IEC 9899:1999):
  • 7.3.6.1 The cacosh functions (p: 174)
  • 7.22 Type-generic math <tgmath.h> (p: 335-337)
  • G.6.2.1 The cacosh functions (p: 474-475)
  • G.7 Type-generic math <tgmath.h> (p: 480)

참고 항목

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