1
function [stk,nwrk,txt,top]=f_maxi(nwrk)
3
// Scilab maxi function translation
10
if s2(3)=='0' then fun='ivmax',else fun='dvmax',end
11
nwrk=dclfun(nwrk,fun,s2(3))
12
out=callfun([fun,mulf(s2(4),s2(5)),s2(1),'1'],s2(3))
13
stk=list(out,'0',s2(3),'1','1')
15
[out,nwrk,t1]=outname(nwrk,[s2(3);'0'],['1';'1'],['1';'1'])
16
w=getentry1(s2(1),'loop')
18
' '+out(2)+'='+getentry1(s2(1),'1')
19
' do loop=2,'+mulf(s2(4),s2(5))
20
indentfor(genif(w+'.gt.'+out(2),..
24
stk=list(list(out(1),'-1','1','1','1'),list(out(2),'-1','0','1','1'))
27
s2=stk(top);s1=stk(top-1);top=top-1
29
if s2(4)=='1'&s2(5)=='1'&s1(4)=='1'&s1(5)=='1'then
30
stk=list('max('+s1(1)+','+s2(1)+')','0',s2(3),'1','1')
32
warning('max with 2 matrix args not translated')
35
warning('max with 2 lhs arguments not translated')
38
warning('max with more than 2 args not translated')
41
function var=getentry1(var,i)
42
if part(var,1:5)=='work(' then
43
pti=part(var,6:length(var)-1)
45
var='work('+addf(pti,addf(i,'-1'))+')'
46
elseif part(var,1:6)=='iwork(' then
47
pti=part(var,7:length(var)-1)
48
var='iwork('+addf(pti,addf(i,'-1'))+')'