Difference between revisions of "cpp/numeric/valarray"
(correction to implementation note) |
m (r2.7.3) (Robot: Adding de, es, fr, it, ja, pt, ru, zh) |
||
Line 78: | Line 78: | ||
{{dcl list template | cpp/numeric/valarray/dcl list indirect_array}} | {{dcl list template | cpp/numeric/valarray/dcl list indirect_array}} | ||
{{dcl list end}} | {{dcl list end}} | ||
+ | |||
+ | [[de:cpp/numeric/valarray]] | ||
+ | [[es:cpp/numeric/valarray]] | ||
+ | [[fr:cpp/numeric/valarray]] | ||
+ | [[it:cpp/numeric/valarray]] | ||
+ | [[ja:cpp/numeric/valarray]] | ||
+ | [[pt:cpp/numeric/valarray]] | ||
+ | [[ru:cpp/numeric/valarray]] | ||
+ | [[zh:cpp/numeric/valarray]] |
Revision as of 14:38, 2 November 2012
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.
Contents |
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++), and only rarely valarrays are optimized any further, e.g. in Intel Parallel Studio.
Member types
Member type | Definition |
value_type
|
T
|