Skip to content

Conversation

@lostella
Copy link
Member

@lostella lostella commented Jul 7, 2019

This PR hands over the solution method ("solver") completely to ProximalAlgorithms, following the proposal in JuliaFirstOrder/ProximalAlgorithms.jl#22

Benefits, roughly: simpler code (more deletions than additions), no need to duplicate concepts, no need to duplicate documentation, better decoupling and separation of concerns.

NOTE: this PR is breaking in that it removes the solve! function. When going through the code I realized that this was a bit confusing, also in the documentation. solve! is meant to essentially allow, as far as I recall, pre-allocating all the buffers and so on for the solver, and save on allocations for example when sequences of problems need to be solved. I'm not sure how crucial it is to have this in a high-level modeling package like this?

Tests and docs are updated as well.

@lostella lostella requested a review from nantonel July 7, 2019 01:20
Copy link
Collaborator

@nantonel nantonel left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think it is always good to simplify stuff! I also think solve! is not really needed and it was getting things overcomplicated. The code looks good to me, I assume we just need to merge and tag ProximalAlgorithms, check if tests are passing here and then merge&tag. Demos (#14) and benchmarks (#15 ) have been outdated for a while so I wouldn't worry too much for breaking changes!

@nantonel
Copy link
Collaborator

nantonel commented Jul 7, 2019

I think we can take the opportunity of getting rid of REQUIRE and update to new dependencies system.

@codecov-io
Copy link

codecov-io commented Jul 8, 2019

Codecov Report

Merging #19 into master will decrease coverage by 0.67%.
The diff coverage is 85%.

Impacted file tree graph

@@            Coverage Diff             @@
##           master      #19      +/-   ##
==========================================
- Coverage   92.19%   91.52%   -0.68%     
==========================================
  Files          17       17              
  Lines         423      413      -10     
==========================================
- Hits          390      378      -12     
- Misses         33       35       +2
Impacted Files Coverage Δ
src/StructuredOptimization.jl 100% <ø> (ø) ⬆️
src/arraypartition.jl 66.66% <66.66%> (ø)
src/solvers/build_solve.jl 95% <92.85%> (-1.56%) ⬇️
src/syntax/terms/term.jl 70.83% <0%> (-4.17%) ⬇️
src/solvers/terms_extract.jl 100% <0%> (+1.11%) ⬆️

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 2620090...727b81a. Read the comment docs.

@lostella lostella requested a review from nantonel July 8, 2019 17:36
@lostella lostella merged commit 4dde469 into JuliaFirstOrder:master Jul 8, 2019
@lostella lostella deleted the new-solvers branch July 8, 2019 18:24
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.

3 participants