E.V.E
v2022.09.01

◆ oneminus

eve::oneminus = {}
inlineconstexpr

Computes the value of one minus the input.

Defined in Header

#include <eve/module/core.hpp>

Callable Signatures

namespace eve
{
template< eve::value T >
T oneminus(T x) noexcept;
}
constexpr callable_oneminus_ oneminus
Computes the value of one minus the input.
Definition: oneminus.hpp:76
Definition: all_of.hpp:22

Parameters

Return value

The value of 1-x is returned.

Note
If an element of the expected result is not representable in the result type, the corresponding result element is undefined.

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};
wide_ft pf = { 0.2, 1, 2.4, 3, -1, -3.7, -327.67, -32768.4};
std::cout
<< "---- simd" << '\n'
<< "<- pi = " << pi << '\n'
<< "-> oneminus(pi) = " << eve::oneminus(pi) << '\n'
<< "-> oneminus(pf)) = " << eve::oneminus(pf) << '\n';
float xf = 2.0f;
std::cout
<< "---- scalar" << '\n'
<< "<- xf = " << xf << '\n'
<< "-> oneminus(xf) = " << eve::oneminus(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::oneminus[mask](x, ...) provides a masked version of oneminus which is equivalent to if_else(mask, oneminus(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};
    wide_ft pf = { 0.2, 1, 2.4, 3, -1, -3.7, -327.67, -32768.4};
    std::cout
    << "---- simd" << '\n'
    << "<- pi = " << pi << '\n'
    << "-> oneminus[pi < 0](pi) = " << eve::oneminus[pi < 0](pi) << '\n'
    << "-> oneminus[pf < 0](pf)) = " << eve::oneminus[pf < 0](pf) << '\n';
    return 0;
    }
  • eve::saturated

    The call saturated(oneminus)(x) is semantically equivalent to eve::saturated(eve::sub)( eve::one (as(x)), x) and is never undefined.

    Example

    #include <eve/module/core.hpp>
    #include <eve/wide.hpp>
    #include <iostream>
    int main()
    {
    wide_ft pf = {0, 1, 2, -128};
    std::cout << "---- simd" << '\n'
    << "<- pf = " << pf << '\n'
    << "-> saturated(oneminus)(pf) = " << eve::saturated(eve::oneminus)(pf) << '\n';
    return 0;
    }
    constexpr saturated_type const saturated
    Higher-order Callable Object imbuing saturation semantic onto other Callable Objects.
    Definition: saturated.hpp:68