-
-
Notifications
You must be signed in to change notification settings - Fork 427
Beta skeletons #2827
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Beta skeletons #2827
Conversation
I really should have rebased this, but since you squash commits I think it will be ok. |
Yes, please rebase on |
…nterface stuff to shared header.
709190a
to
4a77993
Compare
Codecov Report❌ Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## develop #2827 +/- ##
===========================================
+ Coverage 75.37% 75.51% +0.14%
===========================================
Files 404 406 +2
Lines 75323 75655 +332
Branches 14974 15023 +49
===========================================
+ Hits 56771 57131 +360
+ Misses 18552 18524 -28
... and 12 files with indirect coverage changes Continue to review full report in Codecov by Sentry.
🚀 New features to boost your workflow:
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull Request Overview
This pull request implements beta skeletons, which are spatial graph construction algorithms for creating proximity graphs from point sets. The implementation includes lune-based and circle-based beta skeleton algorithms, along with related functions for Gabriel graphs and relative neighborhood graphs.
Key changes include:
- Implementation of lune and circle-based beta skeleton algorithms with configurable beta parameters
- Addition of Gabriel graph and relative neighborhood graph functions as special cases
- Creation of a beta-weighted Gabriel graph function that provides edge weights representing beta threshold values
Reviewed Changes
Copilot reviewed 12 out of 12 changed files in this pull request and generated 4 comments.
Show a summary per file
File | Description |
---|---|
src/spatial/beta_skeleton.cpp |
Core implementation of beta skeleton algorithms and related graph construction functions |
src/spatial/nanoflann_internal.hpp |
Shared utilities for spatial data structures, extracted from nearest neighbor implementation |
src/spatial/nearest_neighbor.cpp |
Refactored to use shared nanoflann utilities |
include/igraph_spatial.h |
Public API declarations for new beta skeleton functions |
tests/unit/beta_skeletons.c |
Comprehensive unit tests covering various beta values and edge cases |
tests/benchmarks/beta_skeletons.c |
Performance benchmarks for the new algorithms |
tests/CMakeLists.txt |
Build configuration updates for new test files |
src/CMakeLists.txt |
Build configuration for new source file |
doc/spatial.xxml |
Documentation integration for new functions |
Co-authored-by: Copilot <[email protected]>
Co-authored-by: Copilot <[email protected]>
@Zepeacedust Can you think through the time complexities of these, based on the complexity indicated for the Delaunay function, k-D tree search complexity, and the code here? |
# Conflicts: # src/spatial/nearest_neighbor.cpp
@Zepeacedust There was a major renaming from igraph_integer_t -> igraph_int_t. I took care of adapting this PR. Make sure you pull before you do anything else. |
@Zepeacedust Can you please remove spaces from around |
@ntamas Okay to merge this? I'll get additional polish later. EDIT: Just let me know and I'll merge. |
@ntamas OK to merge this? It's been ready for a while. We're hoping to expose it in Python soon. |
Working off from #2806 this will implement Beta-skeletons.
Functions to be implemented:
Lune and circle based beta skeletons, beta-weighted gabriel graph.
Ref: #2828
TODO