Пространства имён
Варианты
Действия

std::valarray

Материал из cppreference.com
< cpp‎ | numeric
 
 
 
 
Определено в заголовочном файле <valarray>
template< class T >
class valarray;

std::valarray это класс для представления массивов значений и управления ими. Он поддерживает поэлементные математические операции и различные формы обобщённых индексирующих операторов, нарезки и косвенный доступ.

Содержание

[править] Примечание

std::valarray и вспомогательные классы определены как свободные от определенных форм псевдонимов, что позволяет оптимизировать операции над этими классами аналогично эффекту ключевого слова restrict в языке программирования C. Кроме того, функциям и операторам, которые принимают аргументы valarray, разрешено возвращать прокси-объекты, чтобы компилятор мог оптимизировать такие выражения, как v1 = a*v2 + v3; как единый цикл, который выполняет v1[i] = a*v2[i] + v3[i];, избегая каких-либо временных или множественных проходов. Однако, шаблоны выражений делают ту же технику оптимизации доступной для любого контейнера C++, и большинство числовых библиотек предпочитают шаблоны выражений массивов значений для гибкости. Некоторые реализации стандартной библиотеки C++ используют шаблоны выражений для реализации эффективных операций над std::valarray (например, GNU libstdc++ и LLVM libc++). Только изредка массивы значений оптимизируются дальше, как, например, в Интегрированные Примитивы Производительности Intel.

[править] Параметры шаблона

T тип элементов. Тип должен соответствовать требованиям NumericType

[править] Типы элементы

Тип элемент Определение
value_type T

[править] Функции-элементы

создаёт новый числовой массив
(public функция-элемент) [править]
разрушает числовой массив
(public функция-элемент) [править]
присваивает содержимое
(public функция-элемент) [править]
получает/устанавливает элемент valarray, срез или маску
(public функция-элемент) [править]
применяют унарные арифметические операции к каждому элементу valarray
(public функция-элемент) [править]
применяют составной оператор присваивания к каждому элементу valarray
(public функция-элемент) [править]
обменивается с другим valarray
(public функция-элемент) [править]
возвращает размер valarray
(public функция-элемент) [править]
изменяет размер valarray
(public функция-элемент) [править]
вычисляет сумму всех элементов
(public функция-элемент) [править]
возвращает наименьший элемент
(public функция-элемент) [править]
возвращает наибольший элемент
(public функция-элемент) [править]
сдвигает элементы valarray с нулевым заполнением
(public функция-элемент) [править]
циклический сдвиг элементов valarray
(public функция-элемент) [править]
применяет функцию к каждому элементу valarray
(public функция-элемент) [править]

[править] Функции, не являющиеся элементами

специализация алгоритма std::swap
(шаблон функции) [править]
перегружает std::begin
(шаблон функции) [править]
специализация std::end
(шаблон функции) [править]
применяют бинарные операторы к каждому элементу двух valarray или valarray и значению
(шаблон функции) [править]
сравнивает два valarray или valarray со значением
(шаблон функции) [править]
применяет функцию abs к каждому элементу valarray
(шаблон функции) [править]
Экспоненциальные функции
применяет функцию std::exp к каждому элементу valarray
(шаблон функции) [править]
применяет функцию std::log к каждому элементу valarray
(шаблон функции) [править]
применяет функцию std::log10 к каждому элементу valarray
(шаблон функции) [править]
Степенные функции
применяет функцию std::pow к двум valarray или 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 к каждому элементу valarray
(шаблон функции) [править]

[править] Вспомогательные классы

BLAS-подобный фрагмент valarray: начальный индекс, длина, шаг
(класс) [править]
прокси для подмножества valarray после применения slice
(шаблон класса) [править]
обобщенный фрагмент valarray: начальный индекс, набор длин, набор шагов
(класс) [править]
прокси для подмножества valarray после применения gslice
(шаблон класса) [править]
прокси для подмножества valarray после применения логической маски operator[]
(шаблон класса) [править]
прокси для подмножества valarray после применения косвенного operator[]
(шаблон класса) [править]

[править] Принципы вывода (начиная с C++17)

[править] Смотрите также

Шаблон:cpp/experimental/simd/dsc simd mask
(ТС параллелизма v2)
тип вектора параллельных данных
(шаблон класса) [править]