fix(constraints): freeze empty constraint groups without reshape error#783
Open
Ketchp wants to merge 1 commit into
Open
fix(constraints): freeze empty constraint groups without reshape error#783Ketchp wants to merge 1 commit into
Ketchp wants to merge 1 commit into
Conversation
CSRConstraint.from_mutable reshaped con.vars with an inferred -1 dimension. For an empty constraint group (zero rows and zero terms) the vars array has size 0, and NumPy refuses to infer a (0, -1) reshape, raising "cannot reshape array of size 0 into shape (0,newaxis)". This broke the documented lossless freeze round-trip for legitimately empty groups (e.g. shifted-time difference constraints at n_time == 1). Pass the explicit _term count instead of -1; NumPy accepts a (0, 0) reshape and the rest of the method already handles zero-row input. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
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.
Note
Code and test in this PR was AI aided.
Problem description:
CSRConstraint.from_mutablereshapedcon.varswith an inferred-1dimension. For an empty constraint group (zero rows and zero terms) the vars array has size0, and NumPy refuses to infer a(0, -1)reshape, raising "cannot reshape array of size 0 into shape (0,newaxis)".This is a degenerate edge-case, but can be encountered when slicing or masking is used.
Changes proposed in this Pull Request
Pass the explicit
_termcount instead of-1; NumPy accepts a(0, 0)reshape and the rest of the method already handles zero-row input.Minimal reproducible example:
Checklist
AGENTS.md).doc.doc/release_notes.rstof the upcoming release is included.