std::proj(std::complex)
STD::proj%28 std::Complex%29
Defined in header | | |
---|---|---|
template< class T > complex<T> proj( const complex<T>& z | (1) | (since C++11) |
std::complex<long double> proj( long double z | (2) | (since C++11) |
template< class DoubleOrInteger > std::complex<double> proj( DoubleOrInteger z | (3) | (since C++11) |
std::complex<float> proj( float z | (4) | (since C++11) |
返回复数的投影。z
进入黎曼球体。
对大多数人来说z
,,,std::proj(z)==z
,但是所有的复无穷大,即使是一个分量是无限的,另一个分量是南的数,都变成了正实无穷大,(
INFINITY
, 0)
或(
INFINITY
, -0)
.虚设%280%29分量的符号是std::imag(z)
...
额外超载float
,,,double
,,,long double
,以及所有整数类型,它们被视为零虚分量的复数。
参数
z | - | complex value |
---|
返回值
投影z
进入黎曼球体。
注记
大proj
函数通过将所有无穷大映射到1%28给或取虚0%29的符号来帮助建模黎曼球面,并且应该在任何操作之前使用,特别是比较,这些运算可能会给出其他任何无穷大的虚假结果。
例
二次
#include <iostream>
#include <complex>
int main()
{
std::complex<double> c1(1, 2
std::cout << "proj" << c1 << " = " << std::proj(c1) << '\n';
std::complex<double> c2(INFINITY, -1
std::cout << "proj" << c2 << " = " << std::proj(c2) << '\n';
std::complex<double> c3(0, -INFINITY
std::cout << "proj" << c3 << " = " << std::proj(c3) << '\n';
}
二次
产出:
二次
proj(1,2) = (1,2)
proj(inf,-1) = (inf,-0)
proj(0,-inf) = (inf,-0)
二次
另见
abs(std::complex) | returns the magnitude of a complex number (function template) |
---|---|
norm | returns the squared magnitude (function template) |
polar | constructs a complex number from magnitude and phase angle (function template) |
c cproj文件
© cppreference.com
在CreativeCommonsAttribution下授权-ShareAlike未移植许可v3.0。