Movatterモバイル変換


[0]ホーム

URL:


cppreference.com
Namespaces
Variants
    Actions

      std::arg(std::complex)

      From cppreference.com
      <cpp‎ |numeric‎ |complex
       
       
       
       
      Defined in header<complex>
      template<class T>
      T           arg(conststd::complex<T>& z);
      (1)
      Defined in header<complex>
      (A)
      float       arg(float f);

      double      arg(double f);

      longdouble arg(longdouble f);
      (until C++23)
      template<class FloatingPoint>

      FloatingPoint

                  arg( FloatingPoint f);
      (since C++23)
      template<class Integer>
      double      arg( Integer i);
      (B)
      1) Calculates the phase angle (in radians) of the complex numberz.
      A,B) Additional overloads are provided for all integer and floating-point types, which are treated as complex numbers with zero imaginary component.
      (since C++11)

      Contents

      [edit]Parameters

      z - complex value
      f - floating-point value
      i - integer value

      [edit]Return value

      1)std::atan2(std::imag(z),std::real(z)). If no errors occur, this is the phase angle ofz in the interval[−π; π].
      A) Zero iff is positive or +0,π iff is negative or -0, NaN otherwise.
      B) Zero ifi is non-negative,π if it is negative.

      [edit]Notes

      The additional overloads are not required to be provided exactly as(A,B). They only need to be sufficient to ensure that for their argumentnum:

      • Ifnum has astandard(until C++23) floating-point typeT, thenstd::arg(num) has the same effect asstd::arg(std::complex<T>(num)).
      • Otherwise, ifnum has an integer type, thenstd::arg(num) has the same effect asstd::arg(std::complex<double>(num)).

      [edit]Example

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

      Output:

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

      [edit]See also

      returns the magnitude of a complex number
      (function template)[edit]
      constructs a complex number from magnitude and phase angle
      (function template)[edit]
      (C++11)(C++11)
      arc tangent, using signs to determine quadrants
      (function)[edit]
      applies the functionstd::atan2 to a valarray and a value
      (function template)[edit]
      Retrieved from "https://en.cppreference.com/mwiki/index.php?title=cpp/numeric/complex/arg&oldid=154807"

      [8]ページ先頭

      ©2009-2025 Movatter.jp