sedumipy.optstep¶
Port of optstep.m: Mehrotra-Ye style optimality-face projection, tried once SeDuMi’s iteration enters the superlinear convergence region for a pure-LP problem.
SCOPE: only the sum(K.s)==0 path is implemented. This is not a simplification of convenience – it’s the ONLY path optstep.m’s real caller (sedumi.m) ever reaches: sedumi.m calls optstep.m exactly once, gated by if lponly && (rate < 0.05), and lponly = (K.l==length(c)) forces K.q and K.s empty too. The sum(K.s)!=0 branch (getada1/getada2/ getada3) is genuine dead code in original SeDuMi, so it isn’t ported here; raises NotImplementedError if K.q or K.s is nonempty instead of silently answering wrong.
The Aord/ADA_sedumi_ parameters optstep.m takes are also dropped from this port’s signature: they’re only used by the unreachable getada1/getada2/getada3 branch. This LP-only path always has an empty dense.q (no Lorentz blocks exist to flag dense), so getDAtm()’s Ablkjc/DAtdenq arguments are passed as placeholders (None / an empty m x 0 pattern) here – see getdatm.py.
Functions
|
[x,y] = optstep(A,b,c,y0,y,d,v,dxmdz,K,L,symLden,dense,feasratio,R,pars) |