| Types and the imaginary constant | |||||||||||||||||||||||||||||||
|
| ||||||||||||||||||||||||||||||
| Manipulation | |||||||||||||||||||||||||||||||
| Power and exponential functions | |||||||||||||||||||||||||||||||
| Trigonometric functions | |||||||||||||||||||||||||||||||
| Hyperbolic functions | |||||||||||||||||||||||||||||||
Defined in header <complex.h> | ||
float cargf(floatcomplex z); | (1) | (since C99) |
double carg(doublecomplex z); | (2) | (since C99) |
longdouble cargl(longdoublecomplex z); | (3) | (since C99) |
Defined in header <tgmath.h> | ||
#define carg( z ) | (4) | (since C99) |
z, with a branch cut along the negative real axis.z has typelongdoublecomplex,longdoubleimaginary, orlongdouble,cargl is called. Ifz has typefloatcomplex,floatimaginary, orfloat,cargf is called. Ifz has typedoublecomplex,doubleimaginary,double, or any integer type,carg is called.Contents |
| z | - | complex argument |
If no errors occur, returns the phase angle ofz in the interval[−π; π].
Errors and special cases are handled as if the function is implemented asatan2(cimag(z),creal(z))
#include <stdio.h>#include <complex.h> int main(void){doublecomplex z1=1.0+0.0*I;printf("phase angle of %.1f%+.1fi is %f\n",creal(z1),cimag(z1), carg(z1)); doublecomplex z2=0.0+1.0*I;printf("phase angle of %.1f%+.1fi is %f\n",creal(z2),cimag(z2), carg(z2)); doublecomplex z3=-1.0+0.0*I;printf("phase angle of %.1f%+.1fi is %f\n",creal(z3),cimag(z3), carg(z3)); doublecomplex z4=conj(z3);// or CMPLX(-1, -0.0)printf("phase angle of %.1f%+.1fi (the other side of the cut) is %f\n",creal(z4),cimag(z4), carg(z4));}
Output:
phase angle of 1.0+0.0i is 0.000000phase angle of 0.0+1.0i is 1.570796phase angle of -1.0+0.0i is 3.141593phase angle of -1.0-0.0i (the other side of the cut) is -3.141593
(C99)(C99)(C99) | computes the magnitude of a complex number (function)[edit] |
(C99)(C99) | computes arc tangent, using signs to determine quadrants (function)[edit] |
C++ documentation forarg | |