49#include <lal/linear_arrangement.hpp>
50#include <lal/graphs/graph.hpp>
106 std::random_device rd;
107 m_gen = std::mt19937(rd());
110 m_gen = std::mt19937(seed);
Random generation of arrangements of any graph.
Definition: rand_arrangements.hpp:83
const linear_arrangement & yield_arrangement() noexcept
Returns a linear arrangement constructed uniformly at random.
Definition: rand_arrangements.hpp:123
rand_arrangements(const lal::graphs::graph &g, uint64_t seed=0) noexcept
Constructor with graph.
Definition: rand_arrangements.hpp:91
const uint64_t m_n
Number of vertices.
Definition: rand_arrangements.hpp:129
const linear_arrangement & get_arrangement() noexcept
Returns a linear arrangement constructed uniformly at random.
Definition: rand_arrangements.hpp:116
rand_arrangements(uint64_t n, uint64_t seed=0) noexcept
Constructor with number of vertices.
Definition: rand_arrangements.hpp:101
linear_arrangement m_arr
The arrangement generated by this class.
Definition: rand_arrangements.hpp:137
std::mt19937 m_gen
Random number generator.
Definition: rand_arrangements.hpp:131
Abstract class for graphs.
Definition: graph.hpp:69
Linear arrangement of vertices.
Definition: linear_arrangement.hpp:103
static linear_arrangement identity(std::size_t n) noexcept
Constructs a linear arrangement from an inverse arrangement.
Definition: linear_arrangement.hpp:444
void update_inverse() noexcept
Updates the inverse arrangement using the direct arrangement.
Definition: linear_arrangement.hpp:474
node * begin_direct() noexcept
Pointer to beginning of direct arrangement.
Definition: linear_arrangement.hpp:481
node * end_direct() noexcept
Pointer to end of direct arrangement.
Definition: linear_arrangement.hpp:485
Main namespace of the library.
Definition: basic_types.hpp:50