-
Notifications
You must be signed in to change notification settings - Fork 91
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
7 changed files
with
256 additions
and
162 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,169 @@ | ||
## SeDuMi 1.3.5 (2021-06-15) | ||
|
||
> https://github.com/sqlp/sedumi/compare/v1.3.4...v1.3.5 | ||
- Merge of "MEX-free implementation of pretransfo and posttransfo" branch by | ||
Michael C. Grant. | ||
- Improved `install_sedumi.m` function. | ||
- Use GitHub Actions for CI tests. | ||
- Bugs fixed: | ||
- [#64: function handle problem in minpsdeig.m](https://github.com/sqlp/sedumi/issues/64) | ||
- [#18: Typo in eigK.m](https://github.com/sqlp/sedumi/issues/18) | ||
- [#15: results are not apparently deterministic?](https://github.com/sqlp/sedumi/issues/15) | ||
|
||
## SeDuMi 1.3.4 (2020-01-09) | ||
|
||
> https://github.com/sqlp/sedumi/compare/v1.3.2...v1.3.4 | ||
> | ||
> Note: version 1.3.3 was not officially released. | ||
- Many many bug fixes in seven years. | ||
|
||
|
||
## SeDuMi 1.3.2 (2013-07-24, Michael Grant) | ||
|
||
> https://github.com/sqlp/sedumi/compare/v1.3.1...v1.3.2 | ||
- Merged changes from CVX and SeDuMi/Octave into the distribution. | ||
- Further changes to suppress Matlab Code Analyzer warnings. | ||
- Removed `matrix.h` dependency from `givens.h` for Octave compatibility; | ||
fixed assertion problem with `givensrot.c`. | ||
|
||
|
||
## SeDuMi 1.3.1 (2013-04-04) | ||
|
||
> https://github.com/sqlp/sedumi/compare/v1.3.0...v1.3.1 | ||
- Corrected bugs in `sedumi.m` and `getada.m`. | ||
- Updated .m files as per mlint suggestions. | ||
- Commented `length(b)` vs `length(c)` check in pretransfo. | ||
- Recompiled windows mex files, updated `install_sedumi.m` for MATLAB v8 | ||
|
||
|
||
## New features in SeDuMi 1.1 since 1.05R5 | ||
|
||
- 2010-02-15 Fix: global variables are used for some large data structures | ||
(ADA, At). | ||
|
||
- 2010-02-15 Fix: `getada1` and `getada2` have been backported to Matlab, | ||
which actually increases speed, due to parallel BLAS. | ||
|
||
- 2009-11-25 Fix: computation in `getsymbada.m` has been reorganized for speed. | ||
|
||
- 2009-11-15 Fix: the `psdeig`, `psdinvscale`, `psdjmulv`, `psdfactor`, | ||
`psdscale` and `triumtriu` mex files were replaced with a pure Matlab | ||
equivalent. | ||
|
||
- 2009-09-05 Fix: SeDuMi now uses wall clock time instead of cputime, as the | ||
CPU time is misleading in parallel processing environments. | ||
It is reported in `info.walltime`. `info.cpusec` contains the total cpu time, | ||
which may be more than the wall time. | ||
|
||
- 2009-08-05 Fix: Based on feedback from Didier Henrion and others, the rank | ||
and infeasibility detection code has been modified. | ||
|
||
- 2009-05-10 Fix: Michael C. Grant modified some files to compile under 64-bit | ||
versions. | ||
|
||
- 2009-05-10 Fix: A new installer script is provided by Michael C. Grant. | ||
|
||
- 2009-05-10 Fix: Some BLAS calls are fixed in `blkaux.c`. | ||
|
||
- 2008-04-09 Fix: BLAS is used to improve performance. | ||
|
||
- 2008-04-09 Fix: SeDuMi now works on 64-bit operating systems. | ||
|
||
- 2006-10-14 Fix: A bugfix was contributed by Michael C. Grant regarding the | ||
handling of 2-dimensional Lorentz cones. | ||
|
||
- 2006-10-10 Fix: A new, completely rewritten SDPA format reader is provided in | ||
the conversion folder. It is fast and it follows the SDPA standard. | ||
|
||
- 2006-10-10 Fix: Michael Grant corrected a bug in the postprocessing phase. | ||
|
||
- 2006-10-10 Fix: The semidefinite preprocessing assumed that there are no | ||
free variables. | ||
|
||
- 2006-10-10 Fix: Matlab R2006b does not support `fprintf` with `fid=0`, | ||
(i.e., no output). A workaround is provided. Thanks to Johan Löfberg. | ||
|
||
- 2006-10-10 Fix: The solutions were incorrect if the error measures were turned on. | ||
|
||
- 2006-07-12 Fix: A bug was discovered by Paul Tseng when using free variables | ||
together with rotated Lorentz cones. | ||
|
||
- 2005-06-22 Fix: A bug about free variable handling has been reported by | ||
Johan Löfberg, the fixed version is now posted. | ||
|
||
- 2005-06-21 Fix: A bug about complex variables has been reported by | ||
Michael C. Grant, the correct version is now available. | ||
|
||
- 2005-06-10 Fix: `&&` and `||` were replaced by `&` and `|` to make the | ||
package compatible with Matlab 6.0 (R12). | ||
|
||
- 2005-05-10 Feature: The binaries are now built from Matlab, see `Install.txt` | ||
for details. | ||
|
||
- 2005-03-02 Fix: The `'See also'` references at the end of the help portions | ||
are now clickable. | ||
|
||
- 2005-03-02 Fix: If ADA is actually dense then the symbolic Cholesky | ||
factorization and the minimum degree ordering are not performed. | ||
Also in this case `SYMBADA` is created directly as a fully dense matrix of | ||
ones stored as sparse. | ||
|
||
- 2005-03-02 Feature: Included a simple heuristic to turn step-differentiation on/off. | ||
|
||
- 2005-03-02 Feature: New options to control preprocessing: `pars.free`, `pars.sdp`. | ||
|
||
- 2005-03-02 Feature: Preprocessing routines are now included. | ||
Diagonal SDP blocks are converted into nonnegative variables. | ||
Free variables are handled in a quadratic cone, | ||
split free variables are detected in the linear part. | ||
The sparsity structure of A is corrected at the end of preprocessing. | ||
|
||
- 2005-03-02 Fix: New default values. | ||
`pars.eps = 1e-8`, `pars.stepdif = 2`, `pars.cg.qprec = 1`. | ||
|
||
- 2005-02-02 Feature: If `pars.errors=1` then SeDuMi outputs the six errors | ||
measures defined in the 7th DIMACS challenge paper that is available at | ||
<http://plato.asu.edu/dimacs/node3.html>. | ||
These are in `info.err1`, ..., `info.err6`. | ||
|
||
- 2005-01-20 Fix: Minor speed improvement in the `sdmaux*` files (loop unrolling). | ||
|
||
- 2005-01-10 Fix: Minor speed improvement in `popK.m`. | ||
|
||
- 2005-01-10 Fix: `blkchol` is now invoked directly from `SeDuMi.m` without | ||
`sparchol`. | ||
|
||
- 2005-01-10 Fix: A small change in `Amul.m` resulted in drastic speed | ||
improvement for middle-sized problems. | ||
Additionally, `sum(c.*x)` is much faster than `c'*x` if `c` and `x` are sparse. | ||
The moral is that taking the transpose of a sparse matrix is slow. | ||
|
||
- 2004-01-03 Fix: Fixed a small bug in `wregion.m` concerning division by zero. | ||
(Johan Löfberg) | ||
|
||
- 2004-11-29 Fix: Many if-then statements checking for data validity in the C | ||
code were replaced by `mxAssert` statements. | ||
The only exceptions are memory failure checks. | ||
|
||
- 2004-11-29 Feature: Timing is changed. | ||
So far SeDuMi reported the CPU time spent in the main IPM loop. | ||
Now `info.timing` is a vector containing the time spent in the preprocessing, | ||
IPM and postprocessing, respectively. | ||
The old `info.cpusec` contains the total time of the algorithm. | ||
This does not make much difference now, since 99% of the time is spent in | ||
the IPM loop, but if more stuff is added to the pre- and postprocessing, | ||
this can be an issue. | ||
|
||
- 2004-11-11 Fix: Cleaned up the code with M-Lint. | ||
All unused variables and never used assignments are removed. | ||
All `|` and `&` are replaced with `||` and `&&` whenever it was possible. | ||
This speeds up conditional statements in the preprocessing phase. | ||
Unused .m and .c files are removed from the distribution. | ||
|
||
- 2004-11-03 Feature: pars.stopat can now be a vector. | ||
The algorithm enters debug mode at each iteration specified in `pars.stopat`. | ||
The order does not matter, invalid values are ignored. |
This file was deleted.
Oops, something went wrong.
This file was deleted.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,11 +1,91 @@ | ||
## SeDuMi: Optimization over symmetric cones | ||
# SeDuMi: Optimization over symmetric cones | ||
|
||
SeDuMi is a Matlab package for solving convex optimization problems involving linear equations and inequalities, second-order cone constraints, and semidefinite constraints (linear matrix inequalities). The original version was developed by Jos. F. Sturm, who sadly passed away in 2003. Development continued under the direction of [Prof. Tamás Terlaky](http://coral.ise.lehigh.edu/terlaky/) by former Ph.D. students Imre Pólik and Oleksandr Romanko. | ||
**SeDuMi (Self-Dual-Minimization)** is a Matlab/GNU Octave package for solving | ||
convex optimization problems involving linear equations and inequalities, | ||
second-order cone constraints, and semidefinite constraints (linear matrix | ||
inequalities). | ||
|
||
Of course, like many open-source projects, it has benefited considerably from contributions by others, including the developers of [YALMIP](https://yalmip.github.io/) and [CVX](http://cvxr.com), two modeling frameworks for optimization that use SeDuMi as a solver. The authors of these packages co-administer this repo, along with [Jonathan Currie](http://www.i2c2.aut.ac.nz/) from AUT University. | ||
Please note that this is an *unofficial* repository for SeDuMi. | ||
The [official SeDuMi site](https://sedumi.ie.lehigh.edu/) is hosted by the | ||
[CORAL Lab](https://coral.ise.lehigh.edu/) at the | ||
[Department of Industrial and Systems Engineering](https://engineering.lehigh.edu/ise) | ||
at [Lehigh University](https://www.lehigh.edu/). | ||
This repository was originally not intended to remain a permanent fork | ||
from the last official SeDuMi release. | ||
However, this repository contains a still maintained versions of SeDuMi. | ||
|
||
Please note that this is an *unofficial* repository for SeDuMi. The [official SeDuMi site](https://sedumi.ie.lehigh.edu/) is hosted by the [CORAL Lab](https://coral.ise.lehigh.edu/) at the [Department of Industrial and Systems Engineering](https://engineering.lehigh.edu/ise) at [Lehigh University](https://www.lehigh.edu/). *We do not intend for this repository to remain a permanent fork from the official SeDuMi release.* All improvements that we make here are communicated to the official SeDuMi maintainers for inclusion in the official release. | ||
This version of SeDuMi is distributed under the | ||
[GNU General Public License 2.0](https://www.gnu.org/licenses/old-licenses/gpl-2.0.en.html). | ||
|
||
You are welcome to submit bug reports on the [GitHub issue page](https://github.com/sqlp/sedumi/issues). We cannot guarantee that they will be addressed in a timely fashion, we will do our best. | ||
|
||
This version of SeDuMi is distributed under the [GNU General Public License 2.0](https://www.gnu.org/licenses/old-licenses/gpl-2.0.en.html). | ||
## Installation instructions | ||
|
||
Download and add the extracted SeDuMi directory to the Matlab load path | ||
and run | ||
|
||
install_sedumi | ||
|
||
This version of SeDuMi comes with pre-compiled binaries for Matlab (MS Windows, | ||
Linux, and macOS). In case the binaries don't work for your system, | ||
try to run | ||
|
||
install_sedumi -rebuild | ||
|
||
Note that you may have to install a compiler for Matlab first. | ||
Using GNU Octave, the binaries are compiled automatically. | ||
|
||
|
||
## Development History | ||
|
||
The original version was developed by Jos. F. Sturm, who sadly passed away | ||
in 2003. Development continued under the direction of | ||
[Prof. Tamás Terlaky](https://coral.ise.lehigh.edu/terlaky/) by former | ||
Ph.D. students Imre Pólik and Oleksandr Romanko. | ||
|
||
Of course, like many open-source projects, it has benefited considerably from | ||
contributions by others, including the developers of | ||
[YALMIP](https://yalmip.github.io/) and [CVX](http://cvxr.com), | ||
two modeling frameworks for optimization that use SeDuMi as a solver. | ||
The authors of these packages co-administer this repo, | ||
along with [Jonathan Currie](http://www.i2c2.aut.ac.nz/) from AUT University. | ||
|
||
For a list of changes for each SeDuMi version, check the file | ||
[Changelog.md](https://github.com/sqlp/sedumi/blob/master/Changelog.md). | ||
|
||
|
||
## Citation | ||
|
||
If you find this software useful, please cite it in your publication as follows: | ||
|
||
``` | ||
@article{doi:10.1080/10556789908805766, | ||
author = {Sturm, Jos F.}, | ||
title = {Using SeDuMi 1.02, A {MATLAB} toolbox for optimization over symmetric cones}, | ||
journal = {Optimization Methods and Software}, | ||
volume = {11}, | ||
number = {1-4}, | ||
pages = {625-653}, | ||
year = {1999}, | ||
doi = {10.1080/10556789908805766}, | ||
URL = {https://doi.org/10.1080/10556789908805766} | ||
} | ||
``` | ||
|
||
Account of original sources: | ||
|
||
The files `ordmmd.c` and `symfct.c` are C-versions of Fortran modules by | ||
Esmond G. Ng and Barry W. Peyton, Oak Ridge National Laboratory, 1994, | ||
from which large parts are based on SPARSPAK-A RELEASE III by Joseph W.H. Liu, | ||
University of Waterloo, 1984. | ||
|
||
All other files in this distribution are by Jos F. Sturm, Tilburg University, | ||
2001, updated and further developed by Imre Polik, McMaster University, | ||
Hamilton, Canada. | ||
|
||
|
||
## Report problems | ||
|
||
You are welcome to submit bug reports or request for help on the | ||
[GitHub issue page](https://github.com/sqlp/sedumi/issues). | ||
We cannot guarantee that they will be addressed in a timely fashion, | ||
we will do our best. |
Oops, something went wrong.