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

◆ exp2

auto eve::exp2 = functor<exp2_t>
inlineconstexpr

Header file

#include <eve/module/math.hpp>

Callable Signatures

namespace eve
{
// Regular overload
constexpr auto exp2(value auto x) noexcept; // 1
// Lanes masking
constexpr auto exp2[conditional_expr auto c](value auto x) noexcept; // 2
constexpr auto exp2[logical_value auto m](value auto x) noexcept; // 2
}
Specifies that a type is a Conditional Expression.
Definition conditional.hpp:28
The concept logical_value<T> is satisfied if and only if T satisfies eve::value and the element type ...
Definition value.hpp:132
The concept value<T> is satisfied if and only if T satisfies either eve::scalar_value or eve::simd_va...
Definition value.hpp:34
constexpr auto exp2
elementwise_callable object computing .
Definition exp2.hpp:90
EVE Main Namespace.
Definition abi.hpp:18

Parameters

Return value

  1. Returns the elementwise exponential of base 2 of the input. In particular, for floating inputs:
    • 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.

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,
eve::wide<std::int32_t> wi([](auto i, auto c)->std::int32_t{ return i+c/2;});
eve::wide<std::uint32_t> wu([](auto i, auto )->std::uint32_t{ return i;});
std::cout << "<- wf = " << wf << "\n";
std::cout << "<- wi = " << wi << "\n";
std::cout << "<- wu = " << wu << "\n";
std::cout << "-> exp2(wf) = " << eve::exp2(wf) << "\n";
std::cout << "-> exp2(wi) = " << eve::exp2(wi) << "\n";
std::cout << "-> exp2(wu) = " << eve::exp2(wu) << "\n";
std::cout << "-> exp2[ignore_last(2)](wf)= " << eve::exp2[eve::ignore_last(2)](wf) << "\n";
std::cout << "-> exp2[ignore_last(2)](wi)= " << eve::exp2[eve::ignore_last(2)](wi) << "\n";
std::cout << "-> exp2[ignore_last(2)](wu)= " << eve::exp2[eve::ignore_last(2)](wu) << "\n";
std::cout << "-> exp2[wf != 2.0f](wf) = " << eve::exp2[wf != 2.0f](wf) << "\n";
std::cout << "-> exp2[wi != 4](wi) = " << eve::exp2[wi != -2](wi) << "\n";
std::cout << "-> exp2[wu != 2u](wu) = " << eve::exp2[wu != 2u](wu) << "\n";
}
constexpr auto nan
Computes the IEEE quiet NaN constant.
Definition nan.hpp:67
constexpr auto inf
Computes the infinity ieee value.
Definition inf.hpp:66
constexpr auto minf
Computes the -infinity ieee value.
Definition minf.hpp:66
Lightweight type-wrapper.
Definition as.hpp:29
Conditional expression ignoring the k last lanes from a eve::simd_value.
Definition conditional.hpp:332
Wrapper for SIMD registers.
Definition wide.hpp:70