`ccosh`, `ccoshf`, `ccoshl` — 복소수 쌍곡선 코사인
ccosh, ccoshf, ccoshl — 복소수 쌍곡선 코사인
ccos가 허수축 위에서 쌍곡선 코사인처럼 행동한다고 했는데, 반대로 복소 쌍곡선 코사인 ccosh는 실수축 위에서 실수 쌍곡선 코사인처럼, 허수축 위에서는 실수 코사인처럼 행동해요. 이 복소 쌍곡선 코사인을 계산하는 함수를 살펴볼게요.
본문
ccosh 계열 함수는 복소수 z의 복소 쌍곡선 코사인을 계산해요.
float complex ccoshf( float complex z ); // (1) (since C99)
double complex ccosh( double complex z ); // (2) (since C99)
long double complex ccoshl( long double complex z ); // (3) (since C99)
// Defined in header <tgmath.h>
#define cosh( z ) // (4) (since C99)
1-3) z의 복소 쌍곡선 코사인을 계산해요.
4) 타입 제네릭 매크로예요. z가 long double complex면 ccoshl, double complex면 ccosh, float complex면 ccoshf가 호출돼요. 실수·정수 타입이면 대응하는 실수 함수(coshf, cosh, coshl)를, 허수 타입이면 실수 cos와 같은 공식 cosh(iy) = cos(y)을 구현하는 실수 버전을 호출하고 반환 타입은 실수예요.
매개변수
| 매개변수 | 설명 |
|---|---|
z |
복소수 인자 |
반환값
오류가 없으면 z의 복소 쌍곡선 코사인을 반환해요.
오류 처리와 특수 값
오류는 math_errhandling에 따라 보고돼요. 구현이 IEEE 부동소수점 산술을 지원한다면 다음 규칙이 적용돼요.
ccosh(conj(z)) == conj(ccosh(z))ccosh(z) == ccosh(-z)z가+0+0i→ 결과는1+0iz가+0+∞i→ 결과는NaN±0i(허수부 부호는 명시되지 않음),FE_INVALID발생z가+0+NaNi→ 결과는NaN±0i(허수부 부호는 명시되지 않음)z가x+∞i(0이 아닌 유한x) → 결과는NaN+NaNi,FE_INVALID발생z가x+NaNi(0이 아닌 유한x) → 결과는NaN+NaNi,FE_INVALID발생 가능z가+∞+0i→ 결과는+∞+0iz가+∞+yi(0이 아닌 유한y) → 결과는+∞cis(y)z가+∞+∞i→ 결과는±∞+NaNi(실수부 부호는 명시되지 않음),FE_INVALID발생z가+∞+NaN→ 결과는+∞+NaNz가NaN+0i→ 결과는NaN±0i(허수부 부호는 명시되지 않음)z가NaN+yi(0이 아닌 유한y) → 결과는NaN+NaNi,FE_INVALID발생 가능z가NaN+NaNi→ 결과는NaN+NaNi
여기서 cis(y)는 cos(y) + i sin(y)를 뜻해요.
Notes
쌍곡선 코사인의 수학적 정의는 다음과 같아요.
cosh z = (e^z + e^-z) / 2
쌍곡선 코사인은 복소평면에서 전해석 함수라서 가지 자름이 없어요. 허수 성분에 대해 주기 2πi로 주기적이에요.
예시
실수축과 허수축 위에서 쌍곡선 코사인이 어떻게 행동하는지 확인해 보는 코드예요.
#include <stdio.h>
#include <math.h>
#include <complex.h>
int main(void)
{
double complex z = ccosh(1); // behaves like real cosh along the real line
printf("cosh(1+0i) = %f%+fi (cosh(1)=%f)\n", creal(z), cimag(z), cosh(1));
double complex z2 = ccosh(I); // behaves like real cosine along the imaginary line
printf("cosh(0+1i) = %f%+fi ( cos(1)=%f)\n", creal(z2), cimag(z2), cos(1));
}
출력:
cosh(1+0i) = 1.543081+0.000000i (cosh(1)=1.543081)
cosh(0+1i) = 0.540302+0.000000i ( cos(1)=0.540302)
cosh(1+0i)가 실수 cosh(1)과 일치하고, cosh(0+1i)가 실수 cos(1)과 일치해요. ccos와 정확히 반대되는 관계가 성립하죠.
표준 참조
- C11: 7.3.6.4 The ccosh functions (p: 193), 7.25 (p: 373-375), G.6.2.4 (p: 541), G.7 (p: 545)
- C99: 7.3.6.4 (p: 175), 7.22 (p: 335-337), G.6.2.4 (p: 476), G.7 (p: 480)
더 알아보기
- 복소 쌍곡선 사인
csinh, 복소 쌍곡선 탄젠트ctanh와 함께 쌍곡선 함수군을 이뤄요. - 역함수는 복소 아크쌍곡선 코사인
cacosh예요. - 실수 쌍곡선 코사인
cosh·coshf·coshl과 비교해 보세요. - cppreference의 ccosh 원문에서 참조 절을 더 확인할 수 있어요.