45#include <lal/graphs/free_tree.hpp>
46#include <lal/generate/tree_generator.hpp>
47#include <lal/internal/data_array.hpp>
163 internal::data_array<uint32_t>
m_L;
168 internal::data_array<uint32_t>
m_W;
Base class for tree generators.
Definition tree_generator.hpp:87
tree_type_t get_tree() noexcept
Definition tree_generator.hpp:146
Exhaustive enumeration of unlabelled free trees.
Definition all_ulab_free_trees.hpp:99
bool m_reached_end
Has the end of the generation been reached?
Definition all_ulab_free_trees.hpp:198
void reset() noexcept
Sets the generator to its initial state.
Definition all_ulab_free_trees.hpp:138
uint32_t m_r
Exactly .
Definition all_ulab_free_trees.hpp:191
void __reset() noexcept
Sets the generator to its initial state.
uint32_t m_h2
Maximum level number in the second principal subsequence.
Definition all_ulab_free_trees.hpp:178
bool end() const noexcept
Returns true if the end of the iteration was reached.
Definition all_ulab_free_trees.hpp:124
bool m_is_last
Was the last tree generated?
Definition all_ulab_free_trees.hpp:194
bool m_first_it
First time calling next().
Definition all_ulab_free_trees.hpp:196
all_ulab_free_trees(uint32_t n) noexcept
Constructor with number of nodes.
uint32_t m_q
Largest integer such that .
Definition all_ulab_free_trees.hpp:173
internal::data_array< uint32_t > m_L
Canonical level sequence of the tree.
Definition all_ulab_free_trees.hpp:163
uint32_t m_h1
Maximum level number in the first principal subsequence.
Definition all_ulab_free_trees.hpp:176
internal::data_array< uint32_t > m_W
is the subscript of the level number in corresponding to the parent of the node corresponding to .
Definition all_ulab_free_trees.hpp:168
graphs::free_tree yield_tree() noexcept
Yields a tree, advancing the generator if necessary.
Definition all_ulab_free_trees.hpp:143
uint32_t m_p
Largest integer such that .
Definition all_ulab_free_trees.hpp:171
~all_ulab_free_trees() noexcept=default
Default destructor.
all_ulab_free_trees(const all_ulab_free_trees &Gen)=default
Copy constructor.
void next() noexcept
Generates next tree.
graphs::free_tree __get_tree() noexcept
Constructs the current tree.
all_ulab_free_trees(all_ulab_free_trees &&Gen)=default
Move constructor.
uint32_t m_c
An index to the first element of .
Definition all_ulab_free_trees.hpp:185
Free tree graph class.
Definition free_tree.hpp:59
Main namespace of the library.
Definition definitions.hpp:48