134 Commits

Author SHA1 Message Date
Haoran Du a3b5ceab38 Fix Windows OpenMP wheel build
pre-commit / pre-commit (push) Has been cancelled
Test the package with pytest / Test with pytest (3.10) (push) Has been cancelled
Test the package with pytest / Test with pytest (3.11) (push) Has been cancelled
Test the package with pytest / Test with pytest (3.12) (push) Has been cancelled
Test the package with pytest / Test with pytest (3.8) (push) Has been cancelled
Test the package with pytest / Test with pytest (3.9) (push) Has been cancelled
2026-06-07 12:16:27 +08:00
Musicaldg 2d1ae79737 refactor(community): remove serial modularity calculation, unify parallel implementation
- Delete `calculate_degrees_and_edges_adj_serial` function and related threshold logic in modularity.cpp; always invoke parallel calculation function
- Optimize center selection, empty graph handling, neighbor traversal, and numerical computation logic in localsearch.cpp
- Fix several edge cases and add automatic center number selection logic
2026-06-06 17:29:57 +08:00
Musicaldg c3e2210c37 fix(community): improve C++ compatibility, fallbacks, and add test suite
- localsearch: replace C++17 structured binding with std::tie for C++14
  compatibility (parent/dist destructuring in BFS queue)
- louvain / motif / graph_coloring: detect OpenMP support via _OPENMP
  macro and emit a clear runtime warning when OpenMP is unavailable,
  falling back to serial execution gracefully
- modularity: handle edge cases (empty node list, edgeless graph) by
  returning 0.0 and skip zero-degree nodes without division-by-zero
- tests/: add a complete unittest suite covering modularity,
  greedy_modularity, enumerate_subgraph, louvain (parallel + serial),
  LPA, ego_graph (+ CSR variant), and localsearch, plus a run_all_tests.py
  entry point with a friendly summary
2026-06-04 19:40:42 +08:00
Musicaldg cd873b6acf feat(community): Addition of C++ implementation and binding related to community analysis
Add C++ implementations of community detection algorithms such as LPA, Greedy Modularity, Louvin, and Local Search, as well as tool functions like ego_graph, motif enumeration , and modularity calculation.
2026-06-04 15:24:36 +08:00
sama 71edcf9cbd Compliant with the C++11 standard 2026-05-07 01:20:14 -06:00
sama 8ea6631cd9 Parallelize the eccentricity
:wq
2026-05-06 00:55:47 -06:00
sama 854d604e3d Parallelize the eccentricity 2026-03-11 02:53:00 -05:00
sama 887b4f652f Parallelize the average shortest path length. 2026-03-04 22:47:35 -07:00
sama 4a7257fa19 fix Data Race bug 2026-03-02 00:34:41 -07:00
sama 83ed8b95e1 Implementing Boruvka's algorithm based on the COO format 2026-03-02 00:08:42 -07:00
sama 9e11347986 add cpp_boruvka_mst_edges 2026-02-26 20:29:11 -07:00
sama 07a651c944 Parallelization of Multi-Source Dijkstra 2026-02-09 03:06:07 -07:00
sama cbd09a6c3c optimize hierarchty 2026-02-09 00:50:10 -07:00
sama 56a7750acc optimize hierarchy 2026-01-30 02:42:55 -06:00
sama 9f631526a8 fix msvc bug 2026-01-29 01:32:30 -07:00
sama 98c843ce53 support mac OS 2026-01-27 23:13:21 -07:00
sama 9245dec4bb modify intital weight 2026-01-27 06:33:04 -07:00
wuyazu bf0770cde4 support macOS 2026-01-26 19:54:31 +08:00
wuyazu 164f6a445a support macOS 2026-01-26 18:55:31 +08:00
wuyazu c4497b2089 support macOS 2026-01-26 18:33:02 +08:00
wuyazu 5ac2447cf8 support macOS 2026-01-26 18:17:21 +08:00
sama a86666343b optimize efficiency 2026-01-22 05:03:48 -06:00
sama eab386a04a optimize effective_size 2026-01-15 23:04:50 -06:00
sama 6bebe84994 optimize effective_size 2026-01-15 03:26:47 -06:00
sama 386f8868cb optimize pagerank 2026-01-11 23:40:05 -07:00
sama fd63ce230f optimize pagerank 2026-01-11 04:22:48 -07:00
wuyazu 4d248a9431 add omp 2026-01-10 21:49:04 +08:00
sama 6880fcf30d optimize constraint 2026-01-08 03:22:10 -07:00
sama 6b76196864 add omp 2026-01-04 00:58:47 -07:00
sama 55a7bdc5d6 normalize 2025-12-29 00:11:33 -07:00
sama fe0eda36d9 dirtt flag 2025-12-29 00:10:34 -07:00
sama 185a9e7828 add cpp_eigenvector 2025-12-18 00:53:52 -07:00
sama 448262d109 add cpp_eigenvector 2025-12-17 21:53:29 -07:00
sama 4fbc25fd1f omp 2025-12-16 23:57:59 -07:00
sama 4ecd1d445e add weight 2025-12-14 22:07:20 -07:00
sama 3989756b64 undirected graph 2025-12-07 19:40:01 -07:00
sama 90af1ad70a omp 2025-12-03 20:28:02 -07:00
sama d58752331f use binary heap 2025-11-21 02:33:53 -07:00
sama 735e40ee3b betweenness 2025-11-18 23:09:13 -07:00
sama 52df86071d betweenness openmp 2025-11-17 01:32:07 -07:00
sama f094fc48b7 betweenness 2025-11-16 23:00:46 -07:00
wuyazuholo f54a3dcebf Merge branch 'pybind11' of github.com:wuyazuholo/Easy-Graph into pybind11 2025-11-16 05:24:34 -07:00
wuyazuholo a33d47e3df degree and betweenness 2025-11-16 05:20:23 -07:00
acture 1e1eec789d fix(cpp): Use obj.is(py::none) for Python object identity checks
The C++ code was using `operator==` to check if a pybind11 object was
`py::none()`. This is deprecated because it maps to Python's `__eq__` (equality)
check, not the `is` (identity) check, which can lead to incorrect behavior.

