std::valarray (3) - Linux Manuals
std::valarray: std::valarray
NAME
Synopsis
Defined in header <valarray>
template< class T >
class valarray;
std::valarray is the class for representing and manipulating arrays of values. It supports element-wise mathematical operations and various forms of generalized subscript operators, slicing and indirect access.
Notes
std::valarray and helper classes are defined to be free of certain forms of aliasing, thus allowing operations on these classes to be optimized similar to the effect of the keyword restrict in the C programming language. In addition, functions and operators that take valarray arguments are allowed to return proxy objects to make it possible for the compiler to optimize an expression such as v1 = a*v2 + v3; as a single loop that executes v1[i] = a*v2[i] + v3[i]; avoiding any temporaries or multiple passes. However, expression_templates make the same optimization technique available for any C++ container, and the majority of numeric libraries prefer expression templates to valarrays for flexibility. Some C++ standard library implementations use expression templates to implement efficient operations on std::valarray (e.g. GNU libstdc++ and LLVM libc++). Only rarely are valarrays optimized any further, as in e.g. Intel_Integrated_Performance_Primitives.
Template parameters
T - the type of the elements. The type must meet the NumericType requirements
Member types
Member type Definition
value_type T
Member functions
constructor (public member function)
destructor (public member function)
operator= (public member function)
operator[] (public member function)
operator+ applies a unary arithmetic operator to each element of the valarray
operator- (public member function)
operator~
operator!
operator+=
operator-=
operator*=
operator/= applies compound assignment operator to each element of the valarray
operator%= (public member function)
operator&=
operator|=
operator^=
operator<<=
operator>>=
swap (public member function)
size (public member function)
resize (public member function)
sum (public member function)
min (public member function)
max (public member function)
shift (public member function)
cshift (public member function)
apply (public member function)
Non-member functions
std::swap(std::valarray) specializes the std::swap() algorithm
(C++11)
std::begin(std::valarray) specializes std::begin
(C++11)
std::end(std::valarray) specializes std::end
(C++11)
operator+
operator-
operator*
operator/
operator% applies binary operators to each element of two valarrays, or a valarray and a value
operator& (function template)
operator|
operator^
operator<<
operator>>
operator&&
operator||
operator==
operator!= compares two valarrays or a valarray with a value
operator< (function template)
operator<=
operator>
operator>=