Namespaces
Variants

cargf, carg, cargl

From cppreference.net
Определено в заголовке <complex.h>
float cargf ( float complex z ) ;
(1) (начиная с C99)
double carg ( double complex z ) ;
(2) (начиная с C99)
long double cargl ( long double complex z ) ;
(3) (начиная с C99)
Определено в заголовке <tgmath.h>
#define carg( z )
(4) (начиная с C99)
1-3) Вычисляет аргумент (также называемый фазовым углом) z , с разрезом ветви вдоль отрицательной вещественной оси.
4) Макрос общего типа: если z имеет тип long double complex , long double imaginary или long double , вызывается cargl . Если z имеет тип float complex , float imaginary или float , вызывается cargf . Если z имеет тип double complex , double imaginary , double или любой целочисленный тип, вызывается carg .

Содержание

Параметры

z - комплексный аргумент

Возвращаемое значение

Если ошибок не возникает, возвращает фазовый угол z в интервале [−π; π] .

Ошибки и особые случаи обрабатываются так, как если бы функция была реализована как atan2 ( cimag ( z ) , creal ( z ) )

Пример

#include <stdio.h>
#include <complex.h>
int main(void) 
{
    double complex z1 = 1.0+0.0*I;
    printf("phase angle of %.1f%+.1fi is %f\n", creal(z1), cimag(z1), carg(z1));
    double complex z2 = 0.0+1.0*I;
    printf("phase angle of %.1f%+.1fi is %f\n", creal(z2), cimag(z2), carg(z2));
    double complex z3 = -1.0+0.0*I;
    printf("phase angle of %.1f%+.1fi is %f\n", creal(z3), cimag(z3), carg(z3));
    double complex 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));
}

Вывод:

phase angle of 1.0+0.0i is 0.000000
phase angle of 0.0+1.0i is 1.570796
phase angle of -1.0+0.0i is 3.141593
phase angle of -1.0-0.0i (the other side of the cut) is -3.141593

Ссылки

  • Стандарт C11 (ISO/IEC 9899:2011):
  • 7.3.9.1 Функции carg (стр. 196)
  • 7.25 Обобщенная математика типов <tgmath.h> (стр. 373-375)
  • G.7 Обобщенная математика типов <tgmath.h> (стр. 545)
  • Стандарт C99 (ISO/IEC 9899:1999):
  • 7.3.9.1 Функции carg (стр. 178)
  • 7.22 Обобщенная математика типов <tgmath.h> (стр. 335-337)
  • G.7 Обобщенная математика типов <tgmath.h> (стр. 480)

Смотри также

(C99) (C99) (C99)
вычисляет модуль комплексного числа
(функция)
вычисляет арктангенс, используя знаки для определения квадрантов
(функция)