51#include <lal/definitions.hpp>
52#include <lal/numeric/rational.hpp>
53#include <lal/graphs/graph.hpp>
86(
const std::vector<G>& L,
const std::vector<linear_arrangement>& P = {})
89 static_assert(std::is_base_of_v<graphs::graph, G>);
94 assert(P.size() == 0 or L.size() == P.size());
100 for (
size_t i = 0; i < L.size(); ++i) {
105 for (
size_t i = 0; i < L.size(); ++i) {
109 return sum_MDD/
static_cast<int64_t
>(L.size());
128(
const std::vector<G>& L,
const std::vector<linear_arrangement>& P = {})
Exact rational number.
Definition rational.hpp:63
double to_double() const noexcept
Converts this rational to a double-precision floating-point value.
Definition rational.hpp:736
double mean_dependency_distance_2level(const std::vector< G > &L, const std::vector< linear_arrangement > &P={}) noexcept
2-level Mean Dependency Distance over an ensemble of graphs.
Definition 2level.hpp:128
numeric::rational mean_dependency_distance_rational(const graphs::directed_graph &g, const linear_arrangement &pi={}) noexcept
Computes the mean dependency distance as an exact rational value.
numeric::rational mean_dependency_distance_2level_rational(const std::vector< G > &L, const std::vector< linear_arrangement > &P={}) noexcept
2-level Mean Dependency Distance over an ensemble of graphs.
Definition 2level.hpp:86
Main namespace of the library.
Definition definitions.hpp:48
std::vector< position > linear_arrangement
A linear arrangement of the nodes of a graph.
Definition definitions.hpp:72