1
0
mirror of https://git.FreeBSD.org/ports.git synced 2024-12-18 03:46:03 +00:00
freebsd-ports/math/sedumi/files/patch-and_or

319 lines
12 KiB
Plaintext
Raw Normal View History

--- 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;