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)
См. также
|
(C99)(C99)(C99) | вычисляет комплексную экспоненту по основанию e (функция) |
|
(C99)(C99) | вычисляет натуральный логарифм (\({\small \ln{x} }\)ln(x)) (функция) |
Документация C++ для log |
|
© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/w/c/numeric/complex/clog