Namespaces
Variants

std:: valarray

From cppreference.net
Определено в заголовочном файле <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++, и большинство числовых библиотек предпочитают шаблоны выражений valarray ради гибкости. Некоторые реализации стандартной библиотеки C++ используют шаблоны выражений для реализации эффективных операций с std::valarray (например, GNU libstdc++ и LLVM libc++). Valarrays редко оптимизируются дальше, как, например, в 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)

Функции, не являющиеся членами класса

специализирует 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)

Смотрите также

удобный псевдоним-шаблон для basic_simd , который может указывать свою ширину
(псевдоним-шаблон)
удобный псевдоним-шаблон для basic_simd_mask , который может указывать свою ширину
(псевдоним-шаблон)
(parallelism TS v2)
тип вектора с параллелизмом данных
(шаблон класса)
(parallelism TS v2)
тип с параллелизмом данных с типом элементов bool
(шаблон класса)