23#ifndef HPCOMBI_PERM_GENERIC_HPP_
24#define HPCOMBI_PERM_GENERIC_HPP_
31#include <initializer_list>
49template <
size_t Size,
typename Expo = u
int8_t>
53 static constexpr size_t size() {
return Size; }
82static_assert(
sizeof(VectGeneric<12>) ==
sizeof(PermGeneric<12>),
83 "VectGeneric and PermGeneric have a different memory layout !");
84static_assert(std::is_trivial<PermGeneric<12>>(),
85 "PermGeneric is not trivial !");
defines the macro HPCOMBI_ASSERT
implementation of perm_generic.hpp ; this file should not be included directly.
Vanilla (ie NOT optimized) implementation of a permutation, used to check for test correctness and as...
Definition perm_generic.hpp:50
uint64_t length() const
Definition perm_generic_impl.hpp:75
PermGeneric(const vect v)
Definition perm_generic.hpp:56
bool left_weak_leq(PermGeneric other) const
Definition perm_generic_impl.hpp:108
VectGeneric< Size, Expo > vect
Definition perm_generic.hpp:51
PermGeneric operator*(const PermGeneric &p) const
Definition perm_generic.hpp:61
static PermGeneric elementary_transposition(uint64_t i)
Definition perm_generic_impl.hpp:38
static PermGeneric random()
Definition perm_generic_impl.hpp:55
static constexpr size_t size()
Definition perm_generic.hpp:53
PermGeneric inverse() const
Definition perm_generic_impl.hpp:47
uint64_t nb_cycles() const
Definition perm_generic_impl.hpp:94
vect lehmer() const
Definition perm_generic_impl.hpp:65
static PermGeneric one()
Definition perm_generic.hpp:64
uint64_t nb_descents() const
Definition perm_generic_impl.hpp:85
array v
Definition vect_generic.hpp:59
VectGeneric permuted(const VectGeneric &u) const
Definition vect_generic.hpp:114