std:: proj (std::complex)
|
定义于头文件
<complex>
|
||
|
template
<
class
T
>
std:: complex < T > proj ( const std:: complex < T > & z ) ; |
(1) | (C++11 起) |
|
附加重载
(C++11 起)
|
||
|
定义于头文件
<complex>
|
||
| (A) | ||
|
std::
complex
<
float
>
proj
(
float
f
)
;
std::
complex
<
double
>
proj
(
double
f
)
;
|
(C++23 前) | |
|
template
<
class
FloatingPoint
>
std:: complex < FloatingPoint > proj ( FloatingPoint f ) ; |
(C++23 起) | |
|
template
<
class
Integer
>
std:: complex < double > proj ( Integer i ) ; |
(B) | |
目录 |
参数
| z | - | 复数 |
| f | - | 浮点数值 |
| i | - | 整数值 |
返回值
注释
proj 函数通过将所有无穷大映射为一个值(除虚部零点的符号外)来帮助建模黎曼球面,应在任何可能对其他无穷大产生伪结果的操作(特别是比较操作)之前使用。
额外的重载不需要严格按照 (A,B) 的形式提供。只需确保对于其参数 num 而言:
-
如果
num
具有
标准
(C++23 前)
浮点类型
T,则 std :: proj ( num ) 的效果与 std :: proj ( std:: complex < T > ( num ) ) 相同。 - 否则,如果 num 具有整数类型,则 std :: proj ( num ) 的效果与 std :: proj ( std:: complex < double > ( num ) ) 相同。
示例
#include <complex> #include <iostream> 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)
参阅
|
返回复数的模
(函数模板) |
|
|
返回模的平方
(函数模板) |
|
|
通过模和辐角构造复数
(函数模板) |
|
|
C 文档
关于
cproj
|
|