Namespaces
Variants

csqrtf, csqrt, csqrtl

From cppreference.net
헤더 파일에 정의됨 <complex.h>
float complex csqrtf ( float complex z ) ;
(1) (C99 이후)
double complex csqrt ( double complex z ) ;
(2) (C99 이후)
long double complex csqrtl ( long double complex z ) ;
(3) (C99 이후)
헤더 파일에 정의됨 <tgmath.h>
#define sqrt( z )
(4) (C99 이후)
1-3) 음의 실수 축을 따라 가지 절단(branch cut)을 적용하여 z 의 복소수 제곱근을 계산합니다.
4) 타입-제네릭 매크로: z long double complex 타입을 가지면 csqrtl 이 호출됩니다. z double complex 타입을 가지면 csqrt 이 호출됩니다. z float complex 타입을 가지면 csqrtf 이 호출됩니다. z 가 실수 또는 정수이면, 매크로는 해당 실수 함수( sqrtf , sqrt , sqrtl )를 호출합니다. z 가 허수이면, 해당 복소수 버전이 호출됩니다.

목차

매개변수

z - 복소 인수

반환값

오류가 발생하지 않으면, 우반평면(실수 축 상에서는 [0; +∞) , 허수 축 상에서는 (−∞; +∞) 범위를 포함)에서 z 의 제곱근을 반환합니다.

오류 처리 및 특수 값

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

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

  • 함수는 허수부의 부호를 고려하여 브랜치 컷(branch cut) 위에서 연속적입니다.
  • csqrt ( conj ( z ) ) == conj ( csqrt ( z ) )
  • 만약 z ±0+0i 이면, 결과는 +0+0i 입니다.
  • 만약 z x+∞i 이면, x가 NaN인 경우에도 결과는 +∞+∞i 입니다.
  • 만약 z x+NaNi 이면, 결과는 NaN+NaNi 입니다 (x가 ±∞가 아닌 경우). 그리고 FE_INVALID 가 발생할 수 있습니다.
  • 만약 z -∞+yi 이면, 유한한 양의 y에 대해 결과는 +0+∞i 입니다.
  • 만약 z +∞+yi 이면, 유한한 양의 y에 대해 결과는 +∞+0i) 입니다.
  • 만약 z -∞+NaNi 이면, 결과는 NaN±∞i 입니다 (허수부의 부호는 명시되지 않음).
  • 만약 z +∞+NaNi 이면, 결과는 +∞+NaNi 입니다.
  • 만약 z NaN+yi 이면, 결과는 NaN+NaNi 이고 FE_INVALID 가 발생할 수 있습니다.
  • 만약 z NaN+NaNi 이면, 결과는 NaN+NaNi 입니다.

예제

#include <stdio.h>
#include <complex.h>
int main(void)
{
    double complex z1 = csqrt(-4);
    printf("Square root of -4 is %.1f%+.1fi\n", creal(z1), cimag(z1));
    double complex z2 = csqrt(conj(-4)); // or, in C11, CMPLX(-4, -0.0)
    printf("Square root of -4-0i, the other side of the cut, is "
           "%.1f%+.1fi\n", creal(z2), cimag(z2));
}

출력:

Square root of -4 is 0.0+2.0i
Square root of -4-0i, the other side of the cut, is 0.0-2.0i

참고문헌

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

참고 항목

(C99) (C99) (C99)
복소수 거듭제곱 함수를 계산함
(함수)
(C99) (C99)
제곱근을 계산함 ( x )
(함수)
C++ 문서 for sqrt