E.V.E
v2023.02.15
 
Loading...
Searching...
No Matches
eve::pattern_t< I > Struct Template Reference

Shuffling pattern. More...

#include <eve/pattern.hpp>

Detailed Description

template<std::ptrdiff_t... I>
struct eve::pattern_t< I >

Holds the index describing a compile-time shuffling pattern.

Template Parameters
IIndex of the shuffling pattern

Public Member Functions

constexpr std::ptrdiff_t operator() (std::ptrdiff_t i, int) const noexcept
 Returns the index to use for accessing the ith element of a shuffled eve::wide.
 
constexpr bool strictly_over (std::ptrdiff_t n) const noexcept
 Checks if all non zeroing-indexes in a pattern are greater than a given index.
 
constexpr bool strictly_under (std::ptrdiff_t n) const noexcept
 Checks if all non zeroing-indexes in a pattern are lesser than a given index.
 
constexpr bool over (std::ptrdiff_t n) const noexcept
 Checks if all non zeroing-indexes in a pattern are strictly greater or equal than a given index.
 
constexpr bool under (std::ptrdiff_t n) const noexcept
 Checks if all non zeroing-indexes in a pattern are strictly lesser or equal than a given index.
 
template<std::ptrdiff_t... J>
constexpr bool operator== (pattern_t< J... >) const noexcept
 Checks equality with another pattern.
 
template<std::ptrdiff_t... J>
constexpr bool operator!= (pattern_t< J... >) const noexcept
 Checks inequality with another pattern.
 

Static Public Member Functions

static constexpr std::ptrdiff_t size () noexcept
 Size of the pattern in number of indices.
 
static constexpr bool has_zeros () noexcept
 Checks if a pattern contains any zeroing index.
 
static constexpr bool validate (std::ptrdiff_t N) noexcept
 Ensure that a pattern don't try to reference non-existent lanes.
 

Friends

std::ostream & operator<< (std::ostream &os, pattern_t const &)
 Stream insertion operator for shuffling pattern.
 

Related Symbols

(Note that these are not member symbols.)

template<std::ptrdiff_t Sz, pattern_formula F>
constexpr auto fix_pattern (F)
 Converts a formula pattern to an index pattern.
 
template<std::ptrdiff_t N, shuffle_pattern Pattern>
constexpr auto pattern_clamp (Pattern const &) noexcept
 Clamps a pattern to a given size.
 
template<std::ptrdiff_t B, std::ptrdiff_t E, std::ptrdiff_t N, shuffle_pattern Pattern>
constexpr auto pattern_view (Pattern const &) noexcept
 Extracts a sub-pattern from an existing pattern.
 
template<std::ptrdiff_t O, std::ptrdiff_t N, shuffle_pattern Pattern>
constexpr auto slide_pattern (Pattern) noexcept