File: mps2linpro.sci

package info (click to toggle)
scilab 2.6-4
  • links: PTS
  • area: non-free
  • in suites: woody
  • size: 54,632 kB
  • ctags: 40,267
  • sloc: ansic: 267,851; fortran: 166,549; sh: 10,005; makefile: 4,119; tcl: 1,070; cpp: 233; csh: 143; asm: 135; perl: 130; java: 39
file content (29 lines) | stat: -rw-r--r-- 609 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
function [p,C,b,ci,cs,mi]=mps2linpro(mps)
[lhs,rhs]=argn(0)
if type(mps)==10 then //a file name
  mps=readmps(mps,[-1000 1000])
end
m=size(mps('rownames'),1)
n=size(mps('colnames'),2)
kobj=mps('irobj')
rowstat=mps('rowstat')

keq=find(rowstat==1)
kge=find(rowstat==2)
kle=find(rowstat==3)
C=full(adj2sp(mps('colpnts'),mps('rownmbs'),mps('acoeff'),[m,n]))
p=C(kobj,:)'

C(kge,:)=-C(kge,:)
C=C([keq;kle;kge],:)

b=mps('rhs');
b(kge,:)=-b(kge,:)
b=b([keq;kle;kge],:)

ci=mps('bounds')(:,1)
cs=mps('bounds')(:,2)
mi=size(keq,'*')
if lhs==1 then
  p=tlist(['linpro','p','C','b','ci','cs','mi'],p,C,b,ci,cs,mi)
end