Spec-Zone.ru › C

clogf, clog, clogl

Определено в заголовочном файле <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)

См. также

cexpcexpfcexpl
(C99)(C99)(C99)
вычисляет комплексную экспоненту по основанию e
(функция)
loglogflogl
(C99)(C99)
вычисляет натуральный логарифм (по основанию e) (\({\small \ln{x} }\)ln(x))
(функция)
Документация по C++ для log

© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/c/numeric/complex/clog

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API