2014-01-12 3 views
1

<complex> C++ 헤더를 사용 중이고 복소수의 위상 각을 반환하는 std::arg 함수의 범위를 알아야합니다. 즉, [-pi, pi], [0, 2 * pi] 또는 다른 것입니까? 표준의 범위에 대한 보증이 있습니까?std :: arg() 함수의 범위는 무엇입니까?

AFAICT, std::arg 기본적으로는 atan2을 감싸며, 이는 범위가 [-pi, pi]임을 보장합니다. C++의 모든 호환 구현에 해당됩니까?

답변

2
std::arg()

의 사양 정말 많은 세부 사항을 제공하지 않는다 (26.4.7 [complex.value.ops] 제 4 항)

template<class T> T arg(const complex<T>& x); 

결과 : x 또는 atan2(imag(x), real(x))의 위상 ​​각도.

atan2()의 정의가 제 4 항에 지정 C 표준 (7.12.4.4)이다 :

atan2 기능은 [-π, + π 라디안 간격에서 아크 탄젠트 y/x 반환. Y/X는 구간 [-pi, + PI 라디안의 http://www.cplusplus.com/reference/cmath/atan2/

반환 값 주 아크 탄젠트 : 가입일

+0

감사합니다. 나는주의 깊게 밟아서 어떤 가정도하지 않을 것이라고 생각합니다. –

0

.

std:arg()atan2 응답을 제공하는 것으로 가정하면 준수하는 시스템에서 원하는 것을 얻을 수 있습니다.

관련 문제