std::proj(std::complex)
Defined in header <complex> | | |
|---|---|---|
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。
本文档系腾讯云开发者社区成员共同维护,如有问题请联系 cloudcommunity@tencent.com

