-
Notifications
You must be signed in to change notification settings - Fork 539
[FIX] Sparse initial pivot #785
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
Conversation
…t to test coo_array functionnality
… columns. Merge remote-tracking branch 'origin/master' into geomloss_update
- Added position tracking maps (_arc_to_out_pos, _arc_to_in_pos) for O(1) arc lookups - Modified nextOut() and nextIn() to use position maps instead of linear search
Codecov Report❌ Patch coverage is Additional details and impacted files@@ Coverage Diff @@
## master #785 +/- ##
==========================================
- Coverage 97.07% 97.07% -0.01%
==========================================
Files 107 107
Lines 22142 22156 +14
==========================================
+ Hits 21495 21507 +12
- Misses 647 649 +2 🚀 New features to boost your workflow:
|
RELEASES.md
Outdated
|
|
||
| #### New features | ||
| - Add support for sparse cost matrices in exact EMD solver `ot.emd` and `ot.emd2` (PR #778) | ||
| - Migrate backend from deprecated `scipy.sparse.coo_matrix` to modern `scipy.sparse.coo_array` API (PR #TBD) |
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.
Fix PR number above and add PR numebr here
RELEASES.md
Outdated
|
|
||
| #### Closed issues | ||
| - Add support for sparse cost matrices in EMD solver (PR #778, Issue #397) | ||
| - Fix O(n³) performance bottleneck in sparse bipartite graph arc iteration |
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.
same here
Types of changes
Motivation and context / Related issue
Sparse EMD solver was 10-40x slower than dense solver on full matrices due to O(n³) complexity bug in arc iteration. The
nextOut()andnextIn()methods insparse_bipartitegraph.hwere performing linear search through arc lists on every call during pivot selection.How has this been tested (if it applies)
PR checklist