E.V.E
v2023.02.15
Loading...
Searching...
No Matches

◆ exp

auto eve::exp = functor<exp_t>
inlineconstexpr

External references

Example

// revision 1
#include <eve/module/math.hpp>
#include <iostream>
int main()
{
eve::wide wf = {0.0f, -0.0f, -1.0f, 1.0f, 2.0f,
std::cout << "<- wf = " << wf << "\n";
std::cout << "-> exp(wf) = " << eve::exp(wf) << "\n";
std::cout << "-> exp[raw](wf) = " << eve::exp[eve::raw](wf) << "\n";
std::cout << "-> exp[ignore_last(2)](wf)= " << eve::exp[eve::ignore_last(2)](wf) << "\n";
std::cout << "-> exp[wf != 2.0f](wf) = " << eve::exp[wf != 2.0f](wf) << "\n";
std::cout << eve::exp[eve::raw](1.0) << std::endl;
std::cout << eve::exp[eve::raw](1.0f) << std::endl;
}
constexpr auto nan
Computes the IEEE quiet NaN constant.
Definition nan.hpp:67
constexpr auto inf
Computes the infinity ieee value.
Definition inf.hpp:67
constexpr auto exp
elementwise_callable object computing .
Definition exp.hpp:89
Lightweight type-wrapper.
Definition as.hpp:29
Conditional expression ignoring the k last lanes from a eve::simd_value.
Definition conditional.hpp:353
Wrapper for SIMD registers.
Definition wide.hpp:94

Header file

#include <eve/module/math.hpp>

Callable Signatures

namespace eve
{
// Regular overload
constexpr auto exp(floating_value auto x) noexcept; // 1
// Lanes masking
constexpr auto exp[conditional_expr auto c](floating_value auto x) noexcept; // 2
constexpr auto exp[logical_value auto m](floating_value auto x) noexcept; // 2
constexpr auto exp[raw](floating_value auto x) noexcept; // 3
constexpr auto exp[fast ](floating_value auto x) noexcept; // 3
}
Specifies that a type is a Conditional Expression.
Definition conditional.hpp:28
The concept floating_value<T> is satisfied if and only if T satisfies eve::value and the element type...
Definition value.hpp:116
The concept logical_value<T> is satisfied if and only if T satisfies eve::value and the element type ...
Definition value.hpp:134
EVE Main Namespace.
Definition abi.hpp:19

Parameters

Return value

  1. Returns the elementwise natural exponential of the input. In particular:
    • If the element is \(\pm0\), \(1\) is returned
    • If the element is \(-\infty\), \(+0\) is returned
    • If the element is \(\infty\), \(\infty\) is returned
    • If the element is a NaN, NaN is returned
  2. The operation is performed conditionnaly.
  3. The raw and fast options use the very fast and quite inacurate Schraudolph's algorithm. and the implementation is largely inspired by pmineiro library. raw generally provides around 5%