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) | вычисляет натуральный логарифм (по основанию 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