C++
数字 | Numerics

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)
normreturns the squared magnitude (function template)
polarconstructs a complex number from magnitude and phase angle (function template)

c cproj文件

© cppreference.com

在CreativeCommonsAttribution下授权-ShareAlike未移植许可v3.0。

http://en.cppreference.com/w/cpp/数值/Complex/proj