File: %25s2for.sci

package info (click to toggle)
scilab 2.4-1
  • links: PTS
  • area: non-free
  • in suites: potato, slink
  • size: 55,196 kB
  • ctags: 38,019
  • sloc: ansic: 231,970; fortran: 148,976; tcl: 7,099; makefile: 4,585; sh: 2,978; csh: 154; cpp: 101; asm: 39; sed: 5
file content (33 lines) | stat: -rw-r--r-- 967 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
30
31
32
33
function [stk,nwrk,txt,top]=%s2for(nwrk)
// genere le code frotran relatif a la soustraction et au changement de signe
//!
// Copyright INRIA
s2=stk(top)
if s2(2)=='2' then s2(1)='('+s2(1)+')',end
if op(3)=='2' then
   s1=stk(top-1)
   if s1(4)=='1'&s1(5)=='1'&s2(4)=='1'&s2(5)=='1' then
     stk=list(s1(1)+'-'+s2(1),'2',s1(3),s1(4),s1(5))
  else
    [out,nwrk,txt]=outname(nwrk,'1',s1(4),s1(5))
    txt=[txt;gencall(['ddif',mulf(s1(4),s1(5)),s1(1),'1',s2(1),'1',out,'1'])]
    stk=list(out,'-1',s1(3),s1(4),s1(5))
  end
  top=top-1
else
  if s2(4)=='1'&s2(5)=='1' then
     stk=list('-'+s2(1),s2(2),s2(3),s2(4),s2(5))
  else
    if part(s2(1),1:5)<>'work('&part(s2(1),1:6)<>'iwork(' then
      [out,nwrk,txt]=outname(nwrk,'1',s2(4),s2(5))
      txt=[txt;gencall(['dcopy',mulf(s2(4),s2(5)),s2(1),'1',out,'1'])]
    else
      out=s2(1)
    end
    txt=[txt;gencall(['dscal',mulf(s2(4),s2(5)),'-1.0d0',out,'1'])]
    stk=list(out,'-1',s2(3),s2(4),s2(5))
  end
end