This release contains a number of minor bug fixes and typo removals. It also includes some cleanup tasks like updating dependencies and fixing an issue with the documentation build job.
3cf312a
- Update MOI_wrapper.jl (#169)
724a2d2
- Update QDLDL wrappers for QDLDL v0.4.1 (#171)
9ebf334
- fix: merge_strategy() is an instance, not a type (#164)
This is a fairly big release as we wrap the ADMM algorithm into a safeguarded Anderson Acceleration method. The accelerators are provided by COSMOAccelerators.jl. This should improve the convergence to higher accuracy solution.
We change the default settings to reflect this. The default accuracies eps_abs
and eps_rel
are set to 1e-5
, we now check convergence every 25
iterations, and increased max_iter
to 5000
. Acceleration can be switched off by using: COSMO.Settings(accelerator = EmptyAccelerator)
. When the algorithm is safeguarded (safeguard = true
), extra ADMM-iteration called safeguarding_iter
might occur which are also reported to the user. The returned number of iterations in the result object always refers to the total number of ADMM-iterations, which includes the safeguarding_iter
s. Refer to the docs for more configuration options.
fb51a41
Add Compat entry for Reexport2624a50
Bump version: 0.7.9 → 0.8.058cc506
Update examples/ to newest JuMP APIab67ddc
Fix bug in ResulType constructor5ac07e9
Merge branch 'mg/accelerated_algorithm'
This is intended as the last release containing all changes before the accelerated version of the solver is merged.
a8f2724
Merge pull request #129 from oxfordcontrol/mg/fix_slow_moi_merging527c5d2
Increase max_iter and decrease eps_prim_infb4ea038
Change Int64 --> Int in clique graph test0744299
[#124] Covering more cases in CI69d8e4f
Export CGIndirectKKTSolver and MINRESIndirectKKTSolver1ef8ca7
Update Documenter version7e1e0b0
Excludesolve_farkas_interval_upper
from MOI unittests19f43ec
👷 Switch CI to Github actions
f0070a1
Bump DataStructures.jl to support v0.18 (#119)fd5b2b5
Add doc for model updates316e328
Fix bracket bug in cost computationef731a4
Rename update!(strategy,...) to update_strategy!(strategy,...)cbe6cc3
Add update!-model to docs04283c2
Handle the model state more precisely5db323f
Fix slow Pardiso KKT solver
Fixes bugs in the interface functions for the Python interface.
This version adds some interface functions specifically for the Python interface: cosmo-python.
-
This version implements the reduced clique graph merge strategy which fixes some edge cases that occurred in the previous merge strategy. It also makes this COSMO version compatible with the latest MathOptInterface release v0.9.16
-
95dbdf9
<#116> Make COSMO compatible with MOI v0.9.16 -
8d869f5
Fix wrong bracket in Box support function check -
91bb113
Free clique graph related memory after the merging -
9729d3c
Clean-up reduced clique graph code -
09eb9e5
Make ParCh strategy work with sets -
381db30
Implement reduced clique graph merge
-
This version mostly contains minor changes and small bug fixes as well as some updates to the documentation.
-
6626c6d
[#114] Restrict dependencies less -
2dcf4a8
Print correct number of sets in verbose output -
58ef719
Untrack Manifest.toml -
9cdd856
Fix sign error in logistic regression example -
5ea43c7
Update Documenter to latest version -
ce6a10a
Fix navigation bar error -
732f76c
Move Logistic regression to Documentation -
14e3182
Change logo in docs
-
We significantly improved the solver performance in this release. This is mainly achieved by direct assembly of the KKT matrix in CSC format, faster permutation and getting rid of some function overhead related to the
SplitVector
type. Moreover, we now made the solver precision type-agnostic, which means you can use any AbstractFloat type, e.g.BigFloat
for your problem data (some limitations apply, see docs) and COSMO will solve the problem with that type. -
0b0f3b3
Always timeiter_start
-
6ff52a8
Make chordal decomposition code type agnostic -
3692d49
Make the MOI-wrapper precision-type-agnostic -
ae43c04
Add more strongly typed arguments -
4801beb
Make solver work for ArbitraryFloat data -
8237358
🎨 Print result status in color -
8277eb0
Add minor performance improvements -
4a79217
Add fast lower triangle KKT assembly function -
906b9a0
Removed asserts. Direct access to SplitVector data. Removed CSC matrix casts. Removed some zipped calls. -
a6aa495
isolate triu KKT build for speed -
921e927
minor loop rewrites -
ae21123
fast triu csc assembly -
0184138
faster scalings and sqrt -
2a1d43a
isolated Box scaling function -
b3c15ed
faster norms and l/r scaling -
55f4511
faster qdldl
-
We now handle the optional dependencies of external linear solver packages
Pardiso
andIterativeSolvers
by using theRequires.jl
package. Furthermore, we improve convergence of problems with box constraints in many cases. We also allow an automatic adaptive rho interval option, like in OSQP, which can be activated by settingadaptive_rho_interval = 0
(automatic). -
The main commits in this new version are:
-
ecef91d
🤝 Improve handling of optional dependencies -
70c6067
Merge branch 'mg/adaptive_rho_intervall' -
64dbcc1
🚀 Scale rho-value of loose, active box constraints -
9b50f17
Print first iteration -
44ada54
Allow adaptive rho interval determination -
2dcc593
Make deepcopy of settings object -
41f82f3
🔮 Enable code literacy -
9ea6dc2
Update newest Julia version in travis
264294d
Add precompile statements (#109)1b8c58c
Print decomposition info only when decomposingd8dfe26
Prevent decomposition from mutating settings
-
This release adds support for indirect linear system solver from the
IterativeSolvers.jl
package. We also drop support of PsdConeSquare constraints ins MOI. By default MOI will bridge them to PSDTriangle constraints. We further fixed a number of bugs related to the compact transformation for decomposable SDPs. Another change is that when used withverbose_timing = true
, COSMO will now measure the initial factorisation time and the time for refactorisations separately. The major commits are listed here: -
439f218
Return NearlyFeasible status code if max_iter reached -
fda29e1
Fix problem with empty columns in compact_transform -
4324560
Drop support for MOI.PSDConeSquare -
f0a99fe
⏲ Add more detailed timing to solver -
92aa32c
Store rho-updates in result variable -
eb0be3b
Assemble dual variable like in Grone's Theorem -
14e862e
Make Cholmod (SuiteSparse) default KKT solver -
e64cfc9
Fix bug with CGIndirectKKTSolver and MINRESIndirectKKTSolver -
f514caa
Merge pull request #106 from oxfordcontrol/pg/pardiso_fix -
6290cbe
fixes minres -
b2a0e49
fix pardiso default options -
5ed8a9c
[ci skip] Add info about custom linear solvers -
cfa6f76
Merge pull request #92 from oxfordcontrol/cg
We add smart clique merging and fix a number of bugs in COSMO and the MOIWrapper.
94babde
Add Documentation for Chordal Decomposition3ba43dd
Renaming merge concepts, adding docstrings96e9c1c
Implementation of a SparseCoLO like transformation752117b
Add unit test for psd completion with clique merge975f87a
🔧 Fix bug about recovering the dual variablee524b59
Working recomputation of clique tree09dc024
Implement clique mergingf90cc62
<#96> Map var idxs when processing MOI constraints9f1b5ff
<#97> Loop over all MOI-Attributes during copy_to59f0480
Add unit test for 1d psd projectionab821d8
Fix bug in 1D PSD cone projection857bf18
Merge pull request #98 from rschwarz/rs/moi095969cb2b
Fix MOI tests "result_count".c3d0263
Exclude MOI unit test "number_threads".ed25b4b
[#94] Fix bug related to DualExpCone problems7f91e71
💾 Implement memory-efficient infeasibility checksdc75bc5
🔧 Code refactoringa754b0c
Implement memory-efficient residual computation020ada4
[#94] Merge pull request #94 from oxfordcontrol/check_psd_clean4b8396d
Use (faster) in-place versions for in_pos_def()5565fa9
Remove sparse version of is_pos_def!()dceea67
Avoids eigendecomposition in psd tests.340ecde
Assemble entry selector matrix more efficient
8986827
Update to support MOI v0.9
b514287
Fix memory issue in MOI's interface (PR #87)cc32a30
Remove parameter printing for setsd31e501
Code refactoring in chordal decomposition128b409
Remove num of elem in A and size of b from headerb267b1c
Remove eigendecomposition of P in MOI wrapper21eb8da
Move PowerCone to typed set in MOI wrapper test
We add the exponential cone, the power cone and their dual cones. Furthermore, we offer the option to use different linear system solvers. The most important changes are listed here:
eb7cb68
Add power cone and dual exp and pow conef3b5c2f
Add a logistic regression example44cc8b3
Implement exponential cone constraints4c3428c
Merge pull request #65 from oxfordcontrol/pg/lin_solvers863168a
<#65> Support custom linear system solver
This is a major upgrad since it adds the chordal decomposition functionality. The most important changes are listed here:
8dd70eb
Make sure graphs are connectedb44364c
Add chordal decomp info to header printing5acaf73
Move PSDTriangle memory allocation after decomp25593b4
Remove graph computationa115196
Add DensePsdCones to handle non-decomposable conesdbe70bc
Add PSD completion4262bfe
Add chordal decomposition algorithm and unit testsbdebbc5
🔧 Fix bug in scaling of MOI-PSDTriangle constraint726d03b
<#55> Implement set merging in MOI Wrapper2a3957f
🤫 Add support for MOI.Silentd0f0e44
Fix bugs in warm startingf5bd31b
32 bit BLAS supportaeab91c
Check positive semidefiniteness of P in MOIWrapper9ad8f36
Fix bug in MOI termination codes34ebb89
Add deepcopy step for convex sets in set!()
The most important changes are listed below:
- (
023f517
) Fix printing of rho - (
cb2a483
) Memory efficient projections in BLAS - (
c582f83
) Remove lower-triangle legacy code in MOI wrapper - (
6b89271
) Dont export Model and convex sets - (
d98c7ea
) Bug fix in norm computation - (
0ad53d6
) Add Aox constraint type - (
360ca0f
) Handle edge cases forP
,q
inassemble!
- The optional arguments
settings
,x0
,y0
,s0
are now keyword arguments (breaks backward compatibility), seed0f22aab
- Some smaller bug fixes and function renaming
- Documentation via Documenter.jl
- Support warm starting of primal and dual variables in MOI / JuMP interface
- Fix a bug when printing the header
- Improve unit test coverage
First public release of COSMO solver
- Add MOI / JuMP support