This commit updates the check to use the `.is()` method, as recommended by
the pybind11 documentation. This ensures a correct identity check against
the `None` singleton and silences associated compiler deprecation warnings.
2025-10-21 02:43:05 +08:00
acture 36223b1eaa refactor(cpp): Remove deprecated 'register' keyword
The `register` storage class specifier is a legacy C++ feature that has been
ignored by modern compilers for years. It was officially deprecated in C++11
and removed entirely in the C++17 standard.

This commit removes all instances of `register` from the C++ codebase. This
modernizes the code, improves its clarity, and eliminates compiler warnings
without any impact on performance.
2025-10-21 02:43:04 +08:00
acture bcacbd4ebb chore(deps): Update pybind11 submodule to v2.12.0
The pybind11 Git submodule was pointing to an older commit. To ensure
compatibility with modern C++ standards and compilers, and to leverage
the latest features and bug fixes, the submodule has been updated.

This brings the project in line with the latest stable release of pybind11,
improving maintainability and reducing potential build issues.
2025-10-21 02:43:04 +08:00
sama 87e8534e62 finished katz centrality
pre-commit / pre-commit (push) Has been cancelled
Test the package with pytest / Test with pytest (3.8) (push) Has been cancelled
Test the package with pytest / Test with pytest (3.10) (push) Has been cancelled
Test the package with pytest / Test with pytest (3.11) (push) Has been cancelled
Test the package with pytest / Test with pytest (3.12) (push) Has been cancelled
Test the package with pytest / Test with pytest (3.9) (push) Has been cancelled
2025-07-11 02:53:04 -06:00
jessicawwen 91e4903aa5 Add GPU-accelerated structural hole evaluation functions 2025-05-11 22:54:37 +08:00
yo123abxd bb8603cfbf enhance compatibility of linking static libraries 2024-06-07 03:06:25 +00:00
yo123abxd 60b3094178 GPU-based SSSP is added. Return type of BC, CC and k-core are modified. 2024-06-03 09:11:31 +00:00