diff options
author | Maho Nakata <maho@FreeBSD.org> | 2008-10-06 03:06:17 +0000 |
---|---|---|
committer | Maho Nakata <maho@FreeBSD.org> | 2008-10-06 03:06:17 +0000 |
commit | 0b65a65c721919f9acdcc4b49c4b6192c1f7bc9d (patch) | |
tree | 25b7124ed5d29bac8b8511b1dc8b761a074fbca3 /math/sedumi | |
parent | 73a0f2a3eb5528815a5ed1db70ab612e8fe05376 (diff) | |
download | ports-0b65a65c721919f9acdcc4b49c4b6192c1f7bc9d.tar.gz ports-0b65a65c721919f9acdcc4b49c4b6192c1f7bc9d.zip |
Add math/sedumi
SeDuMi is a software package to solve optimization problems over symmetric
cones. This includes linear, quadratic, second order conic and semidefinite
optimization, and any combination of these.
WWW: http://sedumi.mcmaster.ca/
Notes
Notes:
svn path=/head/; revision=221262
Diffstat (limited to 'math/sedumi')
-rw-r--r-- | math/sedumi/Makefile | 51 | ||||
-rw-r--r-- | math/sedumi/distinfo | 3 | ||||
-rw-r--r-- | math/sedumi/files/patch-and_or | 318 | ||||
-rw-r--r-- | math/sedumi/files/patch-posttransfo.m | 11 | ||||
-rw-r--r-- | math/sedumi/files/patch-string.h | 40 | ||||
-rw-r--r-- | math/sedumi/pkg-descr | 5 | ||||
-rw-r--r-- | math/sedumi/pkg-plist | 154 |
7 files changed, 582 insertions, 0 deletions
diff --git a/math/sedumi/Makefile b/math/sedumi/Makefile new file mode 100644 index 000000000000..ca70ac45cfdc --- /dev/null +++ b/math/sedumi/Makefile @@ -0,0 +1,51 @@ +# New ports collection makefile for: sedumi +# Date created: 2008/10/6 +# Whom: NAKATA, Maho <maho@FreeBSD.org> +# +# $FreeBSD$ +# + +PORTNAME= sedumi +PORTVERSION= 1.1 +CATEGORIES= math +MASTER_SITES= ${MASTER_SITE_LOCAL:S|%SUBDIR%|maho/sedumi|} +# http://sedumi.mcmaster.ca/ +DISTNAME= SeDuMi_1_1R3 + +MAINTAINER= maho@FreeBSD.org +COMMENT= SeDuMi is an semidefinite programming solver on Matlab + +RUN_DEPENDS= octave:${PORTSDIR}/math/octave +BUILD_DEPENDS= octave:${PORTSDIR}/math/octave + +USE_ZIP= yes +WRKSRC= ${WRKDIR}/SeDuMi_1_1 + +pre-patch: + @${LS} ${WRKSRC}/*.m ${WRKSRC}/*.c > ${WRKDIR}/FILELIST + @for i in `${CAT} ${WRKDIR}/FILELIST`; do \ + cd ${WRKSRC} ; ${REINPLACE_CMD} -e 's#
##g' $$i ; \ + done + @cd ${WRKSRC} ; ${RM} *.bak + +pre-build: + @cd ${WRKSRC} ; ${RM} *.dll *.orig + +do-build: + cd ${WRKSRC} ; octave install_sedumi.m + @cd ${WRKSRC} ; ${RM} *.c *.o + +do-install: + ${MKDIR} ${PREFIX}/sedumi + ${INSTALL_PROGRAM} ${WRKSRC}/*mex ${PREFIX}/sedumi + ${INSTALL_DATA} ${WRKSRC}/*m ${PREFIX}/sedumi +.ifndef (NOPORTDOCS) + ${MKDIR} ${DOCSDIR} + ${INSTALL_DATA} ${WRKSRC}/*.txt ${DOCSDIR} + ${INSTALL_DATA} ${WRKSRC}/doc/* ${DOCSDIR} +.endif +.ifndef (NOPORTEXAMPLES) + ${MKDIR} ${EXAMPLESDIR} + ${INSTALL_DATA} ${WRKSRC}/examples/* ${EXAMPLESDIR} +.endif +.include <bsd.port.mk> diff --git a/math/sedumi/distinfo b/math/sedumi/distinfo new file mode 100644 index 000000000000..2267f9e5c6ee --- /dev/null +++ b/math/sedumi/distinfo @@ -0,0 +1,3 @@ +MD5 (SeDuMi_1_1R3.zip) = 8fd979e599eb7e01dc585accc1573aa0 +SHA256 (SeDuMi_1_1R3.zip) = a81ca3a00b87e3a1cced26d8b340f90bb170e050513ec219acbc90da0a330b22 +SIZE (SeDuMi_1_1R3.zip) = 2235915 diff --git a/math/sedumi/files/patch-and_or b/math/sedumi/files/patch-and_or new file mode 100644 index 000000000000..2d3675f769cf --- /dev/null +++ b/math/sedumi/files/patch-and_or @@ -0,0 +1,318 @@ +--- checkpars.m 2008-10-06 10:28:27.000000000 +0900 ++++ checkpars.m 2008-10-06 10:28:59.000000000 +0900 +@@ -41,7 +41,7 @@ + % -------------------------------------------------- + % Algorithm selection parameters + % -------------------------------------------------- +-if ~isfield(pars,'alg') | sum([0 1 2] == pars.alg) == 0 ++if ~isfield(pars,'alg') || sum([0 1 2] == pars.alg) == 0 + pars.alg = 2; + end + if ~isfield(pars,'beta') % 0.1 <= beta <= 0.9 (theoretically in (0,1)) +@@ -88,7 +88,7 @@ + % -------------------------------------------------- + % Initialization + % -------------------------------------------------- +-if ~isfield(pars,'mu') | pars.mu <= 0 ++if ~isfield(pars,'mu') || pars.mu <= 0 + pars.mu = 1; + end + % -------------------------------------------------- + +--- getsymbada.m 2008-10-06 10:28:27.000000000 +0900 ++++ getsymbada.m 2008-10-06 10:34:06.000000000 +0900 +@@ -42,7 +42,7 @@ + + Alpq = spones(extractA(At,Ablkjc,0,3,1,psdblkstart(1))); + Ablks = findblks(At,Ablkjc,3,[],psdblkstart); +-if spars(Ablks)==1 | spars(Alpq)==1 | (~isempty(DAt.q) & spars(DAt.q)==1) ++if spars(Ablks)==1 || spars(Alpq)==1 || (~isempty(DAt.q) && spars(DAt.q)==1) + SYMBADA=sparse(ones(size(At,2),size(At,2))); + else + SYMBADA = Alpq' * Alpq + Ablks'*Ablks + DAt.q'*DAt.q; + +--- optstep.m 2008-10-06 10:28:27.000000000 +0900 ++++ optstep.m 2008-10-06 10:30:28.000000000 +0900 +@@ -48,7 +48,7 @@ + z0 = x0 / d.l(1); + %This value is never used. + %deptol = 1E-10 * max(x0,z0); +- if (feasratio < -0.5) & (x0 < z0*z0) ++ if (feasratio < -0.5) && (x0 < z0*z0) + x0 = 0; % Try project onto direction. + end + % ------------------------------------------------------------ +@@ -82,7 +82,7 @@ + % ---------------------------------------- + % CHECK WHETHER x[B] >= 0 AND WHETHER RESIDUAL DID NOT DETERIORATE. + % ---------------------------------------- +- if (min(x) < 0.0) | ... ++ if (min(x) < 0.0) || ... + (norm(err.b,inf) > 5 * max(max(y0,1e-10 * x0) * R.maxb, y0 * R.maxRb)) + x = []; % Incorrect guess of LP-basis + return +@@ -111,7 +111,7 @@ + cx = c'*x; + by = b'*y; + z0 = by - cx; %[JFS 9/2003: changed condition below +- if (~isempty(lpNB) & (min(z(lpNB)) < 0.0)) | ... ++ if (~isempty(lpNB) && (min(z(lpNB)) < 0.0)) || ... + normzB > 5 * max(1E-10 * (x0+(x0==0)) * norm(c), min(y0,1e-8) * norm(R.c)) + x = []; % Incorrect guess of LP-basis + return + +--- posttransfo.m 2008-10-06 10:28:27.000000000 +0900 ++++ posttransfo.m 2008-10-06 10:34:23.000000000 +0900 +@@ -82,7 +82,7 @@ + % ---------------------------------------- + % Postprocess the SDP part + % ---------------------------------------- +-if pars.sdp==1 & isfield(prep,'sdp') ++if pars.sdp==1 && isfield(prep,'sdp') + xpf(1:K.f,1)=xp(1:K.f); + xp=xp(K.f+1:end); + Kf=K.f; + +--- pretransfo.m 2008-10-06 10:28:27.000000000 +0900 ++++ pretransfo.m 2008-10-06 10:37:11.000000000 +0900 +@@ -43,14 +43,14 @@ + K.f = 0; + elseif isempty(K.f) + K.f = 0; +-elseif (K.f~= floor(K.f)) | (K.f < 0) ++elseif (K.f~= floor(K.f)) || (K.f < 0) + error('K.f should be nonnegative integer') + end + if ~isfield(K,'l') % K.l + K.l = 0; + elseif isempty(K.l) + K.l = 0; +-elseif (K.l~= floor(K.l)) | (K.l < 0) ++elseif (K.l~= floor(K.l)) || (K.l < 0) + error('K.l should be nonnegative integer') + end + if ~isfield(K,'q') % K.q +@@ -58,7 +58,7 @@ + elseif sum(K.q) == 0 + K.q = []; + elseif ~isempty(K.q) +- if (min(K.q) < 2) | any(K.q~= floor(K.q)) ++ if (min(K.q) < 2) || any(K.q~= floor(K.q)) + error('K.q should contain only integers bigger than 1') + end + if size(K.q,1) > 1 +@@ -70,7 +70,7 @@ + elseif sum(K.r) == 0 + K.r = []; + elseif ~isempty(K.r) +- if (min(K.r) < 3) | any(K.r~= floor(K.r)) ++ if (min(K.r) < 3) || any(K.r~= floor(K.r)) + error('K.r should contain only integers bigger than 2') + end + if size(K.r,1) > 1 +@@ -82,7 +82,7 @@ + elseif sum(K.s) == 0 + K.s = []; + elseif ~isempty(K.s) +- if min(K.s < 1) | any(K.s~= floor(K.s)) ++ if min(K.s < 1) || any(K.s~= floor(K.s)) + error('K.s should contain only positive integers') + end + if size(K.s,1) > 1 +@@ -95,7 +95,7 @@ + if ~isfield(K,'ycomplex') % K.ycomplex + K.ycomplex = []; + elseif ~isempty(K.ycomplex) +- if (min(K.ycomplex) < 1) | (min(size(K.ycomplex)) > 1) | ... ++ if (min(K.ycomplex) < 1) || (min(size(K.ycomplex)) > 1) || ... + any(K.ycomplex~= floor(K.ycomplex)) + error('K.ycomplex should be a list containing only positive integers') + end +@@ -109,7 +109,7 @@ + if ~isfield(K,'xcomplex') % K.xcomplex + K.xcomplex = []; + elseif ~isempty(K.xcomplex) +- if (min(K.xcomplex) < 1) | (min(size(K.xcomplex))) > 1 | ... ++ if (min(K.xcomplex) < 1) || (min(size(K.xcomplex))) > 1 || ... + any(K.xcomplex~= floor(K.xcomplex)) + error('K.xcomplex should be a list containing only positive integers') + end +@@ -123,7 +123,7 @@ + if ~isfield(K,'scomplex') % K.scomplex + K.scomplex = []; + elseif ~isempty(K.scomplex) +- if min(K.scomplex) < 1 | min(size(K.scomplex)) > 1 | ... ++ if min(K.scomplex) < 1 || min(size(K.scomplex)) > 1 || ... + any(K.scomplex~= floor(K.scomplex)) + error('K.scomplex should be a list containing only positive integers') + end +@@ -138,7 +138,7 @@ + % Check size of At,b,c (w.r.t. K) + % Let m = #eq-constraints, N = #variables (before transformations) + % ---------------------------------------- +-if (min(size(b)) > 1) | (min(size(c)) > 1) ++if (min(size(b)) > 1) || (min(size(c)) > 1) + error('Parameters b and c must be vectors') + end + m = min(size(At)); +@@ -175,16 +175,16 @@ + % ------------------------------------------------------------ + % Check for NaN and Inf + % ------------------------------------------------------------ +-if any(any(isnan(At))) | any(isnan(b)) | any(isnan(c)) ++if any(any(isnan(At))) || any(isnan(b)) || any(isnan(c)) + error('A,b,c data contains NaN values') + end +-if any(any(isinf(At))) | any(isinf(b)) | any(isinf(c)) ++if any(any(isinf(At))) || any(isinf(b)) || any(isinf(c)) + error('A,b,c data contains Inf values') + end + % ------------------------------------------------------------ + % Save the standardized data for further use if needed + % ------------------------------------------------------------ +-if isfield(pars,'errors') & pars.errors==1 ++if isfield(pars,'errors') && pars.errors==1 + origcoeff.At=At; + origcoeff.c=c; + origcoeff.b=b; +@@ -271,7 +271,7 @@ + if ~isfield(pars,'free') + pars.free=1; + end +-if pars.free & K.l>0 ++if pars.free && K.l>0 + stest=c(K.f+1:K.f+K.l)-At(K.f+1:K.f+K.l,:)*rand(m,1); + %Now we detect if stest contains the same vector twice, or opposite + %vectors. + +--- sedumi.m 2008-10-06 10:28:27.000000000 +0900 ++++ sedumi.m 2008-10-06 10:35:24.000000000 +0900 +@@ -293,10 +293,10 @@ + my_fprintf(pars.fid,'Detected %i diagonal SDP block(s) with %i linear variables\n',blockcount,varcount); + end + end +- if isfield(prep,'freeblock1') & length(prep.freeblock1)>0 ++ if isfield(prep,'freeblock1') && length(prep.freeblock1)>0 + my_fprintf(pars.fid,'Detected %i free variables in the linear part\n',length(prep.freeblock1)); + end +- if isfield(prep,'Kf') & prep.Kf>0 ++ if isfield(prep,'Kf') && prep.Kf>0 + switch pars.free + case 0 + my_fprintf(pars.fid,'Split %i free variables\n',prep.Kf); +@@ -384,9 +384,9 @@ + keyboard + end + +- if pars.stepdif==2 & ... +- (iter>20 | (iter>1 & (err.kcg + Lsd.kcg>3)) | ... +- (iter>5 & abs(1-feasratio)<0.05) ) ++ if pars.stepdif==2 && ... ++ (iter>20 || (iter>1 && (err.kcg + Lsd.kcg>3)) || ... ++ (iter>5 && abs(1-feasratio)<0.05) ) + pars.stepdif=1; + end + % -------------------------------------------------- +@@ -438,7 +438,7 @@ + meritOld = merit; + merit = (sum(R.w) + max(R.sd,0))^2 * y0 / R.b0; + rate = merit / meritOld; +- if (rate >= 0.9999) & (wr.desc == 1) ++ if (rate >= 0.9999) && (wr.desc == 1) + % ------------------------------------------------------------ + % STOP = -1 --> Stop due to numerical problems + % ------------------------------------------------------------ +@@ -470,7 +470,7 @@ + % If we get in superlinear region of LP, + % try to guess optimal solution: + % ---------------------------------------- +- if lponly & (rate < 0.05) ++ if lponly && (rate < 0.05) + [xsol,ysol] = optstep(A,b,c, y0,y,d,v,dxmdz, ... + K,L,symLden,dense, Ablkjc,Aord,ADA,DAt, feasratio, R,pars); + if ~isempty(xsol) +@@ -478,7 +478,7 @@ + feasratio = 1 - 2*(xsol(1)==0); + break + end +- elseif (by > 0) & (abs(1+feasratio) < 0.05) & (R.b0*y0 < 0.5) ++ elseif (by > 0) && (abs(1+feasratio) < 0.05) && (R.b0*y0 < 0.5) + if max(eigK(full(qreshape(Amul(A,dense,y,1),1,K)),K)) <= pars.eps * by + STOP = 3; % Means Farkas solution found ! + break +@@ -576,7 +576,7 @@ + % If the quality of the Farkas solution is good and better than + % the approx. feasible soln, set x0=0: Farkas solution found. + % ------------------------------------------------------------ +- if (reldirinf < pars.eps) | (relinf > max(pars.bigeps, reldirinf)) ++ if (reldirinf < pars.eps) || (relinf > max(pars.bigeps, reldirinf)) + x0 = 0.0; + pinf = pdirinf; + dinf = ddirinf; +@@ -654,7 +654,7 @@ + my_fprintf(pars.fid, 'Failed: no sensible solution/direction found.\n'); + info.numerr = 2; + elseif STOP == -1 +- if (pinf > -pars.eps * cx) & (dinf > pars.eps * by) ++ if (pinf > -pars.eps * cx) && (dinf > pars.eps * by) + info.numerr = 1; + else + info.numerr = 0; + +--- stepdif.m 2008-10-06 10:28:27.000000000 +0900 ++++ stepdif.m 2008-10-06 10:35:37.000000000 +0900 +@@ -61,7 +61,7 @@ + % CASE Rsd > 0: gap constraint locally part of merit. + % CASE Rsd < 0: gap constraint locally not part of merit. + % ------------------------------------------------------------ +-usegap = (R.sd > 0) | (R.sd == 0 & dRg > 0); ++usegap = (R.sd > 0) || (R.sd == 0 && dRg > 0); + if usegap + r0 = R.w(1)+R.w(2)+R.sd; + beta = (rdy0 * R.w(1) + rcdx)/ r0; +diff -u widelen.m widelen.m +--- widelen.m 2008-10-06 10:28:27.000000000 +0900 ++++ widelen.m 2008-10-06 10:32:16.000000000 +0900 +@@ -71,7 +71,7 @@ + % ------------------------------------------------------------ + t = 0.0; + ntry = 0; % do loop at least once +-while (t < 0.5 * tR) | ( (fullt-tR) + (1e-7 * fullt) < (tR - t) ) | ntry==0 ++while (t < 0.5 * tR) || ( (fullt-tR) + (1e-7 * fullt) < (tR - t) ) || ntry==0 + ntry = 1; + if tR == maxt % Bisection + tM = 0.1 * t + 0.9 * tR; +@@ -105,7 +105,7 @@ + % ALL: + wM.lab = [xM(1:K.l).*zM(1:K.l); detxz ./ lab2q; lab2q; psdeig(wM.s,K)]; + [deltaM,hM,alphaM] = iswnbr(wM.lab, thetaSQR); +- if (deltaM <= pars.beta) | ((tM < fullt / 10) & (deltaM < 1)) ++ if (deltaM <= pars.beta) || ((tM < fullt / 10) && (deltaM < 1)) + w = wM; + t = tM; + wr.h=hM; + +--- wregion.m 2008-10-06 10:45:27.000000000 +0900 ++++ wregion.m 2008-10-06 10:45:48.000000000 +0900 +@@ -62,9 +62,9 @@ + [uzc.u,zispos] = psdfactor(zc,K); + critval = max(y0, sqrt(min(d.l(1),1/d.l(1)))*v(1)); % >= y0 + critval = max(1E-3, pars.cg.restol) * critval * R.maxRb; +- if (~xispos) | (~zispos) | (errc.maxb > critval) ... +- | ( (~isempty(uxc.tdet)) & (min(uxc.tdet) <= 0.0)) ... +- | ( (~isempty(uzc.tdet)) & (min(uzc.tdet) <= 0.0)) ++ if (~xispos) || (~zispos) || (errc.maxb > critval) ... ++ || ( (~isempty(uxc.tdet)) && (min(uxc.tdet) <= 0.0)) ... ++ || ( (~isempty(uzc.tdet)) && (min(uzc.tdet) <= 0.0)) + STOP = -1; % Reject and terminate + dxmdz = []; + err = errc; +@@ -121,7 +121,7 @@ + % i.e. errb <= phi*(-dy0) * (1+t*dy0/y0) * maxRb + % ---------------------------------------- + PHI = 0.5; +- if dy0 < 0 & (PHI*dy0^2*R.maxRb)~=0 ++ if dy0 < 0 && (PHI*dy0^2*R.maxRb)~=0 + critval = - (PHI * dy0*R.maxRb + err.maxb)*y0c / (PHI*dy0^2*R.maxRb); + else + critval = 1; diff --git a/math/sedumi/files/patch-posttransfo.m b/math/sedumi/files/patch-posttransfo.m new file mode 100644 index 000000000000..71d858e70c04 --- /dev/null +++ b/math/sedumi/files/patch-posttransfo.m @@ -0,0 +1,11 @@ +--- posttransfo.m~ 2008-10-06 10:55:23.000000000 +0900 ++++ posttransfo.m 2008-10-06 11:04:36.000000000 +0900 +@@ -83,7 +83,7 @@ + % Postprocess the SDP part + % ---------------------------------------- + if pars.sdp==1 && isfield(prep,'sdp') +- xpf(1:K.f,1)=xp(1:K.f); ++ xpf=xp(1:K.f); + xp=xp(K.f+1:end); + Kf=K.f; + K.f=0; diff --git a/math/sedumi/files/patch-string.h b/math/sedumi/files/patch-string.h new file mode 100644 index 000000000000..c74fb2ed7957 --- /dev/null +++ b/math/sedumi/files/patch-string.h @@ -0,0 +1,40 @@ +--- iswnbr.c~ 2008-10-06 10:47:34.000000000 +0900 ++++ iswnbr.c 2008-10-06 10:51:42.000000000 +0900 +@@ -39,6 +39,7 @@ + + #include <math.h> + #include <stdlib.h> ++#include <string.h> + #include "mex.h" + + #define DELTA_OUT myplhs[0] +--- quadadd.c~ 2008-10-06 10:47:34.000000000 +0900 ++++ quadadd.c 2008-10-06 10:51:34.000000000 +0900 +@@ -39,6 +39,7 @@ + */ + #include <math.h> + #include "mex.h" ++#include <string.h> + #include "blksdp.h" + + #define ZHI_OUT myplhs[0] +--- vecsym.c~ 2008-10-06 10:47:34.000000000 +0900 ++++ vecsym.c 2008-10-06 10:51:18.000000000 +0900 +@@ -39,6 +39,7 @@ + + #include <math.h> + #include "mex.h" ++#include <string.h> + #include "blksdp.h" + + #define Y_OUT plhs[0] +--- bwblkslv.c~ 2008-10-06 10:47:33.000000000 +0900 ++++ bwblkslv.c 2008-10-06 10:51:12.000000000 +0900 +@@ -42,6 +42,7 @@ + */ + + #include "mex.h" ++#include <string.h> + #include "blksdp.h" + + #define Y_OUT plhs[0] diff --git a/math/sedumi/pkg-descr b/math/sedumi/pkg-descr new file mode 100644 index 000000000000..7a34b9d7e457 --- /dev/null +++ b/math/sedumi/pkg-descr @@ -0,0 +1,5 @@ +SeDuMi is a software package to solve optimization problems over symmetric +cones. This includes linear, quadratic, second order conic and semidefinite +optimization, and any combination of these. + +WWW: http://sedumi.mcmaster.ca/ diff --git a/math/sedumi/pkg-plist b/math/sedumi/pkg-plist new file mode 100644 index 000000000000..7c68124852aa --- /dev/null +++ b/math/sedumi/pkg-plist @@ -0,0 +1,154 @@ +sedumi/Amul.m +sedumi/Contents.m +sedumi/PopK.m +sedumi/ada_pcg.m +sedumi/adendotd.m +sedumi/adendotd.mex +sedumi/adenscale.mex +sedumi/asmDxq.m +sedumi/blkchol.m +sedumi/blkchol.mex +sedumi/bwblkslv.m +sedumi/bwblkslv.mex +sedumi/bwdpr1.m +sedumi/bwdpr1.mex +sedumi/cellK.m +sedumi/checkpars.m +sedumi/cholsplit.mex +sedumi/choltmpsiz.mex +sedumi/ddot.m +sedumi/ddot.mex +sedumi/deninfac.m +sedumi/dpr1fact.m +sedumi/dpr1fact.mex +sedumi/eigK.m +sedumi/eigK.mex +sedumi/extractA.m +sedumi/extractA.mex +sedumi/eyeK.m +sedumi/eyeK.mex +sedumi/factorK.mex +sedumi/findblks.m +sedumi/findblks.mex +sedumi/finsymbden.m +sedumi/finsymbden.mex +sedumi/frameit.m +sedumi/fwblkslv.m +sedumi/fwblkslv.mex +sedumi/fwdpr1.m +sedumi/fwdpr1.mex +sedumi/getDAt.m +sedumi/getDAtm.m +sedumi/getada1.m +sedumi/getada1.mex +sedumi/getada2.m +sedumi/getada2.mex +sedumi/getada3.m +sedumi/getada3.mex +sedumi/getdense.m +sedumi/getsymbada.m +sedumi/givensrot.m +sedumi/givensrot.mex +sedumi/incorder.m +sedumi/incorder.mex +sedumi/install_sedumi.m +sedumi/invcholfac.m +sedumi/invcholfac.mex +sedumi/iswnbr.m +sedumi/iswnbr.mex +sedumi/loopPcg.m +sedumi/makereal.m +sedumi/makereal.mex +sedumi/mat.m +sedumi/maxstep.m +sedumi/my_fprintf.m +sedumi/optstep.m +sedumi/ordmmdmex.m +sedumi/ordmmdmex.mex +sedumi/partitA.m +sedumi/partitA.mex +sedumi/postprocessSDP.m +sedumi/posttransfo.m +sedumi/preprocessSDP.m +sedumi/pretransfo.m +sedumi/psdeig.m +sedumi/psdeig.mex +sedumi/psdfactor.m +sedumi/psdfactor.mex +sedumi/psdframeit.mex +sedumi/psdinvjmul.m +sedumi/psdinvjmul.mex +sedumi/psdinvscale.mex +sedumi/psdjmul.m +sedumi/psdjmul.mex +sedumi/psdscale.m +sedumi/psdscale.mex +sedumi/qblkmul.m +sedumi/qblkmul.mex +sedumi/qframeit.m +sedumi/qframev.mex +sedumi/qinvjmul.m +sedumi/qinvsqrt.mex +sedumi/qjmul.m +sedumi/qrK.mex +sedumi/qreshape.m +sedumi/qreshape.mex +sedumi/qscaleK.mex +sedumi/quadadd.m +sedumi/quadadd.mex +sedumi/rotlorentz.m +sedumi/sddir.m +sedumi/sdfactor.m +sedumi/sdinit.m +sedumi/sedumi.m +sedumi/sortnnz.m +sedumi/sortnnz.mex +sedumi/sparbwslv.m +sedumi/sparfwslv.m +sedumi/spars.m +sedumi/sqrtinv.m +sedumi/sqrtinv.mex +sedumi/statsK.m +sedumi/statsK.mex +sedumi/stepdif.m +sedumi/symbbwblk.mex +sedumi/symbchol.m +sedumi/symbcholden.m +sedumi/symbfwblk.mex +sedumi/symfctmex.m +sedumi/symfctmex.mex +sedumi/tdet.m +sedumi/triumtriu.m +sedumi/triumtriu.mex +sedumi/trydif.m +sedumi/updtransfo.m +sedumi/urotorder.m +sedumi/urotorder.mex +sedumi/vec.m +sedumi/veccomplex.m +sedumi/vecsym.m +sedumi/vecsym.mex +sedumi/vectril.m +sedumi/vectril.mex +sedumi/whichcpx.m +sedumi/whichcpx.mex +sedumi/widelen.m +sedumi/wrapPcg.m +sedumi/wregion.m +@dirrm sedumi +%%PORTDOCS%%%%DOCSDIR%%/Changelog.txt +%%PORTDOCS%%%%DOCSDIR%%/Install.txt +%%PORTDOCS%%%%DOCSDIR%%/Readme.txt +%%PORTDOCS%%%%DOCSDIR%%/SeDuMi_Guide_105R5.pdf +%%PORTDOCS%%%%DOCSDIR%%/SeDuMi_Guide_105R5.ps +%%PORTDOCS%%%%DOCSDIR%%/SeDuMi_Guide_11.pdf +%%PORTDOCS%%%%DOCSDIR%%/SeDuMi_Guide_11.ps +%%PORTDOCS%%%%DOCSDIR%%/Version.txt +%%PORTDOCS%%@dirrm %%DOCSDIR%% +%%PORTEXAMPLES%%%%EXAMPLESDIR%%/Examples.txt +%%PORTEXAMPLES%%%%EXAMPLESDIR%%/OH_2Pi_STO-6GN9r12g1T2.mat +%%PORTEXAMPLES%%%%EXAMPLESDIR%%/arch0.mat +%%PORTEXAMPLES%%%%EXAMPLESDIR%%/control07.mat +%%PORTEXAMPLES%%%%EXAMPLESDIR%%/nb.mat +%%PORTEXAMPLES%%%%EXAMPLESDIR%%/trto3.mat +%%PORTEXAMPLES%%@dirrm %%EXAMPLESDIR%% |