cpp / latest / numeric / complex / arg.html /

std::arg(std::complex)

Defined in header <complex>
template< class T > 
T arg( const complex<T>& z );
(1)
long double arg( long double z );
(2) (since C++11)
template< class DoubleOrInteger >
double arg( DoubleOrInteger z );
(3) (since C++11)
float arg( float z );
(4) (since C++11)

Calculates the phase angle (in radians) of the complex number z.

Additional overloads are provided for float, double, long double, and all integer types, which are treated as complex numbers with zero imaginary component.

(since C++11)

Parameters

z - complex value

Return value

If no errors occur, returns the phase angle of z in the interval [−π; π].

Errors and special cases are handled as if the function is implemented as std::atan2(std::imag(z), std::real(z)).

Example

#include <iostream>
#include <complex>
 
int main() 
{
    std::complex<double> z1(1, 0); 
    std::cout << "phase angle of " << z1 << " is " << std::arg(z1) << '\n';
 
    std::complex<double> z2(0, 1); 
    std::cout << "phase angle of " << z2 << " is " << std::arg(z2) << '\n';
 
    std::complex<double> z3(-1, 0); 
    std::cout << "phase angle of " << z3 << " is " << std::arg(z3) << '\n';
 
    std::complex<double> z4(-1, -0.0); 
    std::cout << "phase angle of " << z4 << " (the other side of the cut) is "
              << std::arg(z4) << '\n';
}

Output:

phase angle of (1,0) is 0
phase angle of (0,1) is 1.5708
phase angle of (-1,0) is 3.14159
phase angle of (-1,-0) (the other side of the cut) is -3.14159

See also

returns the magnitude of a complex number
(function template)
constructs a complex number from magnitude and phase angle
(function template)
(C++11)(C++11)
arc tangent, using signs to determine quadrants
(function)
applies the function std::atan2 to a valarray and a value
(function template)
C documentation for carg

© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/w/cpp/numeric/complex/arg