std::sqrt(std::complex)
STD::sqrt%28std::Complex%29
Defined in header | | |
---|---|---|
template< class T > complex<T> sqrt( const complex<T>& z | | |
计算复数的平方根。z
在负实轴上有一个分支。
参数
z | - | complex number to take the square root of |
---|
返回值
如果没有发生错误,则返回z
,在右半平面的范围内,包括虚轴%28。[0;+∞%29沿实轴,%28-∞;+∞%29沿虚轴。%29。
如果这个论点是一个负实数,则结果是在正虚轴上。
错误处理和特殊值
错误报告与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)
%28,除非x是±∞%29和FE_INVALID
可能被提高
- 如果
z
是(-∞,y)
,结果是(+0,+∞)
对于有限正y
- 如果
z
是(+∞,y)
,结果是(+∞,+0)
对于有限正y
- 如果
z
是(-∞,NaN)
,结果是(NaN,∞)
%28虚设部分符号未指定%29
- 如果
z
是(+∞,NaN)
,结果是(+∞,NaN)
- 如果
z
是(NaN,y)
,结果是(NaN,NaN)
和FE_INVALID
可能被提高
- 如果
z
是(NaN,NaN)
,结果是(NaN,NaN)
例
二次
#include <iostream>
#include <complex>
int main()
{
std::cout << "Square root of -4 is "
<< std::sqrt(std::complex<double>(-4, 0)) << '\n'
<< "Square root of (-4,-0), the other side of the cut, is "
<< std::sqrt(std::complex<double>(-4, -0.0)) << '\n';
}
二次
产出:
二次
Square root of -4 is (0,2)
Square root of (-4,-0), the other side of the cut, is (0,-2)
二次
另见
pow(std::complex) | complex power, one or both arguments may be a complex number (function template) |
---|---|
sqrt | computes square root (√x) (function) |
sqrt(std::valarray) | applies the function std::sqrt to each element of valarray (function template) |
c csqrt文档
© cppreference.com
在CreativeCommonsAttribution下授权-ShareAlike未移植许可v3.0。