Skip to content

Commit 9289d82

Browse files
committed
Initial commit
0 parents  commit 9289d82

File tree

186 files changed

+29159
-0
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

186 files changed

+29159
-0
lines changed

Amul.m

Lines changed: 57 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,57 @@
1+
% y = Amul(At,dense,x,transp)
2+
% AMUL Computes A*x (transp=0) or A'*x (transp=1), taking care of dense.A.
3+
%
4+
% ********** INTERNAL FUNCTION OF SEDUMI **********
5+
%
6+
% See also sedumi
7+
8+
function y = Amul(At,dense,x,transp)
9+
%
10+
% This file is part of SeDuMi 1.1 by Imre Polik and Oleksandr Romanko
11+
% Copyright (C) 2005 McMaster University, Hamilton, CANADA (since 1.1)
12+
%
13+
% Copyright (C) 2001 Jos F. Sturm (up to 1.05R5)
14+
% Dept. Econometrics & O.R., Tilburg University, the Netherlands.
15+
% Supported by the Netherlands Organization for Scientific Research (NWO).
16+
%
17+
% Affiliation SeDuMi 1.03 and 1.04Beta (2000):
18+
% Dept. Quantitative Economics, Maastricht University, the Netherlands.
19+
%
20+
% Affiliations up to SeDuMi 1.02 (AUG1998):
21+
% CRL, McMaster University, Canada.
22+
% Supported by the Netherlands Organization for Scientific Research (NWO).
23+
%
24+
% This program is free software; you can redistribute it and/or modify
25+
% it under the terms of the GNU General Public License as published by
26+
% the Free Software Foundation; either version 2 of the License, or
27+
% (at your option) any later version.
28+
%
29+
% This program is distributed in the hope that it will be useful,
30+
% but WITHOUT ANY WARRANTY; without even the implied warranty of
31+
% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
32+
% GNU General Public License for more details.
33+
%
34+
% You should have received a copy of the GNU General Public License
35+
% along with this program; if not, write to the Free Software
36+
% Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
37+
% 02110-1301, USA
38+
%
39+
40+
if nargin < 4
41+
transp = 0;
42+
end
43+
if transp == 0
44+
%Since At is sparse calculating At'*x takes a lot of time, while x'*At
45+
%is much faster!
46+
y = (x'*At)'; %y(m) and x(N).
47+
else
48+
y = full(At*x); % y(N) and x(m)
49+
end
50+
if length(dense.cols) > 0
51+
if transp == 0
52+
y = y + dense.A*x(dense.cols);
53+
else
54+
y = full(At*x);
55+
y(dense.cols) = dense.A'*x;
56+
end
57+
end

Changelog.txt

Lines changed: 78 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,78 @@
1+
New features in SeDuMi 1.1 since 1.05R5
2+
3+
20041103 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.
4+
5+
20041111 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.
6+
7+
20041129 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.
8+
9+
20041129 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.
10+
11+
20040103 Fix: Fixed a small bug in wregion.m concerning division by zero. (Johan Lofberg)
12+
13+
20050110 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.
14+
15+
20050110 Fix: blkchol is now invoked directly from SeDuMi.m without sparchol.
16+
17+
20050110 Fix: Minor speed improvement in popK.m.
18+
19+
20050120 Fix: Minor speed improvement in the sdmaux* files (loop unrolling).
20+
21+
20050202 Feature: If pars.errors=1 then SeDuMi outputs the six errors measures defined in the 7th DIMACS challenge
22+
paper that is available at http://plato.asu.edu/dimacs/node3.html. These are in info.err1, ...info.err6.
23+
24+
20050302 Fix: New default values. pars.eps=1e-8, pars.stepdif=2, pars.cg.qprec=1.
25+
26+
20050302 Feature: Preprocessing routines are now included. Diagonal SDP bolcks are converted into nonnegative variables. Free variables are handled in a quadratic cone, split free veriables are detected in the linear part. The sparsity structure of A is corrected at the end of preprocessing.
27+
28+
20050302 Feature: New options to control preprocessing: pars.free, pars.sdp
29+
30+
20050302 Feature: Included a simple heuristic to turn step-differentiation on/off.
31+
32+
20050302 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.
33+
34+
20050302 Fix: The 'See also' references at the end of the help portions are now clickable.
35+
36+
20050510 Feature: The binaries are now built from Matlab, see Install.txt for details.
37+
38+
20050610 Fix: && and || were replaced by & and | to make the package compatible with Matlab 6.0 (R12)
39+
40+
20050621 Fix: A bug about complex variables has been reported by Michael C. Grant, the correct version is now available.
41+
42+
20050622 Fix: A bug about free variable handling has been reported by Johan L�fberg, the fixed version is now posted.
43+
44+
20060712 Fix: A bug was discovered by Paul Tseng when using free variables together with rotated Lorentz cones.
45+
46+
20061010 Fix: The solutions were incorrect if the error measures were turned on.
47+
48+
20061010 Fix: Matlab R2006B does not support fprintf with fid=0, (i.e., no output). a Workaround is provided. (Thanks to Johan L�fberg)
49+
50+
20061010 Fix: The semidefinite preprocessing assumed that there are no free variables.
51+
52+
20061010 Fix: Michael Grant corrected a bug in the postprocessing phase.
53+
54+
20061010 Fix: A new, completely rewritten SDPA format reader is provided in the conversion folder. It is fast and it follows the SDPA standard.
55+
56+
20061014 Fix: A bugfix was contributed by Michael Grant regarding the handling of 2-dimensional Lorentz cones.
57+
58+
20080409 Fix: SeDuMi now works on 64bit operating systems.
59+
60+
20080409 Fix: BLAS is used to improve performance.
61+
62+
20090510 Fix: Some BLAS calls are fixed in blkaux.c
63+
64+
20090510 Fix: A new installer script is provided by Michael Grant.
65+
66+
20090510 Fix: Michael Grant modified some files to compile under 64 bit versions.
67+
68+
20090805 Fix: Based on feedback from Didier Henrion and others, the rank and infeasibility detection code has been modified.
69+
70+
20090905 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 walltime.
71+
72+
20091115 Fix: the psdeig, psdinvscale, psdjmul, psdfactor, psdscale and triumtriu mex files were replaced with a pure matlab equivalent
73+
74+
20091125 Fix: computation in getsymbada.m has been reorganized for speed
75+
76+
20100215 Fix: getada1 and getada2 have been backported to matlab, which actually increases speed, due to parallel BLAS
77+
78+
20100215 Fix: global variables are used for some large data structures (ADA, At)

Contents.m

Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
% SeDuMi 1.1 (May 2005)
2+
% Toolbox for optimization over self-dual homogeneous cones.
3+
%
4+
% This file is part of SeDuMi 1.1 by Imre Polik and Oleksandr Romanko
5+
% Copyright (C) 2005 McMaster University, Hamilton, CANADA (since 1.1)
6+
%
7+
% Copyright (C) 2001 Jos F. Sturm (up to 1.05R5)
8+
% Dept. Econometrics & O.R., Tilburg University, the Netherlands.
9+
% Supported by the Netherlands Organization for Scientific Research (NWO).
10+
%
11+
% Affiliation SeDuMi 1.03 and 1.04Beta (2000):
12+
% Dept. Quantitative Economics, Maastricht University, the Netherlands.
13+
%
14+
% Affiliations up to SeDuMi 1.02 (AUG1998):
15+
% CRL, McMaster University, Canada.
16+
% Supported by the Netherlands Organization for Scientific Research (NWO).
17+
%
18+
% This program is free software; you can redistribute it and/or modify
19+
% it under the terms of the GNU General Public License as published by
20+
% the Free Software Foundation; either version 2 of the License, or
21+
% (at your option) any later version.
22+
%
23+
% This program is distributed in the hope that it will be useful,
24+
% but WITHOUT ANY WARRANTY; without even the implied warranty of
25+
% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
26+
% GNU General Public License for more details.
27+
%
28+
% You should have received a copy of the GNU General Public License
29+
% along with this program; if not, write to the Free Software
30+
% Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
31+
% 02110-1301, USA
32+
%
33+
% J.F. Sturm, "Using SeDuMi 1.02, a MATLAB toolbox for optimization over
34+
% symmetric cones," Optimization Methods and Software 11-12 (1999) 625-653.
35+
% http://fewcal.kub.nl/sturm
36+
%
37+
% Optimization and analysis
38+
% sedumi - Optimization with linear, quadratic and/or semi-definite
39+
% constraints
40+
% eigK - Spectral factorization with respect to symmetric cones
41+
% vec - Standard vec operator
42+
% mat - Inverse of vec
43+
% eyeK - Identity with respect to symmetric cones
44+
% cellK - Transforms x-solution into a cell array
45+
%
46+
% See also conversion.

Install.txt

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
Welcome to SeDuMi 1.3
2+
3+
SeDuMi 1.3 Installation instructions
4+
5+
This version of SeDuMi comes with binaries for recent (tested up to Matlab 2009b) versions of Matlab in both 32 bit and 64 bit flavour under Windows, Linux and Mac OS. In case the binaries don't work for your system, try to run install_sedumi. Note that you may have to install a compiler for Matlab first.
6+
7+
If you encounter any problems, you can post your question on the SeDuMi forum at http://sedumi.ie.lehigh.edu
8+
9+
10+
==========> L e t Se Du Mi s e d u c e y o u t o o ! <==========
11+
Imre Polik
12+
April 6, 2010

PopK.m

Lines changed: 55 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,55 @@
1+
% [y, ddotx, Dx, xTy] = PopK(d,x,K,lpq)
2+
% POPK Implements the quadratic operator for symmetric cones K.
3+
%
4+
% ********** INTERNAL FUNCTION OF SEDUMI **********
5+
%
6+
% See also sedumi
7+
8+
function [y, ddotx, Dx, xTy] = PopK(d,x,K,lpq)
9+
%
10+
% This file is part of SeDuMi 1.1 by Imre Polik and Oleksandr Romanko
11+
% Copyright (C) 2005 McMaster University, Hamilton, CANADA (since 1.1)
12+
%
13+
% Copyright (C) 2001 Jos F. Sturm (up to 1.05R5)
14+
% Dept. Econometrics & O.R., Tilburg University, the Netherlands.
15+
% Supported by the Netherlands Organization for Scientific Research (NWO).
16+
%
17+
% Affiliation SeDuMi 1.03 and 1.04Beta (2000):
18+
% Dept. Quantitative Economics, Maastricht University, the Netherlands.
19+
%
20+
% Affiliations up to SeDuMi 1.02 (AUG1998):
21+
% CRL, McMaster University, Canada.
22+
% Supported by the Netherlands Organization for Scientific Research (NWO).
23+
%
24+
% This program is free software; you can redistribute it and/or modify
25+
% it under the terms of the GNU General Public License as published by
26+
% the Free Software Foundation; either version 2 of the License, or
27+
% (at your option) any later version.
28+
%
29+
% This program is distributed in the hope that it will be useful,
30+
% but WITHOUT ANY WARRANTY; without even the implied warranty of
31+
% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
32+
% GNU General Public License for more details.
33+
%
34+
% You should have received a copy of the GNU General Public License
35+
% along with this program; if not, write to the Free Software
36+
% Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
37+
% 02110-1301, USA
38+
%
39+
if nargin < 4
40+
lpq = 0;
41+
end
42+
% LP / Lorentz
43+
i1 = K.mainblks(1);
44+
i2 = K.mainblks(2);
45+
y = [d.l .* x(1:i1-1); -d.det .* x(i1:i2-1); qblkmul(d.det,x,K.qblkstart)];
46+
ddotx = (d.q1).*x(i1:i2-1) + ddot(d.q2,x,K.qblkstart);
47+
% PSD:
48+
Dx = psdscale(d,x,K);
49+
if lpq == 0
50+
y = [y; psdscale(d,Dx,K,1)]; % Include PSD-part
51+
end
52+
% xTy:
53+
if nargout >= 4
54+
xTy = x(1:K.lq)'*y(1:K.lq) + sum(ddotx.^2) + sum(Dx.^2);
55+
end

Readme.txt

Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
1+
Welcome to SeDuMi 1.3
2+
3+
SeDuMi is a Matlab Toolbox for Linear, Second order, Semidefinite or mixed
4+
problems. It can handle free variables and complex data as well.
5+
6+
To obtain the latest version of SeDuMi, see
7+
8+
http://sedumi.ie.lehigh.edu
9+
10+
Installation instructions can be found in the file
11+
12+
Install.txt
13+
14+
After you installed the binaries please type
15+
16+
help sedumi
17+
18+
in Matlab to get more information. Example problems can be found
19+
in the folder /examples, documentation is in /doc.
20+
21+
For a list of changes check the file Changelog.txt.
22+
23+
24+
--------------------------------------------------------------------
25+
26+
27+
This product is made available under the GNU General Public License, see
28+
the file COPYING for details.
29+
30+
Account of original sources:
31+
The files ordmmd.c and symfct.c are C-versions of Fortran modules by
32+
Esmond G. Ng and Barry W. Peyton, Oak Ridge National Laboratory, 1994,
33+
from which large parts are based on SPARSPAK-A RELEASE III by Joseph W.H. Liu,
34+
University of Waterloo, 1984.
35+
All other files in this distribution are by Jos F. Sturm, Tilburg
36+
University, 2001, updated and further developed by Imre Polik,
37+
McMaster University, Hamilton, Canada.
38+
39+
40+
* CITATION INFORMATION ** CITATION INFORMATION ** CITATION INFORMATION *
41+
If you find this software useful, please cite it in your publication as
42+
follows:
43+
@Article{S98guide,
44+
author = {Sturm, J.F.},
45+
title = {Using {SeDuMi} 1.02, a {MATLAB} toolbox for optimization over symmetric cones},
46+
journal = {Optimization Methods and Software},
47+
year = 1999,
48+
volume = {11--12},
49+
pages = {625--653},
50+
note = {Version 1.05 available from {\texttt{http://fewcal.kub.nl/sturm}}}
51+
}
52+
53+
Bethlehem, PA, USA, April 6, 2010

Version.txt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
1.30
2+
20100405

ada_pcg.m

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
%A dummy file for Yalmip.

0 commit comments

Comments
 (0)