Open
Conversation
Codecov Report✅ All modified and coverable lines are covered by tests. 📢 Thoughts on this report? Let us know! |
dmaldona
requested changes
Feb 6, 2026
vp314
approved these changes
Feb 13, 2026
vp314
requested changes
Feb 13, 2026
Member
vp314
left a comment
There was a problem hiding this comment.
Mistakenly approved rather than requesting changes
vp314
requested changes
Feb 27, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Description
This pull request creates the CUR approximator feature.
Closes #147
It implements approximator and the CURCore structures. The CUR approximator is a global structure which is implemented to allow matrix multiplications and eventually back solve operations, the CURCore is how the CUR is fine tuned.
As an example of how this differentiation is necessary, for a selection of rows and columns the core matrix can be formed in at least two different ways. Suppose$C$ is the select columns and $R$ is the selected rows from $A$ ,
This PR features three new files
cur.jlwhich includes the structures for the cur decomposition and the functionscomplete_approximatorandmul!.CURCore.jldefines abstract types corresponding to the CUR core matrix, as well as aCURCoreAdjointstructure. The functions include basicmul!functionality similar toCompressors.jl, the size function, as well as the revenant completion and update functions (although for compilation reasons these functions are actually placed incur.jl.cross_approximation.jl, features the implementation of the cross approximation CUR core, as well as the complete function and therapproximate!function.rapproximateis implemented to correspond to theCURCoreand not theCURbecause the ordering of selection varies based on theCURCorethat is used. So it makes sense that the implementation would align with that and not theCURdata structure.How has this been tested
Types of changes
Checklists:
Code and Comments
If this PR includes modification to the code base, please select all that apply.
API Documentation
Manual Documentation
Testing
@code_lowered and
@code_typed)