HPCombi
High Performance Combinatorics in C++ using vector instructions v1.0.0
|
Partial permutation of \(\{0, \dots, 15\}\). More...
#include <perm16.hpp>
Public Member Functions | |
PPerm16 ()=default | |
constexpr | PPerm16 (const PPerm16 &v)=default |
constexpr | PPerm16 (const vect v) |
constexpr | PPerm16 (const epu8 x) |
PPerm16 (std::vector< uint8_t > dom, std::vector< uint8_t > rng, size_t=0) | |
PPerm16 (std::initializer_list< uint8_t > il) | |
PPerm16 & | operator= (const PPerm16 &)=default |
bool | validate (size_t k=16) const |
Return whether *this is a well constructed object. | |
PPerm16 | operator* (const PPerm16 &p) const |
The product of two partial perrmutations. | |
PPerm16 | inverse_ref () const |
The inverse of a partial permutation. | |
PPerm16 | right_one () const |
PPerm16 | left_one () const |
Public Member Functions inherited from HPCombi::PTransf16 | |
PTransf16 ()=default | |
constexpr | PTransf16 (const vect v) |
constexpr | PTransf16 (const epu8 x) |
PTransf16 (std::vector< uint8_t > dom, std::vector< uint8_t > rng, size_t=0) | |
PTransf16 (std::initializer_list< uint8_t > il) | |
bool | validate (size_t k=16) const |
Return whether *this is a well constructed object. | |
PTransf16 | operator* (const PTransf16 &p) const |
The product of two partial transformations. | |
epu8 | image_mask_cmpestrm (bool complement=false) const |
Returns a mask for the image of *this . | |
epu8 | image_mask_ref (bool complement=false) const |
Returns a mask for the image of *this . | |
epu8 | image_mask (bool complement=false) const |
uint32_t | image_bitset (bool complement=false) const |
Returns a bit mask for the image of *this . | |
epu8 | domain_mask (bool complement=false) const |
Returns a mask for the domain of *this . | |
uint32_t | domain_bitset (bool complement=false) const |
Returns a bit mask for the domain of *this . | |
PTransf16 | right_one () const |
Returns the partial right identity for *this . | |
PTransf16 | left_one () const |
Returns the partial left identity for *this . | |
uint32_t | rank_ref () const |
Returns the size of the image of *this . | |
uint32_t | rank () const |
Returns the size of the image of *this . | |
uint32_t | rank_cmpestrm () const |
Returns the size of the image of *this . | |
epu8 | fix_points_mask (bool complement=false) const |
Returns a mask for the fix point of *this . | |
uint32_t | fix_points_bitset (bool complement=false) const |
Returns a bit mask for the fix point of *this . | |
uint8_t | smallest_fix_point () const |
Returns the smallest fix point of *this . | |
uint8_t | smallest_moved_point () const |
Returns the smallest non fix point of *this . | |
uint8_t | largest_fix_point () const |
Returns the largest fix point of *this . | |
uint8_t | largest_moved_point () const |
Returns the largest non fix point of *this . | |
uint8_t | nb_fix_points () const |
Returns the number of fix points of *this . | |
Public Member Functions inherited from HPCombi::Vect16 | |
Vect16 ()=default | |
constexpr | Vect16 (epu8 x) |
Vect16 (std::initializer_list< uint8_t > il, uint8_t def=0) | |
constexpr | operator epu8 () const |
array & | as_array () |
const array & | as_array () const |
const uint8_t & | operator[] (uint64_t i) const |
uint8_t & | operator[] (uint64_t i) |
size_t | first_diff (const Vect16 &u, size_t bound=size()) const |
size_t | last_diff (const Vect16 &u, size_t bound=size()) const |
size_t | first_zero (size_t bound=size()) const |
size_t | last_zero (size_t bound=size()) const |
size_t | first_non_zero (size_t bound=size()) const |
size_t | last_non_zero (size_t bound=size()) const |
const_iterator | cbegin () const |
const_iterator | cend () const |
iterator | begin () |
iterator | end () |
const_iterator | begin () const |
const_iterator | end () const |
bool | operator== (const Vect16 &b) const |
bool | operator!= (const Vect16 &b) const |
bool | operator< (const Vect16 &b) const |
int8_t | less_partial (const Vect16 &b, int k) const |
Vect16 | permuted (const Vect16 &b) const |
uint8_t | sum () const |
Vect16 | partial_sums () const |
Vect16 | eval16 () const |
bool | is_permutation () const |
bool | is_permutation (size_t k) const |
Static Public Member Functions | |
static constexpr PPerm16 | one () |
The identity partial permutations. | |
Static Public Member Functions inherited from HPCombi::PTransf16 | |
static constexpr size_t | size () |
static constexpr PTransf16 | one () |
The identity partial transformation. | |
Static Public Member Functions inherited from HPCombi::Vect16 | |
static constexpr size_t | size () |
Additional Inherited Members | |
Public Types inherited from HPCombi::PTransf16 | |
using | vect = HPCombi::Vect16 |
using | array = typename decltype(Epu8)::array |
Public Types inherited from HPCombi::Vect16 | |
using | array = typename decltype(Epu8)::array |
using | value_type = uint8_t |
using | iterator = typename array::iterator |
using | const_iterator = typename array::const_iterator |
Public Attributes inherited from HPCombi::Vect16 | |
epu8 | v |
Partial permutation of \(\{0, \dots, 15\}\).
|
default |
|
constexprdefault |
|
inlineconstexpr |
|
inlineconstexpr |
|
inline |
|
inline |
|
inline |
The inverse of a partial permutation.
*this
. The inverse of \(p\) is the unique partial permutation \(i\) such that \( p * i * p = p\) and \( i * p * i = i\) {0,0xFF,2,1,3,5,6,0xFF,8,9,0xFF,10,12,0xFF,0xFF,0xFF} *
|
inline |
|
inlinestaticconstexpr |
The identity partial permutations.
The product of two partial perrmutations.
|
inline |
|
inline |
Return whether *this
is a well constructed object.