-
Notifications
You must be signed in to change notification settings - Fork 89
Add support for quadratic programming to the barrier method #500
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
Draft
chris-maes
wants to merge
32
commits into
NVIDIA:main
Choose a base branch
from
chris-maes:qp
base: main
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Draft
Changes from 1 commit
Commits
Show all changes
32 commits
Select commit
Hold shift + click to select a range
886f0a6
First stab at QP
chris-maes a624e23
Add space in scaling
chris-maes b34300a
Style fixes
chris-maes e3ef96b
Merge remote-tracking branch 'cuopt-nvidia/branch-25.12' into qp
chris-maes 84eedbf
add header
rgsl888prabhu 29509f9
Fix crashes due to mismatch between Q and A when presolve eliminated …
chris-maes 3f08031
Style fixes
chris-maes 9f04972
Handle SIF files in the script
rg20 5a0f39f
Fix a bug in computing quadratic objective
rg20 ef5b72a
handle presolve flag correctly
rg20 d7069c7
Resize Q matrix to include slack variables
rg20 781b4e4
Remove stale cout
rg20 d1824bc
Fix indexing issue
rg20 4176cf6
Fix warning
rg20 203212b
Fix out of bounds indexing
rg20 62b20c3
Add debug function for cudss factorization
rg20 f8631ac
Merge remote-tracking branch 'upstream/main' into qp
rg20 42e8290
Merge remote-tracking branch 'upstream/main' into qp
rg20 4482175
Fix a bug in the sign
rg20 16d8084
Handle Q matrix changes in presolve
rg20 af7a30b
Merge remote-tracking branch 'upstream/main' into qp
rg20 2247d71
Fix compilation errors
rg20 3503bb8
Fix bug in handling Q expansion for free variables
rg20 319df11
Style checks
rg20 8dfc18b
Fix a bug in Q terms
rg20 32ba29d
Debug info
rg20 15e914d
Remove print statement
rg20 ef13697
Fix a sign bug
rg20 f5bf3e0
Additional stopping criteria for QP
rg20 6c78ac5
Merge remote-tracking branch 'upstream/main' into qp
rg20 878f9b9
add debug code
rg20 6e2fb36
handle .SIF files in the script
rg20 File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
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
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
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -506,6 +506,7 @@ void mps_parser_t<i_t, f_t>::fill_problem(mps_data_model_t<i_t, f_t>& problem) | |
|
|
||
| // Process QUADOBJ data if present (upper triangular format) | ||
| if (!quadobj_entries.empty()) { | ||
| printf("Quadratic objective matrix: %zu nonzeros\n", quadobj_entries.size()); | ||
|
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. style: Consider using proper logging instead of Prompt To Fix With AIThis is a comment left during a code review.
Path: cpp/libmps_parser/src/mps_parser.cpp
Line: 509:509
Comment:
**style:** Consider using proper logging instead of `printf` for consistency with the rest of the codebase
How can I resolve this? If you propose a fix, please make it concise. |
||
| // Convert quadratic objective entries to CSR format using double transpose | ||
| // QUADOBJ stores upper triangular elements, so we expand to full symmetric matrix | ||
| i_t num_vars = static_cast<i_t>(var_names.size()); | ||
|
|
||
Oops, something went wrong.
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.
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.
style: Quadratic matrix stored as host std::vectors while other matrices use rmm::device_uvector. This creates inconsistency in memory management - consider if device storage is needed for GPU operations.
Prompt To Fix With AI