std:: valarray
|
헤더에 정의됨
<valarray>
|
||
|
template
<
class
T
>
class valarray ; |
||
std::valarray
는 값들의 배열을 표현하고 조작하기 위한 클래스입니다. 요소별 수학 연산과 다양한 형태의 일반화된 첨자 연산자, 슬라이싱 및 간접 접근을 지원합니다.
목차 |
참고 사항
std::valarray
와 헬퍼 클래스들은 특정 형태의 별칭 사용(aliasing)이 없도록 정의되어, 이러한 클래스들에 대한 연산이 C 프로그래밍 언어의
restrict
키워드의 효과와 유사하게 최적화될 수 있도록 합니다. 또한,
valarray
인수를 취하는 함수들과 연산자들은 컴파일러가
v1
=
a
*
v2
+
v3
;
와 같은 표현식을 임시 객체나 다중 패스 없이 단일 루프로 실행할 수 있도록 프록시 객체를 반환할 수 있습니다. 즉,
v1
[
i
]
=
a
*
v2
[
i
]
+
v3
[
i
]
;
와 같이 동작합니다. 그러나,
expression templates
은 동일한 최적화 기술을 어떤 C++ 컨테이너에도 사용 가능하게 하며, 대부분의 수치 라이브러리들은 유연성을 위해 valarray보다 expression templates을 선호합니다. 일부 C++ 표준 라이브러리 구현들은
std::valarray
에 대한 효율적인 연산을 구현하기 위해 expression templates을 사용합니다(예: GNU libstdc++ 및 LLVM libc++). valarray가 추가로 최적화되는 경우는 드물며, 예를 들어
Intel Integrated Performance Primitives
에서와 같습니다.
템플릿 매개변수
| T | - | 요소의 타입. 해당 타입은 NumericType 요구사항을 충족해야 함 |
멤버 타입
| 멤버 타입 | 정의 |
value_type
|
T
|
멤버 함수
|
새로운 수치 배열을 생성함
(public member function) |
|
|
수치 배열을 소멸함
(public member function) |
|
|
내용을 할당함
(public member function) |
|
|
valarray 요소, 슬라이스 또는 마스크를 가져오거나 설정함
(public member function) |
|
|
단항 산술 연산자를 valarray의 각 요소에 적용함
(public member function) |
|
|
복합 할당 연산자를 valarray의 각 요소에 적용함
(public member function) |
|
|
다른 valarray와 교환함
(public member function) |
|
|
valarray의 크기를 반환함
(public member function) |
|
|
valarray의 크기를 변경함
(public member function) |
|
|
모든 요소의 합을 계산함
(public member function) |
|
|
가장 작은 요소를 반환함
(public member function) |
|
|
가장 큰 요소를 반환함
(public member function) |
|
|
valarray의 요소들을 제로-채움 이동함
(public member function) |
|
|
valarray의 요소들을 순환 이동함
(public member function) |
|
|
함수를 valarray의 모든 요소에 적용함
(public member function) |
비멤버 함수
|
(C++11)
|
std::swap
알고리즘을 특수화합니다
(함수 템플릿) |
|
(C++11)
|
오버로드
std::begin
(함수 템플릿) |
|
(C++11)
|
std::end
전문화
(함수 템플릿) |
|
두 valarray의 각 요소에, 또는 valarray와 값에 이항 연산자를 적용합니다
(함수 템플릿) |
|
|
두 valarray를 비교하거나 valarray와 값을 비교합니다
(함수 템플릿) |
|
|
valarray의 각 요소에
abs
함수를 적용합니다
(함수 템플릿) |
|
지수 함수 |
|
|
valarray의 각 요소에
std::exp
함수를 적용합니다
(함수 템플릿) |
|
|
valarray의 각 요소에
std::log
함수를 적용합니다
(함수 템플릿) |
|
|
valarray의 각 요소에
std::log10
함수를 적용합니다
(함수 템플릿) |
|
거듭제곱 함수 |
|
|
두 개의 valarray 또는 valarray와 값에
std::pow
함수를 적용합니다
(함수 템플릿) |
|
|
valarray의 각 요소에
std::sqrt
함수를 적용합니다
(함수 템플릿) |
|
삼각 함수 |
|
|
valarray의 각 요소에
std::sin
함수를 적용합니다
(함수 템플릿) |
|
|
valarray의 각 요소에
std::cos
함수를 적용합니다
(함수 템플릿) |
|
|
valarray의 각 요소에
std::tan
함수를 적용합니다
(함수 템플릿) |
|
|
valarray의 각 요소에
std::asin
함수를 적용합니다
(함수 템플릿) |
|
|
valarray의 각 요소에
std::acos
함수를 적용합니다
(함수 템플릿) |
|
|
valarray의 각 요소에
std::atan
함수를 적용합니다
(함수 템플릿) |
|
|
valarray와 값에
std::atan2
함수를 적용합니다
(함수 템플릿) |
|
쌍곡선 함수 |
|
|
valarray의 각 요소에
std::sinh
함수를 적용합니다
(함수 템플릿) |
|
|
valarray의 각 요소에
std::cosh
함수를 적용합니다
(함수 템플릿) |
|
|
valarray의 각 요소에
std::tanh
함수를 적용합니다
(함수 템플릿) |
|
헬퍼 클래스
|
BLAS 방식의 valarray 슬라이스: 시작 인덱스, 길이, 스트라이드
(클래스) |
|
|
slice 적용 후 valarray의 부분집합에 대한 프록시
(클래스 템플릿) |
|
|
valarray의 일반화된 슬라이스: 시작 인덱스, 길이 집합, 스트라이드 집합
(클래스) |
|
|
gslice 적용 후 valarray의 부분집합에 대한 프록시
(클래스 템플릿) |
|
불리언 마스크
operator[]
적용 후 valarray의 부분집합에 대한 프록시
(클래스 템플릿) |
|
간접
operator[]
적용 후 valarray의 부분집합에 대한 프록시
(클래스 템플릿) |
추론 가이드 (C++17부터)
참고 항목
|
(C++26)
|
너비를 지정할 수 있는
basic_simd
의 편의성 앨리어스 템플릿
(앨리어스 템플릿) |
|
(C++26)
|
너비를 지정할 수 있는
basic_simd_mask
의 편의성 앨리어스 템플릿
(앨리어스 템플릿) |
|
(parallelism TS v2)
|
데이터 병렬 벡터 타입
(클래스 템플릿) |
|
(parallelism TS v2)
|
요소 타입이 bool인 데이터 병렬 타입
(클래스 템플릿) |