48#include <lal/linear_arrangement.hpp>
49#include <lal/graphs/free_tree.hpp>
50#include <lal/graphs/rooted_tree.hpp>
51#include <lal/detail/array.hpp>
Exhaustive enumeration of planar arrangements of a free tree.
Definition all_planar_arrangements.hpp:101
all_planar_arrangements(const graphs::rooted_tree &T) noexcept
Constructor with rooted tree.
all_planar_arrangements(all_planar_arrangements &&Gen) noexcept=default
Default move constructor.
void reset() noexcept
Sets the generator to its initial state.
bool m_reached_end
Has the end of the generation been reached?
Definition all_planar_arrangements.hpp:191
const graphs::free_tree & m_T
Constant reference to free tree.
Definition all_planar_arrangements.hpp:180
~all_planar_arrangements() noexcept=default
Default destructor.
all_planar_arrangements(const all_planar_arrangements &Gen) noexcept=default
Default copy constructor.
linear_arrangement yield_arrangement() noexcept
Constructs the current arrangement.
Definition all_planar_arrangements.hpp:166
void initialize_intervals_tree() noexcept
Initiales the interval of every node of the tree.
detail::array< char > m_memory_bit_sort
Array for the bit sort algorithm.
Definition all_planar_arrangements.hpp:188
linear_arrangement get_arrangement() const noexcept
Constructs the current arrangement.
detail::array< std::vector< node > > m_intervals
The interval of every node of the tree.
Definition all_planar_arrangements.hpp:185
void initialize_interval_node(const node v, const node parent) noexcept
Initialize the interval of node v, whose parent vertex is parent.
node m_root
Vertex at which we root the tree.
Definition all_planar_arrangements.hpp:183
graphs::free_tree m_T_copy
A copy of a free tree.
Definition all_planar_arrangements.hpp:178
all_planar_arrangements(const graphs::free_tree &T) noexcept
Constructor with constant reference to a free tree.
void next() noexcept
Generates the next arrangement.
bool end() const noexcept
Returns whether there are more arrangements to generate.
Definition all_planar_arrangements.hpp:139
Free tree graph class.
Definition free_tree.hpp:60
Rooted tree graph class.
Definition rooted_tree.hpp:109
Linear arrangement of vertices.
Definition linear_arrangement.hpp:103
Main namespace of the library.
Definition basic_types.hpp:48
uint64_t node
Node type. See Node / Vertex page for further details.
Definition basic_types.hpp:51
Wrapper of a C array for automatic deallocation of memory.
Definition array.hpp:59