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

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants