E.V.E
v2022.03.00

◆ sign_alternate

eve::sign_alternate = {}
inlineconstexpr

Computes \((-1)^n\).

Defined in Header

#include <eve/module/core.hpp>

Callable Signatures

namespace eve
{
template< eve::signed_value T >
T sign_alternate(T n) noexcept;
}
constexpr callable_sign_alternate_ sign_alternate
Computes .
Definition: sign_alternate.hpp:62
Definition: all_of.hpp:22

Parameters

  • n : argument. Must be signed integral or flint.

Return value

\((-1)^n\) is returned.

Example

#include <eve/module/core.hpp>
#include <eve/wide.hpp>
#include <iostream>
int main()
{
wide_it pi = { 0, 1, 2, 3, -1, -32766, 32767, -32768};
std::cout
<< "---- simd" << '\n'
<< "<- pi = " << pi << '\n'
<< "-> sign_alternate(pi) = " << eve::sign_alternate(pi) << '\n';
float xf = 2.0f;
std::cout
<< "---- scalar" << '\n'
<< "<- xf = " << xf << '\n'
<< "-> sign_alternate(xf) = " << eve::sign_alternate(xf) << '\n';
return 0;
}
constexpr callable_pi_ pi
Callable object computing the constant .
Definition: pi.hpp:49
Wrapper for SIMD registers.
Definition: wide.hpp:65

Semantic Modifiers

  • Masked Call

    The call eve;sign_alternate[mask](x) provides a masked version of eve::sign_alternate which is equivalent to if_else (mask, sign_alternate(x), x).

    Example

    #include <eve/module/core.hpp>
    #include <eve/wide.hpp>
    #include <iostream>
    int main()
    {
    wide_it pi = { 0, 1, 2, 3, -1, 32766, 32767, -32768};
    std::cout
    << "---- simd" << '\n'
    << "<- pi = " << pi << '\n'
    << "-> sign_alternate[pi < 2](pi) = " << eve::sign_alternate[pi < 2](pi) << '\n';
    return 0;
    }