Fix MethodError when solving constrained problems with LBFGS without maxiters #961
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.
Summary
no method matching (::Colon)(::Int64, ::Nothing)when trying to solve a constrained problem withOptimization.LBFGS#958 by providing a default value formaxitersin constrained LBFGS optimizationMethodError: no method matching (::Colon)(::Int64, ::Nothing)whenmaxitersis not specifiedProblem
When using
Optimization.LBFGS()with constraints but without specifyingmaxiters, the solver would throw an error becausemaxiterswasnothing, causing an error when creating the range1:maxitersin the constrained optimization path at line 178 oflbfgsb.jl.Solution
Added a default value of 1000 iterations for constrained problems when
maxitersis not specified. This matches the implicit behavior of unconstrained problems and is consistent with common practice in the codebase.Test plan
test/native.jlthat reproduces the exact error from issueno method matching (::Colon)(::Int64, ::Nothing)when trying to solve a constrained problem withOptimization.LBFGS#958The test verifies that:
maxitersis not specifiedMaxIters(but doesn't crash)🤖 Generated with Claude Code