Common mathematical functions | |||||||||||||||||||||||||||||||
Mathematical special functions(C++17) | |||||||||||||||||||||||||||||||
Mathematical constants(C++20) | |||||||||||||||||||||||||||||||
Basic linear algebra algorithms(C++26) | |||||||||||||||||||||||||||||||
Data-parallel types (SIMD)(C++26) | |||||||||||||||||||||||||||||||
Floating-point environment(C++11) | |||||||||||||||||||||||||||||||
Complex numbers | |||||||||||||||||||||||||||||||
Numeric array (valarray ) | |||||||||||||||||||||||||||||||
Pseudo-random number generation | |||||||||||||||||||||||||||||||
Bit manipulation(C++20) | |||||||||||||||||||||||||||||||
Saturation arithmetic(C++26) | |||||||||||||||||||||||||||||||
Factor operations | |||||||||||||||||||||||||||||||
|
| ||||||||||||||||||||||||||||||
Interpolations | |||||||||||||||||||||||||||||||
|
| ||||||||||||||||||||||||||||||
Generic numeric operations | |||||||||||||||||||||||||||||||
| |||||||||||||||||||||||||||||||
C-style checked integer arithmetic | |||||||||||||||||||||||||||||||
|
Member functions | |||||||||||
| |||||||||||
Non-member functions | |||||||||||
Helper classes | |||||||||||
Deduction guides(C++17) |
valarray<T> operator+()const; | (1) | |
valarray<T> operator-()const; | (2) | |
valarray<T> operator~()const; | (3) | |
valarray<bool> operator!()const; | (4) | |
Applies unary operators to each element in the numeric array.
Contents |
(none)
A numeric array containing elements with values obtained by applying corresponding operator to the values in*this.
May throw implementation-defined exceptions.
Each of the operators can only be instantiated if the following requirements are met:
T
.T
(1-3) orbool (4).The function can be implemented with the return type different fromstd::valarray. In this case, the replacement type has the following properties:
#include <iostream>#include <string_view>#include <valarray> template<typename T>void print(std::string_viewconst note,std::valarray<T>const vala,// by-value, see Notes abovestd::string_viewconst term="\n"){std::cout<< note<<std::boolalpha<<std::showpos;for(Tconst element: vala)std::cout<<'\t'<< element;std::cout<< term;} int main(){std::valarray<int> x{1,2,3,4}; print<int>("x: ", x); print<int>("+x: ",+x); print<int>("+ + x: ",++ x); print<int>("-x: ",-x); print<int>("- - x: ",-- x,"\n\n"); std::valarray<short> y{0,1,-1,0x7fff}; print<short>("y: ", y); print<short>("~y: ", ~y); print<short>("~~y: ", ~~y,"\n\n"); std::valarray<bool> z{true,false}; print<bool>("z: ", z); print<bool>("!z: ",!z); print<bool>("!!z: ",!!z);}
Possible output:
x: +1 +2 +3 +4+x: +1 +2 +3 +4+ + x: +1 +2 +3 +4-x: -1 -2 -3 -4- - x: +1 +2 +3 +4 y: +0 +1 -1 +32767~y: -1 -2 +0 -32768~~y: +0 +1 -1 +32767 z: true false!z: false true!!z: true false
applies compound assignment operator to each element of the valarray (public member function)[edit] | |
applies binary operators to each element of two valarrays, or a valarray and a value (function template)[edit] |