Program Listing for File SpanningEdgeCentrality.hpp

Return to documentation for file (include/networkit/centrality/SpanningEdgeCentrality.hpp)

/*
 * SpanningEdgeCentrality.hpp
 *
 *  Created on: 29.07.2015
 *      Author: henningm
 */

#ifndef NETWORKIT_CENTRALITY_SPANNING_EDGE_CENTRALITY_HPP_
#define NETWORKIT_CENTRALITY_SPANNING_EDGE_CENTRALITY_HPP_

#include <networkit/algebraic/CSRMatrix.hpp>
#include <networkit/centrality/Centrality.hpp>
#include <networkit/numerics/LAMG/Lamg.hpp>

namespace NetworKit {

class SpanningEdgeCentrality : public Centrality {
protected:
    double tol;
    Lamg<CSRMatrix> lamg;
    uint64_t setupTime;

public:
    SpanningEdgeCentrality(const Graph &G, double tol = 0.1);

    ~SpanningEdgeCentrality() override = default;

    void run() override;

    void runApproximation();

    void runParallelApproximation();

    uint64_t TLX_DEPRECATED(runApproximationAndWriteVectors(const std::string &graphPath));

    uint64_t getSetupTime() const;
    double runForEdge(node u, node v);
};

} /* namespace NetworKit */

#endif // NETWORKIT_CENTRALITY_SPANNING_EDGE_CENTRALITY_HPP_