48#include <lal/definitions.hpp>
49#include <lal/graphs/free_tree.hpp>
50#include <lal/graphs/rooted_tree.hpp>
51#include <lal/internal/data_array.hpp>
Exhaustive enumeration of planar arrangements of a labeled free tree.
Definition all_planar_arrangements.hpp:103
all_planar_arrangements(const graphs::rooted_tree &T) noexcept
Constructor with a copy of a free tree.
all_planar_arrangements(all_planar_arrangements &&Gen)=default
Default move constructor.
void reset() noexcept
Sets the generator to its initial state.
void initialise_intervals_tree() noexcept
Initiales the interval of every node of the tree.
bool m_reached_end
Has the end of the generation been reached?
Definition all_planar_arrangements.hpp:198
const graphs::free_tree & m_T
Constant reference to free tree.
Definition all_planar_arrangements.hpp:180
~all_planar_arrangements() noexcept=default
Default destructor.
linear_arrangement yield_arrangement() noexcept
Constructs the current arrangement.
Definition all_planar_arrangements.hpp:166
void initialise_interval_node(node v) noexcept
Initialise the interval of node v.
all_planar_arrangements(const all_planar_arrangements &Gen)=default
Default copy constructor.
internal::data_array< char > m_memory_bit_sort
Array for the bit sort algorithm.
Definition all_planar_arrangements.hpp:195
linear_arrangement get_arrangement() const noexcept
Constructs the current arrangement.
node m_root
Vertex at which we root the tree.
Definition all_planar_arrangements.hpp:183
std::vector< std::vector< node > > m_intervals
The interval of every node of the tree.
Definition all_planar_arrangements.hpp:185
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.
internal::data_array< node > m_parent
Parent of every node with respect to the root m_root.
Definition all_planar_arrangements.hpp:192
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:59
Rooted tree graph class.
Definition rooted_tree.hpp:107
Main namespace of the library.
Definition definitions.hpp:48
uint32_t node
Node type.
Definition definitions.hpp:51
std::vector< position > linear_arrangement
A linear arrangement of the nodes of a graph.
Definition definitions.hpp:72