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)
참고 항목
|
복소수의 크기를 반환합니다
(function template) |
|
|
제곱된 크기를 반환합니다
(function template) |
|
|
크기와 위상각으로부터 복소수를 생성합니다
(function template) |
|
|
C documentation
for
cproj
|
|