std:: sqrt (std::complex)
|
Определено в заголовочном файле
<complex>
|
||
|
template
<
class
T
>
std:: complex < T > sqrt ( const std:: complex < T > & z ) ; |
||
Вычисляет квадратный корень комплексного числа z с разрезом ветви вдоль отрицательной вещественной оси.
Содержание |
Параметры
| z | - | комплексное число, из которого извлекается квадратный корень |
Возвращаемое значение
Если ошибок не возникает, возвращает квадратный корень из z , в области правой полуплоскости, включая мнимую ось ( [0; +∞) вдоль действительной оси и (−∞; +∞) вдоль мнимой оси).
Обработка ошибок и специальные значения
Ошибки сообщаются в соответствии с math_errhandling .
Если реализация поддерживает арифметику с плавающей точкой IEEE,
- Функция непрерывна на разрезе ветви с учётом знака мнимой части
- std:: sqrt ( std:: conj ( z ) ) == std:: conj ( std:: sqrt ( z ) )
-
Если
z
равен
(±0,+0), результат равен(+0,+0) -
Если
z
равен
(x,+∞), результат равен(+∞,+∞)даже если x равен NaN -
Если
z
равен
(x,NaN), результат равен(NaN,NaN)(если x не равен ±∞) и может быть возбуждено FE_INVALID -
Если
z
равен
(-∞,y), результат равен(+0,+∞)для конечного положительного y -
Если
z
равен
(+∞,y), результат равен(+∞,+0)для конечного положительного y -
Если
z
равен
(-∞,NaN), результат равен(NaN,∞)(знак мнимой части не определён) -
Если
z
равен
(+∞,NaN), результат равен(+∞,NaN) -
Если
z
равен
(NaN,y), результат равен(NaN,NaN)и может быть возбуждено FE_INVALID -
Если
z
равен
(NaN,NaN), результат равен(NaN,NaN)
Примечания
Семантика этой функции предназначена быть согласованной с функцией C csqrt .
Пример
#include <complex> #include <iostream> int main() { std::cout << "Square root of -4 is " << std::sqrt(std::complex<double>(-4.0, 0.0)) << '\n' << "Square root of (-4,-0) is " << std::sqrt(std::complex<double>(-4.0, -0.0)) << " (the other side of the cut)\n"; }
Вывод:
Square root of -4 is (0,2) Square root of (-4,-0) is (0,-2) (the other side of the cut)
Отчеты о дефектах
Следующие отчеты об изменениях в поведении, содержащие описания дефектов, были применены ретроактивно к ранее опубликованным стандартам C++.
| DR | Applied to | Behavior as published | Correct behavior |
|---|---|---|---|
| LWG 2597 | C++98 | спецификация некорректно обрабатывает знаковые нулевые мнимые части | ошибочное требование удалено |
Смотрите также
|
комплексное возведение в степень, один или оба аргумента могут быть комплексными числами
(шаблон функции) |
|
|
(C++11)
(C++11)
|
вычисляет квадратный корень (
√
x
)
(функция) |
|
применяет функцию
std::sqrt
к каждому элементу valarray
(шаблон функции) |
|
|
Документация C
для
csqrt
|
|