numeric_complex
numeric_complex (복소수 라이브러리)
std::complex는 복소수를 표현하고 조작하기 위한 클래스 템플릿이에요. <complex> 헤더에 정의되어 있어요.
출처: cppreference
본문
<complex> 헤더에 정의되어 있고, 시그니처는 다음과 같아요.
template< class T >
class complex;
(1)
template<> class complex<float>;
(2) (until C++23)
template<> class complex<double>;
(3) (until C++23)
template<> class complex<long double>;
(4) (until C++23)
cv 한정되지 않은 표준(C++23까지) 부동소수점 타입에 대한 std::complex의 특수화는 복소수를 표현·조작하기 위한 TriviallyCopyable(C++23부터) LiteralType이에요.
템플릿 매개변수 (Template parameters)
- T — 실수부와 허수부의 타입. T가 cv 한정되지 않은 표준(C++23까지) 부동소수점 타입이 아니면 동작은 지정되지 않고(컴파일 실패할 수 있음) T가 NumericType이 아니면 동작은 정의되지 않아요.
멤버 타입 (Member types)
| 멤버 타입 | 정의 |
|---|---|
| value_type | T |
멤버 함수 (Member functions)
- (constructor) — 복소수를 생성해요 (공개 멤버 함수)
- operator= — 내용을 할당해요 (공개 멤버 함수)
- real — 복소수의 실수부에 접근해요 (공개 멤버 함수)
- imag — 복소수의 허수부에 접근해요 (공개 멤버 함수)
- operator+= operator-= operator*= operator/= — 두 복소수 또는 복소수와 스칼라의 복합 할당 (공개 멤버 함수)
비멤버 함수 (Non-member functions)
- operator+ operator- — 복소수에 단항 연산자를 적용 (함수 템플릿)
- operator+ operator- operator* operator/ — 두 복소수 값 또는 복소수와 스칼라에 복소수 산술 수행 (함수 템플릿)
- operator== operator!= (C++20에서 제거) — 두 복소수 또는 복소수와 스칼라 비교 (함수 템플릿)
- operator<< operator>> — 복소수 직렬화/역직렬화 (함수 템플릿)
- get(std::complex) (C++26) — std::complex에서 실수부 또는 허수부 참조 획득 (함수 템플릿)
- real — 실수부 반환 (함수 템플릿)
- imag — 허수부 반환 (함수 템플릿)
- abs(std::complex) — 복소수의 크기 반환 (함수 템플릿)
- arg — 위상각 반환 (함수 템플릿)
- norm — 크기의 제곱 반환 (함수 템플릿)
- conj — 켤레복소수 반환 (함수 템플릿)
- proj (C++11) — 리만 구면으로의 투영 반환 (함수 템플릿)
- polar — 크기와 위상각으로 복소수 생성 (함수 템플릿)
지수 함수 (Exponential functions)
- exp(std::complex) — 복소수 밑 e 지수 (함수 템플릿)
- log(std::complex) — 복소수 자연로그 (함수 템플릿)
- log10 — 복소수 상용로그 (함수 템플릿)
- pow — 복소수 거듭제곱 (함수 템플릿)
- sqrt — 복소수 제곱근 (함수 템플릿)
(그 외 삼각·쌍곡 함수와 관련 함수들도 <complex>에 정의되어 있어요.)