Namespaces
Variants

clogf, clog, clogl

From cppreference.net
Определено в заголовочном файле <complex.h>
float complex clogf ( float complex z ) ;
(1) (начиная с C99)
double complex clog ( double complex z ) ;
(2) (начиная с C99)
long double complex clogl ( long double complex z ) ;
(3) (начиная с C99)
Определено в заголовочном файле <tgmath.h>
#define log( z )
(4) (начиная с C99)
1-3) Вычисляет комплексный натуральный (по основанию e ) логарифм от z с разрезом ветви вдоль отрицательной вещественной оси.
4) Тип-независимый макрос: Если z имеет тип long double complex , clogl вызывается. Если z имеет тип double complex , clog вызывается. Если z имеет тип float complex , clogf вызывается. Если z является вещественным или целым, то макрос вызывает соответствующую вещественную функцию ( logf , log , logl ). Если z является мнимым, вызывается соответствующая версия для комплексных чисел.

Содержание

Параметры

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

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

Если ошибок не возникает, возвращается комплексный натуральный логарифм z в диапазоне полосы в интервале [−iπ, +iπ] вдоль мнимой оси и математически неограниченный вдоль вещественной оси.

Обработка ошибок и специальные значения

Ошибки сообщаются в соответствии с math_errhandling

Если реализация поддерживает арифметику с плавающей запятой IEEE,

  • Функция непрерывна на разрезе ветви с учётом знака мнимой части
  • clog ( conj ( z ) ) == conj ( clog ( z ) )
  • Если z равно -0+0i , результат равен -∞+πi и возбуждается FE_DIVBYZERO
  • Если z равно +0+0i , результат равен -∞+0i и возбуждается FE_DIVBYZERO
  • Если z равно x+∞i (для любого конечного x), результат равен +∞+πi/2
  • Если z равно x+NaNi (для любого конечного x), результат равен NaN+NaNi и может быть возбуждено FE_INVALID
  • Если z равно -∞+yi (для любого конечного положительного y), результат равен +∞+πi
  • Если z равно +∞+yi (для любого конечного положительного y), результат равен +∞+0i
  • Если z равно -∞+∞i , результат равен +∞+3πi/4
  • Если z равно +∞+∞i , результат равен +∞+πi/4
  • Если z равно ±∞+NaNi , результат равен +∞+NaNi
  • Если z равно NaN+yi (для любого конечного y), результат равен NaN+NaNi и может быть возбуждено FE_INVALID
  • Если z равно NaN+∞i , результат равен +∞+NaNi
  • Если z равно NaN+NaNi , результат равен NaN+NaNi

Примечания

Натуральный логарифм комплексного числа z с компонентами полярных координат (r,θ) равен ln r + i(θ+2nπ) , с главным значением ln r + iθ

Пример

#include <stdio.h>
#include <math.h>
#include <complex.h>
int main(void)
{
    double complex z = clog(I); // r = 1, θ = pi/2
    printf("2*log(i) = %.1f%+fi\n", creal(2*z), cimag(2*z));
    double complex z2 = clog(sqrt(2)/2 + sqrt(2)/2*I); // r = 1, θ = pi/4
    printf("4*log(sqrt(2)/2+sqrt(2)i/2) = %.1f%+fi\n", creal(4*z2), cimag(4*z2));
    double complex z3 = clog(-1); // r = 1, θ = pi
    printf("log(-1+0i) = %.1f%+fi\n", creal(z3), cimag(z3));
    double complex z4 = clog(conj(-1)); // or clog(CMPLX(-1, -0.0)) in C11
    printf("log(-1-0i) (the other side of the cut) = %.1f%+fi\n", creal(z4), cimag(z4));
}

Вывод:

2*log(i) = 0.0+3.141593i
4*log(sqrt(2)/2+sqrt(2)i/2) = 0.0+3.141593i
log(-1+0i) = 0.0+3.141593i
log(-1-0i) (the other side of the cut) = 0.0-3.141593i

Ссылки

  • Стандарт C11 (ISO/IEC 9899:2011):
  • 7.3.7.2 Функции clog (стр. 195)
  • 7.25 Обобщенная математика <tgmath.h> (стр. 373-375)
  • G.6.3.2 Функции clog (стр. 543-544)
  • G.7 Обобщенная математика <tgmath.h> (стр. 545)
  • Стандарт C99 (ISO/IEC 9899:1999):
  • 7.3.7.2 Функции clog (стр. 176-177)
  • 7.22 Обобщенная математика <tgmath.h> (стр. 335-337)
  • G.6.3.2 Функции clog (стр. 478-479)
  • G.7 Обобщенная математика <tgmath.h> (стр. 480)

Смотрите также

(C99) (C99) (C99)
вычисляет комплексную экспоненту по основанию e
(функция)
(C99) (C99)
вычисляет натуральный логарифм (по основанию e ) ( ln(x) )
(функция)