Packaging: fix wrong FSF address
[scilab.git] / scilab / modules / scicos / macros / scicos_scicos / genmac.sci
1 //  Scicos
2 //
3 //  Copyright (C) INRIA - METALAU Project <scicos@inria.fr>
4 //
5 // This program is free software; you can redistribute it and/or modify
6 // it under the terms of the GNU General Public License as published by
7 // the Free Software Foundation; either version 2 of the License, or
8 // (at your option) any later version.
9 //
10 // This program is distributed in the hope that it will be useful,
11 // but WITHOUT ANY WARRANTY; without even the implied warranty of
12 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13 // GNU General Public License for more details.
14 //
15 // You should have received a copy of the GNU General Public License
16 // along with this program; if not, write to the Free Software
17 // Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
18 //
19 // See the file ../license.txt
20 //
21
22 function mac=genmac(tt,nin,nout)
23 [txt1,txt0,txt2,txt3,txt4,txt5,txt6]=tt(1:7)
24 mac=null()
25 //    [y,  x,  z,  tvec,xd]=func(flag,nevprt,t,x,z,rpar,ipar,u)
26 blank='  '
27 // if txt2_1<>' ' then
28 //  txt2=[txt2;
29 //      'if n_evi<>0 then'
30 //         blank(ones(txt2_1))+txt2_1
31 //      'end']
32 //end
33 semi=';'
34
35
36 txt1=blank(ones(txt1))+txt1+semi(ones(txt1))
37 txt2=blank(ones(txt2))+txt2+semi(ones(txt2))
38 txt3=blank(ones(txt3))+txt3+semi(ones(txt3))
39 txt4=blank(ones(txt4))+txt4+semi(ones(txt4))
40 txt5=blank(ones(txt5))+txt5+semi(ones(txt5))
41 txt6=blank(ones(txt6))+txt6+semi(ones(txt6))
42
43 u='u'
44 if nin>0 then
45   get_u=blank+'['+strcat(u(ones(1,nin))+string(1:nin),',')+']=u(:)'
46 else
47   get_u=[]
48 end
49 y='y'
50 set_y=blank+'y=list('+strcat(y(ones(1,nout))+string(1:nout),',')+')'
51 mac_txt=[
52     get_u
53     'select %_flag';
54     'case 0 then';
55        txt0
56     '  t_evo=[]';  
57     '  y=list()';
58     'case 1 then';
59        txt1
60     '  t_evo=[]';
61     '  xd=[]';
62        set_y;
63     'case 2 then';
64        txt2
65     '  y=list()';
66     '  t_evo=[]';
67     '  xd=[]';
68     'case 3 then';
69        txt3
70     '  xd=[]';
71     '  y=list()';
72     'case 4 then';
73        txt4
74     '  y=list()';
75     '  t_evo=[]';
76     '  xd=[]';
77     'case 5 then';
78        txt5
79     '  y=list()';
80     '  t_evo=[]';
81     '  xd=[]';
82     'case 6 then';
83        txt6
84     '  t_evo=[]';
85     '  xd=[]';
86        set_y
87     'end';]
88
89 deff('[y,x,z,t_evo,xd]=mac(%_flag,n_evi,t,x,z,rpar,ipar,u)',mac_txt)
90 endfunction