E.V.E  0.1-beta

◆ slice() [1/2]

template<typename Type , typename Cardinal >
auto eve::wide< Type, Cardinal >::slice ( ) const
inline

Slice a eve::wide into two eve::wide of half cardinal. Does not participate in overload resolution if Cardinal::value == 1.

Example:

See it live on Compiler Explorer

#include <eve/wide.hpp>
#include <iostream>
int main()
{
// Generates the wide [1 ... N]
eve::wide<int> r = [](auto i, auto c) { return i + 1;};
std::cout << r << "\n";
auto[lo,hi] = r.slice();
std::cout << lo << " " << hi << "\n";
}
constexpr callable_hi_ hi
Callable object computing the higher part of the values.
Definition: hi.hpp:59
constexpr callable_lo_ lo
Callable object computing the lower part of the values.
Definition: lo.hpp:59
auto slice() const
Slice a eve::wide into two eve::wide of half cardinal. Does not participate in overload resolution if...
Definition: wide.hpp:304
Wrapper for SIMD registers.
Definition: wide.hpp:65