Skip to content

Conversation

@hakkelt
Copy link

@hakkelt hakkelt commented Nov 11, 2025

This PR is part of the effort to make StructuredOptimization as general as possible (see the PR on OperatorCore: JuliaFirstOrder/ProximalCore.jl#5).

Changes:

  • PrecomposedSlicedSeparableSum: function to be used for complex problems with multiple variables and variables sliced in different terms. E.g.:
x, y = Variable(10), Variable(5)
problem = ls(x[1:5] - y) + norm(x, 1) + norm(x[6:10], 1)
  • reshapeInput wrapper can help, for example, in low-rank minimization to avoid reshaped Eye from AbstractOperators and its unnecessary copy:
x = Variable(3,3,5)
problem = norm(reshape(x, 9, 5), *)
  • RecursiveArrayToolsExt extension contains some functions that were moved from StructuredOptimization as I believe they belong here.
  • Loading OSQP dependency was delayed until IndPolyhedralOSQP is instantiated. The reason behind it was that OSQP is one of the largest dependencies of ProximalOperators, and it is only used by a single function. ProximalOperators loads almost a second faster without it.

@hakkelt hakkelt marked this pull request as draft November 27, 2025 19:59
@hakkelt
Copy link
Author

hakkelt commented Nov 27, 2025

I'll break this large PR into multiple smaller ones, but I'll keep this open for reference.

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.

1 participant