LAL: Linear Arrangement Library 21.07.01
A library focused on algorithms on linear arrangements of graphs.
|
Uniformly random generation of planar arrangements of a labeled rooted tree. More...
#include <rand_planar_arrangements.hpp>
Public Member Functions | |
rand_planar_arrangements (const graphs::free_tree &T, uint32_t seed=0) noexcept | |
Constructor with a constant reference to a free tree. | |
rand_planar_arrangements (const graphs::rooted_tree &T, uint32_t seed=0) noexcept | |
Constructor with a constant reference to a rooted tree. | |
rand_planar_arrangements (const rand_planar_arrangements &Gen)=default | |
Default copy constructor. | |
rand_planar_arrangements (rand_planar_arrangements &&Gen)=default | |
Default move constructor. | |
~rand_planar_arrangements ()=default | |
Default destructor. | |
linear_arrangement | get_arrangement () noexcept |
Make a random planar arrangement of a rooted tree. | |
linear_arrangement | yield_arrangement () noexcept |
Returns a random planar arrangement. | |
Private Attributes | |
graphs::free_tree | m_T_copy |
A copy of a free tree. | |
const graphs::free_tree & | m_T |
The free tree of which we are making planar arrangements uniformly at random. | |
std::vector< std::vector< node > > | m_rdata |
The random data for all vertices. | |
std::mt19937 | m_gen |
Random number generator. | |
Uniformly random generation of planar arrangements of a labeled rooted tree.
A planar arrangement of a directed rooted tree is one in which the root is not covered by any of the tree's edges and there are no edge crossings.
An example of usage of this class is
Equivalently,
|
noexcept |
Constructor with a constant reference to a free tree.
T | Input free tree |
seed | The seed used for the random generator. If the seed is 0 then a random seed is generated and used. |
|
noexcept |
Constructor with a constant reference to a rooted tree.
T | Input rooted tree. |
seed | The seed used for the random generator. If the seed is 0 then a random seed is generated and used. |
|
default |
Default copy constructor.
Gen | Random planar arrangement generator. |
|
default |
Default move constructor.
Gen | Random planar arrangement generator. |
|
noexcept |
Make a random planar arrangement of a rooted tree.
|
private |
The random data for all vertices.
This is a member of the class to avoid its initialisation at every call to get_arrangement.
|
private |
A copy of a free tree.
Used only when this class is constructed with a rooted tree.