Program Listing for File PivotMDS.hpp

Return to documentation for file (include/networkit/viz/PivotMDS.hpp)

/*
 * PivotMDS.hpp
 *
 *  Created on: Jul 7, 2016
 *      Author: Michael Wegner
 */

#ifndef NETWORKIT_VIZ_PIVOT_MDS_HPP_
#define NETWORKIT_VIZ_PIVOT_MDS_HPP_

#include <networkit/algebraic/CSRMatrix.hpp>
#include <networkit/algebraic/Vector.hpp>
#include <networkit/graph/Graph.hpp>
#include <networkit/viz/GraphLayoutAlgorithm.hpp>

namespace NetworKit {

class PivotMDS final : public GraphLayoutAlgorithm<double> {
public:
    PivotMDS(const Graph &graph, count dim, count numPivots);

    /*
     * Default destructor
     */
    ~PivotMDS() override = default;

    void run() override;

private:
    count dim;
    count numPivots;

    std::vector<node> computePivots();

    void powerMethod(const CSRMatrix &mat, count n, Vector &eigenvector, double &eigenvalue);
};

} /* namespace NetworKit */

#endif // NETWORKIT_VIZ_PIVOT_MDS_HPP_