LAL: Linear Arrangement Library 23.01.00
A library focused on algorithms on linear arrangements of graphs.
|
Utilities for the various maximum linear arrangement algorithms. More...
Functions | |
template<place r_place, bool make_arrangement> | |
uint64_t | arrange (const std::vector< std::vector< node_size > > &L, const node r, position ini, position fin, linear_arrangement &arr) noexcept |
Make a maximum projective arrangement using the sorted, rooted adjacency list L. More... | |
uint64_t | arrange_projective (uint64_t n, const std::vector< std::vector< node_size > > &L, node r, linear_arrangement &arr) noexcept |
Wrapper method for the recursive method arrange. More... | |
uint64_t | arrange_projective (uint64_t n, const std::vector< std::vector< node_size > > &L, node r) noexcept |
Wrapper method for the recursive method arrange. More... | |
Utilities for the various maximum linear arrangement algorithms.
Functions useful to calculate the maximum sum of edge lengths.
|
noexcept |
Make a maximum projective arrangement using the sorted, rooted adjacency list L.
r_place | Position of node r with respect to its parent. |
make_arrangement | Whether or not the arrangement is to be constructed. |
L | Adjacency list-like data structure. \(L[u]\) is a list of pairs \((v, n_u(v))\) where \(v\) is a neighbour of \(u\) and \(n_u(v)=|V(T^u_v)|\) is the size of the subtree \(T^u_v\) in vertices. | |
r | The vertex root of the subtree whose interval is to be made | |
ini | Left limit of the positions of the arrangement in which the tree has to be arranged. Note that the limits are included [ini,fin]. | |
fin | Right limit of the positions of the arrangement in which the tree has to be arranged. Note that the limits are included [ini,fin]. | |
[out] | arr | the arrangement of the tree. |
|
inlinenoexcept |
Wrapper method for the recursive method arrange.
A call to this function is done when the goal is not to construct a linear arrangement, only to calculate its cost.
n | Number of vertices. |
L | Adjacency list-like data structure. \(L[u]\) is a list of pairs \((v, n_u(v))\) where \(v\) is a neighbour of \(u\) and \(n_u(v)=|V(T^u_v)|\) is the size of the subtree \(T^u_v\) in vertices. |
r | Root of the tree represented by L. |
|
inlinenoexcept |
Wrapper method for the recursive method arrange.
A call to this function is done when the goal is to construct a linear arrangement.
n | Number of vertices. | |
L | Adjacency list-like data structure. \(L[u]\) is a list of pairs \((v, n_u(v))\) where \(v\) is a neighbour of \(u\) and \(n_u(v)=|V(T^u_v)|\) is the size of the subtree \(T^u_v\) in vertices. | |
r | Root of the tree represented by L. | |
[out] | arr | maximum projective linear arrangement. |