Namespaces
Variants

std:: acos (std::complex)

From cppreference.net
헤더 파일에 정의됨 <complex>
template < class T >
complex < T > acos ( const complex < T > & z ) ;
(C++11 이후)

복소수 값 z 의 복소 아크 코사인을 계산합니다. 실수 축을 따라 [−1, +1] 구간 바깥쪽에 분기 절단이 존재합니다.

목차

매개변수

z - 복소수 값

반환값

오류가 발생하지 않으면, 복소수 아크 코사인 값이 반환됩니다. 이 값은 허수축 방향으로는 제한이 없고, 실수축 방향으로는 [0, +π] 구간에 있는 영역 내에 있습니다.

오류 처리 및 특수 값

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

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

  • std:: acos ( std:: conj ( z ) ) == std:: conj ( std:: acos ( z ) )
  • 만약 z (±0,+0) 이면, 결과는 (π/2,-0) 입니다.
  • 만약 z (±0,NaN) 이면, 결과는 (π/2,NaN) 입니다.
  • 만약 z (x,+∞) (임의의 유한한 x에 대해), 결과는 (π/2,-∞) 입니다.
  • 만약 z (x,NaN) (0이 아닌 임의의 유한한 x에 대해), 결과는 (NaN,NaN) 이며 FE_INVALID 가 발생할 수 있습니다.
  • 만약 z (-∞,y) (임의의 양의 유한한 y에 대해), 결과는 (π,-∞) 입니다.
  • 만약 z (+∞,y) (임의의 양의 유한한 y에 대해), 결과는 (+0,-∞) 입니다.
  • 만약 z (-∞,+∞) 이면, 결과는 (3π/4,-∞) 입니다.
  • 만약 z (+∞,+∞) 이면, 결과는 (π/4,-∞) 입니다.
  • 만약 z (±∞,NaN) 이면, 결과는 (NaN,±∞) 입니다 (허수부의 부호는 지정되지 않음).
  • 만약 z (NaN,y) (임의의 유한한 y에 대해), 결과는 (NaN,NaN) 이며 FE_INVALID 가 발생할 수 있습니다.
  • 만약 z (NaN,+∞) 이면, 결과는 (NaN,-∞) 입니다.
  • 만약 z (NaN,NaN) 이면, 결과는 (NaN,NaN) 입니다.

참고 사항

역코사인(또는 아크 코사인)은 다가 함수이며 복소평면 상에서 가지 자름이 필요합니다. 가지 자름은 관례적으로 실수축의 선분 (-∞,-1) (1,∞) 에 위치합니다.

The mathematical definition of the principal value of arc cosine is acos z =
1
2
π + i ln( i z + 1-z 2
)
.

모든 z 에 대해, acos(z) = π - acos(-z) 가 성립합니다.

예제

#include <cmath>
#include <complex>
#include <iostream>
int main()
{
    std::cout << std::fixed;
    std::complex<double> z1(-2.0, 0.0);
    std::cout << "acos" << z1 << " = " << std::acos(z1) << '\n';
    std::complex<double> z2(-2.0, -0.0);
    std::cout << "acos" << z2 << " (the other side of the cut) = "
              << std::acos(z2) << '\n';
    // for any z, acos(z) = pi - acos(-z)
    const double pi = std::acos(-1);
    std::complex<double> z3 = pi - std::acos(z2);
    std::cout << "cos(pi - acos" << z2 << ") = " << std::cos(z3) << '\n';
}

출력:

acos(-2.000000,0.000000) = (3.141593,-1.316958)
acos(-2.000000,-0.000000) (the other side of the cut) = (3.141593,1.316958)
cos(pi - acos(-2.000000,-0.000000)) = (2.000000,0.000000)

참고 항목

복소수의 아크 사인을 계산합니다 ( arcsin(z) )
(함수 템플릿)
복소수의 아크 탄젠트를 계산합니다 ( arctan(z) )
(함수 템플릿)
복소수의 코사인을 계산합니다 ( cos(z) )
(함수 템플릿)
(C++11) (C++11)
아크 코사인을 계산합니다 ( arccos(x) )
(함수)
함수 std::acos 를 valarray의 각 요소에 적용합니다
(함수 템플릿)
C 문서 for cacos