std::exp(std::valarray)(3)
π std::exp(std::valarray) π
okay so bestie, welcome to the std::exp(std::valarray) page from the C++ Standard Libary (section 3) π
β¨ no cap, this one is a tiny math baddie: it applies exp to every element of a valarray and returns a whole new value array.
πΈ NAME πΈ
std::exp(std::valarray) - std::exp(std::valarray) (yes, the name is literally the name twice; it's giving full-name energy π)
β¨ Synopsis β¨
Defined in header <valarray>
template< class T >
valarray<T> exp( const valarray<T>& va );
For each element in va, it computes e raised to the power equal to the value of the element. math girlie behavior fr fr π
π 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 argument-dependent lookup. iykyk β¨
The function can be implemented with the return type different from std::valarray. In this case, the replacement type has the following properties:
- All
constmember functions ofstd::valarrayare provided. std::valarray,std::slice_array,std::gslice_array,std::mask_arrayandstd::indirect_arraycan be constructed from the replacement type.- For every function taking a
const std::valarray<T>&exceptbegin()andend()(since C++11), identical functions taking the replacement types shall be added; - For every function taking two
const std::valarray<T>&arguments, identical functions taking every combination ofconst std::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 π§
here's the possible implementation, exactly as the page shows it:
template<class T>
valarray<T> exp(const valarray<T>& va)
{
valarray<T> other = va;
for (T& i : other)
i = exp(i);
return other; // proxy object may be returned
}
π Example π
This example demonstrates the Euler's identity e^(iΟ) = -1 and the related exponents. iconic math moment π
// Run this code
#include <complex>
#include <iostream>
#include <numbers>
#include <valarray>
int main()
{
const double pi = 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; auto n : 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 π
log(std::valarray)applies the functionstd::logto each element of valarray (function template)expexpfreturns e raised to the given power (\({\small e^x}\)e^x)expl(function)(C++11)(C++11)exp(std::complex)complex base e exponential (function template)
π Hidden category: π
- Pages with unreviewed LWG DR marker
made with π from http://cppreference.com β version/date 2024.06.10 β page std::exp(std::valarray)(3) π«Άβ¨
π¦ where this page comes from
- nixpkgs unstable: stdman 2024.07.05
- opensuse-leap 16.0: stdman 2024.07.05-bp160.1.9 Β· MIT
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms