LAL: Linear Arrangement Library 23.01.00
A library focused on algorithms on linear arrangements of graphs.
Loading...
Searching...
No Matches
Public Member Functions | Private Attributes | List of all members
lal::linarr::dependency_flux Class Reference

Dependency flux. More...

#include <dependency_flux.hpp>

Public Member Functions

uint64_t get_left_span () const noexcept
 Returns left span of this flux.
 
uint64_t get_right_span () const noexcept
 Returns right span of this flux.
 
uint64_t get_size () const noexcept
 Returns the size of this flux.
 
uint64_t get_weight () const noexcept
 Returns weight of this flux.
 
uint64_t & get_left_span () noexcept
 Returns a reference to the left span of this flux.
 
uint64_t & get_right_span () noexcept
 Returns a reference to the right span of this flux.
 
uint64_t & get_weight () noexcept
 Returns a reference to the weight of this flux.
 
std::vector< edge > & get_dependencies ()
 Returns a reference to the set of dependencies.
 
const std::vector< edge > & get_dependencies () const noexcept
 Returns the set of dependencies.
 
numeric::rational get_RL_ratio_rational () const noexcept
 Returns the R/L ratio. More...
 
double get_RL_ratio () const noexcept
 Returns the R/L ratio. More...
 
numeric::rational get_WS_ratio_rational () const noexcept
 Returns the W/S ratio. More...
 
double get_WS_ratio () const noexcept
 Returns the W/S ratio. More...
 
void set_left_span (uint64_t ls) noexcept
 Sets the left span.
 
void set_right_span (uint64_t rs) noexcept
 Sets the right span.
 
void set_weight (uint64_t w) noexcept
 Sets the weight.
 
void set_dependencies (const std::vector< edge > &deps) noexcept
 Sets the set of dependencies.
 
void set_dependencies (std::vector< edge > &&deps) noexcept
 Sets the set of dependencies.
 

Private Attributes

uint64_t m_left_span = 0
 
uint64_t m_right_span = 0
 
std::vector< edgem_dependencies
 Dependencies in this flux. More...
 
uint64_t m_weight = 0
 Weight of this flux. More...
 

Detailed Description

Dependency flux.

The dependency flux of a dependency tree, as defined in [26].

Member Function Documentation

◆ get_RL_ratio()

double lal::linarr::dependency_flux::get_RL_ratio ( ) const
inlinenoexcept

Returns the R/L ratio.

This is the right span (see attribute m_right_span) divided by the left span (see attribute m_left_span).

Returns
The R/L ratio of this flux.

◆ get_RL_ratio_rational()

numeric::rational lal::linarr::dependency_flux::get_RL_ratio_rational ( ) const
inlinenoexcept

Returns the R/L ratio.

This is the right span (see attribute m_right_span) divided by the left span (see attribute m_left_span).

Returns
The R/L ratio of this flux.

◆ get_WS_ratio()

double lal::linarr::dependency_flux::get_WS_ratio ( ) const
inlinenoexcept

Returns the W/S ratio.

Also known as density, this is the weight (see attribtue m_weight) divided by the number of dependencies (see attribute m_dependencies).

Returns
The W/S ratio of this flux.

◆ get_WS_ratio_rational()

numeric::rational lal::linarr::dependency_flux::get_WS_ratio_rational ( ) const
inlinenoexcept

Returns the W/S ratio.

Also known as density, this is the weight (see attribtue m_weight) divided by the number of dependencies (see attribute m_dependencies).

Returns
The W/S ratio of this flux.

Member Data Documentation

◆ m_dependencies

std::vector<edge> lal::linarr::dependency_flux::m_dependencies
private

Dependencies in this flux.

The set of concomitant dependencies.

◆ m_left_span

uint64_t lal::linarr::dependency_flux::m_left_span = 0
private

Number of words to the left of this flux which are vertices of a dependency in the flux.

◆ m_right_span

uint64_t lal::linarr::dependency_flux::m_right_span = 0
private

Number of words to the right of this flux which are vertices of a dependency in the flux.

◆ m_weight

uint64_t lal::linarr::dependency_flux::m_weight = 0
private

Weight of this flux.

This is the size of the largest subset of disjoint dependencies in m_dependencies.


The documentation for this class was generated from the following file: