Skip to content

Conversation

@Nianle-Li
Copy link
Collaborator

This pull request adds support for calculating eigenvector centrality in EasyGraph, including both Python and C++ implementations, integration with pybind11, and comprehensive unit tests. The changes also update the build system to support Eigen3 and OpenMP for efficient computation.

Eigenvector Centrality Feature

  • Added a new eigenvector_centrality function in easygraph/functions/centrality/eigenvector.py, which computes eigenvector centrality using the power iteration method or ARPACK solver, with support for weighted graphs, custom initial vectors, and handling of isolated nodes.
  • Registered the new function in the centrality module’s __init__.py for easy import and usage.
  • Added the C++ interface for eigenvector centrality in centrality.h and exposed it to Python via pybind11 in cpp_easygraph.cpp as cpp_eigenvector_centrality. [1] [2]

Build System Enhancements

  • Updated cpp_easygraph/CMakeLists.txt to detect and use Eigen3 and OpenMP, enabling efficient linear algebra operations and parallel computation in the C++ backend.

Testing

  • Added a comprehensive test suite for eigenvector centrality in easygraph/functions/centrality/tests/test_eigenvector.py, covering various graph types, parameters, error conditions, and edge cases.
@Nianle-Li Nianle-Li requested a review from Copilot October 23, 2025 13:52

This comment was marked as resolved.

@Nianle-Li Nianle-Li requested a review from Copilot October 23, 2025 14:01

This comment was marked as resolved.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

2 participants