csqrtf, csqrt, csqrtl
Определено в заголовочном файле <complex.h> | ||
|---|---|---|
float complex csqrtf( float complex z ); | (1) | (начиная с C99) |
double complex csqrt( double complex z ); | (2) | (начиная с C99) |
long double complex csqrtl( long double complex z ); | (3) | (начиная с C99) |
Определено в заголовочном файле <tgmath.h> | ||
#define sqrt( z ) | (4) | (начиная с C99) |
1-3) Вычисляет комплексный квадратный корень из
z с разрезом ветви вдоль отрицательной вещественной оси.
4) Обобщённый по типу макрос: если
z имеет тип long double complex, вызывается csqrtl. Если z имеет тип double complex, вызывается csqrt; если z имеет тип float complex, вызывается csqrtf. Если z является вещественным числом или целым числом, макрос вызывает соответствующую вещественную функцию (sqrtf, sqrt, sqrtl). Если z является мнимым числом, вызывается соответствующая версия для комплексных чисел.Параметры
| z | - | комплексный аргумент |
Возвращаемое значение
Если ошибок не возникает, возвращает квадратный корень из z в правой полуплоскости, включая мнимую ось ([0; +∞) вдоль вещественной оси и (−∞; +∞) вдоль мнимой оси.)
Обработка ошибок и особые значения
Об ошибках сообщается в соответствии с math_errhandling
Если реализация поддерживает арифметику с плавающей точкой по стандарту IEEE,
- Функция непрерывна на разрезе ветви с учётом знака мнимой части
csqrt(conj(z)) == conj(csqrt(z))- Если
zявляется±0+0i, результатом будет+0+0i - Если
zявляетсяx+∞i, результатом будет+∞+∞i, даже если x — NaN - Если
zявляетсяx+NaNi, результатом будетNaN+NaNi(если только x не равен ±∞), и может быть поднято исключениеFE_INVALID - Если
zявляется-∞+yi, результатом будет+0+∞iдля конечного положительного y - Если
zявляется+∞+yi, результатом будет+∞+0i)для конечного положительного y - Если
zявляется-∞+NaNi, результатом будетNaN±∞i(знак мнимой части не определён) - Если
zявляется+∞+NaNi, результатом будет+∞+NaNi - Если
zявляетсяNaN+yi, результатом будетNaN+NaNi, и может быть поднято исключениеFE_INVALID - Если
zявляетсяNaN+NaNi, результатом будетNaN+NaNi
Пример
#include <stdio.h>
#include <complex.h>
int main(void)
{
double complex z1 = csqrt(-4);
printf("Square root of -4 is %.1f%+.1fi\n", creal(z1), cimag(z1));
double complex z2 = csqrt(conj(-4)); // or, in C11, CMPLX(-4, -0.0)
printf("Square root of -4-0i, the other side of the cut, is "
"%.1f%+.1fi\n", creal(z2), cimag(z2));
}
Вывод:
Square root of -4 is 0.0+2.0i Square root of -4-0i, the other side of the cut, is 0.0-2.0i
Ссылки
- Стандарт C11 (ISO/IEC 9899:2011):
- 7.3.8.3 Функции csqrt (стр. 196)
- 7.25 Обобщённые по типу математические функции <tgmath.h> (стр. 373–375)
- G.6.4.2 Функции csqrt (стр. 544)
- G.7 Обобщённые по типу математические функции <tgmath.h> (стр. 545)
- Стандарт C99 (ISO/IEC 9899:1999):
- 7.3.8.3 Функции csqrt (стр. 178)
- 7.22 Обобщённые по типу математические функции <tgmath.h> (стр. 335–337)
- G.6.4.2 Функции csqrt (стр. 479)
- G.7 Обобщённые по типу математические функции <tgmath.h> (стр. 480)
См. также
|
(C99)(C99)(C99) | вычисляет функцию возведения комплексного числа в степень (функция) |
|
(C99)(C99) | вычисляет квадратный корень (\(\small{\sqrt{x} }\)√x) (функция) |
Документация C++ для sqrt |
|
© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/c/numeric/complex/csqrt