Namespaces
Variants

cpowf, cpow, cpowl

From cppreference.net
헤더 파일에 정의됨 <complex.h>
float complex cpowf ( float complex x, float complex y ) ;
(1) (C99 이후)
double complex cpow ( double complex x, double complex y ) ;
(2) (C99 이후)
long double complex cpowl ( long double complex x, long double complex y ) ;
(3) (C99 이후)
헤더 파일에 정의됨 <tgmath.h>
#define pow( x, y )
(4) (C99 이후)
1-3) 복소수 거듭제곱 함수 x y
를 계산하며, 첫 번째 매개변수에 대해 음의 실수축을 따라 가지 절단이 적용됩니다.
4) 타입-제네릭 매크로: 인수 중 하나라도 long double complex 타입을 가지면 cpowl 이 호출됩니다. 인수 중 하나라도 double complex 타입을 가지면 cpow 이 호출되며, 인수 중 하나라도 float complex 타입을 가지면 cpowf 이 호출됩니다. 인수가 실수 또는 정수인 경우, 매크로는 해당 실수 함수( powf , pow , powl )를 호출합니다. 인수 중 하나라도 허수인 경우, 해당 복소수 버전이 호출됩니다.

목차

매개변수

x, y - 복소 인수

반환값

오류가 발생하지 않으면, 복소수 거듭제곱 x y
가 반환됩니다.

오류 및 특수한 경우들은 이 연산이 cexp ( y * clog ( x ) ) 로 구현된 것처럼 처리됩니다. 단, 구현체가 특수한 경우들을 더 신중하게 다루는 것이 허용됩니다.

예제

#include <stdio.h>
#include <complex.h>
int main(void)
{    
    double complex z = cpow(1.0+2.0*I, 2);
    printf("(1+2i)^2 = %.1f%+.1fi\n", creal(z), cimag(z));
    double complex z2 = cpow(-1, 0.5);
    printf("(-1+0i)^0.5 = %.1f%+.1fi\n", creal(z2), cimag(z2));
    double complex z3 = cpow(conj(-1), 0.5); // 절단의 다른 쪽
    printf("(-1-0i)^0.5 = %.1f%+.1fi\n", creal(z3), cimag(z3));
    double complex z4 = cpow(I, I); // i^i = exp(-pi/2)
    printf("i^i = %f%+fi\n", creal(z4), cimag(z4));
}

출력:

(1+2i)^2 = -3.0+4.0i
(-1+0i)^0.5 = 0.0+1.0i
(-1-0i)^0.5 = 0.0-1.0i
i^i = 0.207880+0.000000i

참고문헌

  • C11 표준 (ISO/IEC 9899:2011):
  • 7.3.8.2 The cpow functions (p: 195-196)
  • 7.25 Type-generic math <tgmath.h> (p: 373-375)
  • G.6.4.1 The cpow functions (p: 544)
  • G.7 Type-generic math <tgmath.h> (p: 545)
  • C99 표준 (ISO/IEC 9899:1999):
  • 7.3.8.2 The cpow functions (p: 177)
  • 7.22 Type-generic math <tgmath.h> (p: 335-337)
  • G.6.4.1 The cpow functions (p: 479)
  • G.7 Type-generic math <tgmath.h> (p: 480)

참고 항목

(C99) (C99) (C99)
복소수 제곱근을 계산함
(함수)
(C99) (C99)
주어진 거듭제곱으로 올린 숫자를 계산함 ( x y )
(함수)
C++ 문서 for pow