Skip to content

Commit

Permalink
Prepare for minor 1.3.5 release
Browse files Browse the repository at this point in the history
  • Loading branch information
siko1056 committed Jun 15, 2021
1 parent 7515717 commit 671741c
Show file tree
Hide file tree
Showing 7 changed files with 256 additions and 162 deletions.
169 changes: 169 additions & 0 deletions Changelog.md
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.
84 changes: 0 additions & 84 deletions Changelog.txt

This file was deleted.

16 changes: 0 additions & 16 deletions Install.txt

This file was deleted.

92 changes: 86 additions & 6 deletions README.md
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.
Loading

0 comments on commit 671741c

Please sign in to comment.