20#ifndef HPCOMBI_PERM_GENERIC_HPP_
21#define HPCOMBI_PERM_GENERIC_HPP_
28#include <initializer_list>
38template <
size_t Size,
typename Expo = u
int8_t>
42 static constexpr size_t size() {
return Size; }
71static_assert(
sizeof(VectGeneric<12>) ==
sizeof(PermGeneric<12>),
72 "VectGeneric and PermGeneric have a different memory layout !");
73static_assert(std::is_trivial<PermGeneric<12>>(),
74 "PermGeneric is not trivial !");
Definition perm_generic.hpp:39
uint64_t length() const
Definition perm_generic_impl.hpp:71
PermGeneric(const vect v)
Definition perm_generic.hpp:45
bool left_weak_leq(PermGeneric other) const
Definition perm_generic_impl.hpp:104
VectGeneric< Size, Expo > vect
Definition perm_generic.hpp:40
PermGeneric operator*(const PermGeneric &p) const
Definition perm_generic.hpp:50
static PermGeneric elementary_transposition(uint64_t i)
Definition perm_generic_impl.hpp:34
static PermGeneric random()
Definition perm_generic_impl.hpp:51
static constexpr size_t size()
Definition perm_generic.hpp:42
PermGeneric inverse() const
Definition perm_generic_impl.hpp:43
uint64_t nb_cycles() const
Definition perm_generic_impl.hpp:90
vect lehmer() const
Definition perm_generic_impl.hpp:61
static PermGeneric one()
Definition perm_generic.hpp:53
uint64_t nb_descents() const
Definition perm_generic_impl.hpp:81
A generic class for combinatorial integer vectors.
Definition vect_generic.hpp:48
array v
Definition vect_generic.hpp:51
VectGeneric permuted(const VectGeneric &u) const
Definition vect_generic.hpp:106