50#include <lal/graphs/free_tree.hpp>
51#include <lal/generate/rand_ulab_rooted_trees.hpp>
52#include <lal/generate/tree_generator.hpp>
53#include <lal/numeric/integer.hpp>
135 void init(
const uint64_t n,
const uint64_t seed = 0) noexcept {
193 std::map<std::pair<uint64_t, uint64_t>, numeric::integer>
m_alpha;
200 std::vector<numeric::integer>
m_fn;
238 (const uint64_t m, const uint64_t q)
245 std::vector<numeric::integer>{
303 (
const uint64_t m,
const uint64_t q)
374 void init(
const uint64_t n,
const uint64_t seed = 0) noexcept {
Uniformly random selection of unlabelled free trees.
Definition rand_ulab_free_trees.hpp:74
_rand_ulab_free_trees & operator=(const _rand_ulab_free_trees &g) noexcept=default
Copy assignment operator.
const numeric::integer & get_fn(const uint64_t n) noexcept
Computes and returns the value .
void init_fn() noexcept
Initialiases m_fn with values from the OEIS (see OEIS_A000055).
Definition rand_ulab_free_trees.hpp:242
const numeric::integer & get_alpha_mq(const uint64_t m, const uint64_t q) noexcept
Computes and return the value .
~_rand_ulab_free_trees()=default
Default destructor.
std::vector< numeric::integer > m_fn
The number of free unlabelled trees.
Definition rand_ulab_free_trees.hpp:200
graphs::free_tree get_tree() noexcept
Generates uniformly at random a free unlabelled tree.
_rand_ulab_free_trees(const _rand_ulab_free_trees &Gen) noexcept=default
Copy constructor.
_rand_ulab_free_trees() noexcept
Empty constructor.
Definition rand_ulab_free_trees.hpp:79
uint64_t forest(const uint64_t m, const uint64_t q, uint64_t nt) noexcept
Generates uniformly at random a forest of m nodes.
std::pair< uint64_t, uint64_t > choose_jd_from_alpha(const uint64_t m, const uint64_t q) noexcept
Chooses uniformly at random a pair , according to some probability.
void init(const uint64_t n, const uint64_t seed=0) noexcept
Sets the size of the unlabelled trees to generate.
Definition rand_ulab_free_trees.hpp:135
void bicenter(const uint64_t n) noexcept
Generates a tree of n nodes with two centroids.
std::map< std::pair< uint64_t, uint64_t >, numeric::integer > m_alpha
Values .
Definition rand_ulab_free_trees.hpp:193
void clear() noexcept
Clears the memory used.
Definition rand_ulab_free_trees.hpp:161
_rand_ulab_free_trees(_rand_ulab_free_trees &&Gen) noexcept=default
Move constructor.
_rand_ulab_free_trees(const uint64_t n, const uint64_t seed=0) noexcept
Constructor with size of tree and seed for the random number generator.
Definition rand_ulab_free_trees.hpp:92
Uniformly random selection of unlabelled rooted trees.
Definition rand_ulab_rooted_trees.hpp:68
void init(const uint64_t n, const uint64_t seed=0) noexcept
Sets the size of the unlabelled trees to generate.
Definition rand_ulab_rooted_trees.hpp:127
void clear() noexcept
Clears the memory used.
Definition rand_ulab_rooted_trees.hpp:167
Base class for tree generators.
Definition tree_generator.hpp:123
void clear() noexcept
Clears the memory used by the generator.
Definition tree_generator.hpp:166
void init(const uint64_t n) noexcept
Initializes the tree generator.
Definition tree_generator.hpp:160
graphs::free_tree get_tree() noexcept
Definition tree_generator.hpp:196
Uniformly random selection of unlabelled free trees.
Definition rand_ulab_free_trees.hpp:331
rand_ulab_free_trees & operator=(const rand_ulab_free_trees &g) noexcept=default
Copy assignment operator.
rand_ulab_free_trees(const rand_ulab_free_trees &Gen)=default
Copy constructor.
~rand_ulab_free_trees()=default
Default destructor.
void clear() noexcept
Clear the memory used by the generator.
Definition rand_ulab_free_trees.hpp:380
_rand_ulab_free_trees m_Gen
See _rand_ulab_free_trees.
Definition rand_ulab_free_trees.hpp:402
rand_ulab_free_trees() noexcept
Empty constructor.
Definition rand_ulab_free_trees.hpp:336
graphs::free_tree __get_tree() noexcept
Returns an unlabelled free tree chosen uniformly at random.
Definition rand_ulab_free_trees.hpp:396
void init(const uint64_t n, const uint64_t seed=0) noexcept
Initializes the generator with the number of nodes and a seed.
Definition rand_ulab_free_trees.hpp:374
rand_ulab_free_trees(const uint64_t n, const uint64_t seed=0) noexcept
Constructor with size of tree and seed for the random number generator.
Definition rand_ulab_free_trees.hpp:346
graphs::free_tree yield_tree() noexcept
Yields a tree, advancing the generator if necessary.
Definition rand_ulab_free_trees.hpp:385
rand_ulab_free_trees(rand_ulab_free_trees &&Gen)=default
Move constructor.
Free tree graph class.
Definition free_tree.hpp:60
Arbitrary precision integer.
Definition integer.hpp:60
Main namespace of the library.
Definition basic_types.hpp:48