From cppreference.com
template<classT>valarray<T>exp(constvalarray<T>&va);For each element in va computes e raised to the power equal to the value of the element.
Parameters
va - value array to apply the operation to Return value
Value array containing e raised by the values in va.
Notes
Unqualified function (exp) is used to perform the computation. If such function is not available, std::exp is used due to
.
The function can be implemented with the return type different from
. In this case, the replacement type has the following properties:
All const member functions of
are provided.
,
,
,
and
can be constructed from the replacement type.
For every function taking a conststd::valarray<T>&except
and
(since C++11), identical functions taking the replacement types shall be added;
For every function taking two conststd::valarray<T>& arguments, identical functions taking every combination of conststd::valarray<T>& and replacement types shall be added.
The return type does not add more than two levels of template nesting over the most deeply-nested argument type.
Possible implementation
template<classT>valarray<T>exp(constvalarray<T>&va){valarray<T>other=va;for(T&i:other)i=exp(i);returnother;// proxy object may be returned}Example
This example demonstrates the
and the related exponents.
Run this code
#include<complex>#include<iostream>#include<numbers>#include<valarray>intmain(){constdoublepi=std::numbers::pi;std::valarray<std::complex<double>>v={{0,0},{0,pi/2},{0,pi},{0,3*pi/2},{0,2*pi}};std::valarray<std::complex<double>>v2=std::exp(v);for(std::cout<<std::showpos<<std::fixed;auton:v2)std::cout<<n<<'\n';}Output:
(+1.000000,+0.000000) (+0.000000,+1.000000) (-1.000000,+0.000000) (-0.000000,-1.000000) (+1.000000,-0.000000) See also