Namespaces
Variants

cprojf, cproj, cprojl

From cppreference.net
헤더 파일에 정의됨 <complex.h>
float complex cprojf ( float complex z ) ;
(1) (C99부터)
double complex cproj ( double complex z ) ;
(2) (C99부터)
long double complex cprojl ( long double complex z ) ;
(3) (C99부터)
헤더 파일에 정의됨 <tgmath.h>
#define cproj( z )
(4) (C99부터)
1-3) 리만 구 위에 z 의 사영을 계산합니다.
4) 타입-제네릭 매크로: 만약 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