MCPcopy Create free account
hub / github.com/NodeDB-Lab/nodedb / run_algorithm

Function run_algorithm

nodedb/src/data/executor/handlers/graph_algo.rs:163–189  ·  view source on GitHub ↗
(
    csr: &CsrIndex,
    algorithm: &GraphAlgorithm,
    params: &AlgoParams,
    tuning: &nodedb_types::config::tuning::GraphTuning,
)

Source from the content-addressed store, hash-verified

161}
162
163pub(super) fn run_algorithm(
164 csr: &CsrIndex,
165 algorithm: &GraphAlgorithm,
166 params: &AlgoParams,
167 tuning: &nodedb_types::config::tuning::GraphTuning,
168) -> Result<AlgoResultBatch, crate::Error> {
169 use crate::engine::graph::algo;
170 match algorithm {
171 GraphAlgorithm::PageRank => Ok(algo::pagerank::run(csr, params)),
172 GraphAlgorithm::Wcc => Ok(algo::wcc::run(csr)),
173 GraphAlgorithm::LabelPropagation => Ok(algo::label_propagation::run(csr, params)),
174 GraphAlgorithm::Lcc => Ok(algo::lcc::run(
175 csr,
176 tuning.lcc_high_degree_threshold,
177 tuning.lcc_sample_pairs,
178 )),
179 GraphAlgorithm::Sssp => algo::sssp::run(csr, params),
180 GraphAlgorithm::Betweenness => Ok(algo::betweenness::run(csr, params)),
181 GraphAlgorithm::Closeness => Ok(algo::closeness::run(csr)),
182 GraphAlgorithm::Harmonic => Ok(algo::harmonic::run(csr)),
183 GraphAlgorithm::Degree => Ok(algo::degree::run(csr, params)),
184 GraphAlgorithm::Louvain => Ok(algo::louvain::run(csr, params)),
185 GraphAlgorithm::Triangles => Ok(algo::triangles::run(csr, params)),
186 GraphAlgorithm::Diameter => Ok(algo::diameter::run(csr, params)),
187 GraphAlgorithm::KCore => Ok(algo::kcore::run(csr)),
188 }
189}

Callers 2

execute_graph_algoMethod · 0.85
run_algo_responseFunction · 0.85

Calls 1

runFunction · 0.50

Tested by

no test coverage detected