2014-01-12 51 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()的定義是在標準C(7.12.4.4),其指定了第4段:

atan2函數在區間返回反正切y/x [-π,+π弧度。

+0

謝謝,我想我會小心行事,不作任何假設。 –