cprojf, cproj, cprojl
|
헤더 파일에 정의됨
<complex.h>
|
||
| (1) | (C99부터) | |
| (2) | (C99부터) | |
| (3) | (C99부터) | |
|
헤더 파일에 정의됨
<tgmath.h>
|
||
|
#define cproj( z )
|
(4) | (C99부터) |
z
의 사영을 계산합니다.
z
가
long
double
complex
,
long
double
imaginary
, 또는
long
double
타입을 가지면,
cprojl
이 호출됩니다. 만약
z
가
float
complex
,
float
imaginary
, 또는
float
타입을 가지면,
cprojf
이 호출됩니다. 만약
z
가
double
complex
,
double
imaginary
,
double
, 또는 임의의 정수 타입을 가지면,
cproj
이 호출됩니다.
대부분의
z
에 대해,
cproj
(
z
)
==
z
가 성립하지만, 모든 복소수 무한대(한 구성 요소가 무한대이고 다른 구성 요소가 NaN인 숫자들 포함)는 양의 실수 무한대,
INFINITY
+
0.0
*
I
또는
INFINITY
-
0.0
*
I
가 됩니다. 허수(영) 구성 요소의 부호는
cimag
(
z
)
의 부호와 동일합니다.
목차 |
매개변수
| z | - | 복소 인수 |
반환값
리만 구 위의
z
투영.
이 함수는 모든 가능한 입력에 대해 완전히 명시되어 있으며 math_errhandling 에 설명된 어떠한 오류에도 영향을 받지 않습니다.
참고 사항
cproj
함수는 모든 무한대를 하나로 매핑하여(허수 영점의 부호를 고려하여) 리만 구를 모델링하는 데 도움을 주며, 특히 다른 무한대에 대해 잘못된 결과를 줄 수 있는 연산(비교 연산 등)을 수행하기 직전에 사용해야 합니다.
예제
#include <stdio.h> #include <complex.h> #include <math.h> int main(void) { double complex z1 = cproj(1 + 2*I); printf("cproj(1+2i) = %.1f%+.1fi\n", creal(z1),cimag(z1)); double complex z2 = cproj(INFINITY+2.0*I); printf("cproj(Inf+2i) = %.1f%+.1fi\n", creal(z2),cimag(z2)); double complex z3 = cproj(INFINITY-2.0*I); printf("cproj(Inf-2i) = %.1f%+.1fi\n", creal(z3),cimag(z3)); }
출력:
cproj(1+2i) = 1.0+2.0i cproj(Inf+2i) = inf+0.0i cproj(Inf-2i) = inf-0.0i
참고문헌
- C11 표준 (ISO/IEC 9899:2011):
-
- 7.3.9.5 cproj 함수들 (p: 198)
-
- 7.25 타입-제네릭 수학 <tgmath.h> (p: 373-375)
-
- G.7 타입-제네릭 수학 <tgmath.h> (p: 545)
- C99 표준 (ISO/IEC 9899:1999):
-
- 7.3.9.4 cproj 함수들 (p: 179)
-
- 7.22 타입-제네릭 수학 <tgmath.h> (p: 335-337)
-
- G.7 타입-제네릭 수학 <tgmath.h> (p: 480)
참고 항목
|
C++ 문서
for
proj
|