cc [ flags ] -I/usr/local/include file(s) -L/usr/local/lib -lmcw [ ... ] #include <mathcw.h> #include <complexcw.h> extern float cargf (float complex z); extern double carg (double complex z); extern long double cargl (long double complex z); extern __float80 cargw (__float80 complex z); extern __float128 cargq (__float128 complex z); extern long_long_double cargll (long_long_double complex z); extern decimal_float cargdf (decimal_float complex z); extern decimal_double cargd (decimal_double complex z); extern decimal_long_double cargdl (decimal_long_double complex z); extern decimal_long_long_double cargdll (decimal_long_long_double complex z);
NB: Functions with prototypes containing underscores in type names may be available only with certain extended compilers.
If the argument in Cartesian form is z = x + y I, where x and y are real, then in polar form, z = r exp(t I), where r = |z| = cabs(z) = hypot(x, y) and t = carg(z) = atan2(y, x).
When compiler support for complex types is lacking, consider using the cx family of functions instead.