Skip to content

Add optimization parameters to OptimizationState #945

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

Merged
merged 1 commit into from
Jul 23, 2025

Conversation

ChrisRackauckas
Copy link
Member

Summary

Fixes #891 - This PR adds a p field to the OptimizationState struct to provide access to optimization parameters in callbacks.

Changes

  • Modified OptimizationState struct to include a new p parameter field
  • Updated constructor to accept an optional p parameter with default value nothing
  • Updated all OptimizationState construction calls across the codebase to pass the appropriate parameter values:
    • Main package files: src/lbfgsb.jl, src/sophia.jl, src/auglag.jl
    • All library extension packages in lib/ directory
  • Maintains backward compatibility - existing code will continue to work

Motivation

This enables use cases like tracking loss function progression in multi-start optimization scenarios, where callbacks need access to parameters that are unique to individual optimization runs.

Test Plan

  • Verified OptimizationState can be constructed with p parameter
  • Tested that callbacks can successfully access the p parameter
  • Confirmed backward compatibility is maintained

Example usage:

function my_callback(state, args...)
    # Now you can access optimization parameters
    params = state.p
    # ... use params for tracking, logging, etc.
    return false
end

🤖 Generated with Claude Code

Fixes #891 - Added a `p` field to the OptimizationState struct to provide
access to optimization parameters in callbacks. This enables use cases like
tracking loss function progression in multi-start optimization scenarios.

Changes:
- Modified OptimizationState struct to include `p` parameter field
- Updated constructor to accept optional `p` parameter
- Updated all OptimizationState construction calls across the codebase
  to pass the appropriate parameter values (cache.p, d, etc.)
- Maintains backward compatibility with existing code

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <[email protected]>
@ChrisRackauckas ChrisRackauckas merged commit c0c3776 into master Jul 23, 2025
24 of 29 checks passed
@ChrisRackauckas ChrisRackauckas deleted the add-params-to-optimization-state branch July 23, 2025 11:25
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Add optimization parameters to OptimiationStsate
1 participant