HPCombi
High Performance Combinatorics in C++ using vector instructions v1.1.0
Loading...
Searching...
No Matches
HPCombi::Transf16 Struct Reference

Full transformation of \(\{0\dots 15\}\): a transformation is a mapping of a set of n elements into itself; ie as opposed to a permutation, it is not necessarily injective. More...

#include <perm16.hpp>

Inheritance diagram for HPCombi::Transf16:
HPCombi::PTransf16 HPCombi::Vect16 HPCombi::Perm16

Public Member Functions

 Transf16 ()=default
constexpr Transf16 (const Transf16 &vv)=default
constexpr Transf16 (const vect vv)
constexpr Transf16 (const epu8 x)
 Transf16 (std::initializer_list< uint8_t > il)
Transf16operator= (const Transf16 &)=default
bool validate (size_t k=16) const
 Return whether *this is a well constructed object.
Transf16 operator* (const Transf16 &p) const
 The product of two transformations.
 Transf16 (uint64_t compressed)
 Construct a transformation from its 64 bits compressed.
 operator uint64_t () const
 The 64 bit compressed form of a transformation.
Public Member Functions inherited from HPCombi::PTransf16
 PTransf16 ()=default
constexpr PTransf16 (const vect vv)
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
arrayas_array ()
const arrayas_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 Transf16 one ()
 The identity transformation.
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

Detailed Description

Full transformation of \(\{0\dots 15\}\): a transformation is a mapping of a set of n elements into itself; ie as opposed to a permutation, it is not necessarily injective.

Here n is hard-coded to 16.

Constructor & Destructor Documentation

◆ Transf16() [1/6]

HPCombi::Transf16::Transf16 ( )
default

◆ Transf16() [2/6]

HPCombi::Transf16::Transf16 ( const Transf16 & vv)
constexprdefault

◆ Transf16() [3/6]

HPCombi::Transf16::Transf16 ( const vect vv)
inlineconstexpr

◆ Transf16() [4/6]

HPCombi::Transf16::Transf16 ( const epu8 x)
inlineconstexpr

◆ Transf16() [5/6]

HPCombi::Transf16::Transf16 ( std::initializer_list< uint8_t > il)
inline

◆ Transf16() [6/6]

HPCombi::Transf16::Transf16 ( uint64_t compressed)
inlineexplicit

Construct a transformation from its 64 bits compressed.

Member Function Documentation

◆ one()

constexpr Transf16 HPCombi::Transf16::one ( )
inlinestaticconstexpr

The identity transformation.

◆ operator uint64_t()

HPCombi::Transf16::operator uint64_t ( ) const
inlineexplicit

The 64 bit compressed form of a transformation.

◆ operator*()

Transf16 HPCombi::Transf16::operator* ( const Transf16 & p) const
inline

The product of two transformations.

◆ operator=()

Transf16 & HPCombi::Transf16::operator= ( const Transf16 & )
default

◆ validate()

bool HPCombi::Transf16::validate ( size_t k = 16) const
inline

Return whether *this is a well constructed object.


The documentation for this struct was generated from the following files: