/* autogenerated from "macros/Hydraulics/Bache.sci" */ function Bache() { Bache.prototype.define = function Bache() { in1=2; out=3; model=scicos_model(); model.in1=[-transpose([1:in1])]; model.out=[-transpose([1:out])]; Patm=1.013e5; A=1; ze1=40; ze2=0; zs1=40; zs2=0; z0=30; T0=290; p_rho=0; model.rpar=[Patm,A,ze1,ze2,zs1,zs2,z0,T0,p_rho]; model.sim="Bache"; model.blocktype="c"; model.dep_ut=[true,false]; mo=modelica(); mo.model="Bache"; mo.inputs=["Ce1","Ce2"]; mo.outputs=["Cs1","Cs2","yNiveau"]; mo.parameters=list(["Patm","A","ze1","ze2","zs1","zs2","z0","T0","p_rho"],[Patm,A,ze1,ze2,zs1,zs2,z0,T0,p_rho]); model.equations=mo; model.in1=ones(size(mo.inputs,"*"),1); model.out=ones(size(mo.outputs,"*"),1); exprs=[string(Patm),string(A),string(ze1),string(ze2),string(zs1),string(zs2),string(z0),string(T0),string(p_rho)]; gr_i=[]; x=standard_define([2,2],model,exprs,list(gr_i,0)); x.graphics.in_implicit=["I","I"]; x.graphics.out_implicit=["I","I","E"]; } Bache.prototype.details = function Bache() { } Bache.prototype.get = function Bache() { } Bache.prototype.set = function Bache() { x=arg1; graphics=arg1.graphics; exprs=graphics.exprs; model=arg1.model; while (true) { [ok,Patm,A,ze1,ze2,zs1,zs2,z0,T0,p_rho,exprs]=scicos_getvalue("Parametres de la bache",["Pression dans le ciel de la bache : Patm (Pa)","Section de la bache : A (m2)","Altitude du piquage d entrée 1: ze1 (m)","Altitude du piquage d entrée 2: ze2 (m)","Altitude du piquage de sortie 1: zs1 (m)","Altitude du piquage de sortie 2: zs2 (m)","Altitude initiale du fluide : z0 (m)","Température initiale du fluide : T0 (K)","Si >0, masse volumique imposée du fluide : p_rho (kg/m3)"],list("vec",-1,"vec",-1,"vec",-1,"vec",-1,"vec",-1,"vec",-1,"vec",-1,"vec",-1,"vec",-1),exprs); if (!ok) { break } model.rpar=[Patm,A,ze1,ze2,zs1,zs2,z0,T0,p_rho]; model.equations.parameters[2-1]=list(Patm,A,ze1,ze2,zs1,zs2,z0,T0,p_rho); graphics.exprs=exprs; x.graphics=graphics; x.model=model; break } } } /* autogenerated from "macros/Hydraulics/SourceP.sci" */ function SourceP() { SourceP.prototype.define = function SourceP() { model=scicos_model(); P0=300000; T0=290; H0=100000; option_temperature=1; model.rpar=[P0,T0,H0,option_temperature]; model.sim="Source"; model.blocktype="c"; model.dep_ut=[true,false]; mo=modelica(); mo.model="Source"; mo.inputs=[]; mo.outputs=["C"]; mo.parameters=list(["P0","T0","H0","option_temperature"],[P0,T0,H0,option_temperature]); model.equations=mo; model.in1=ones(size(mo.inputs,"*"),1); model.out=ones(size(mo.outputs,"*"),1); exprs=[string(P0),string(T0),string(H0),string(option_temperature)]; gr_i=[]; x=standard_define([2.5,2],model,exprs,list(gr_i,0)); x.graphics.out_implicit=["I"]; } SourceP.prototype.details = function SourceP() { } SourceP.prototype.get = function SourceP() { } SourceP.prototype.set = function SourceP() { x=arg1; graphics=arg1.graphics; exprs=graphics.exprs; model=arg1.model; while (true) { [ok,P0,T0,H0,option_temperature,exprs]=scicos_getvalue("Paramètres du puits",["Pression de la source : P0 (Pa)","Temperature de la source : T0 (K)","Enthalpie spécifique de la source : H0 (J/kg)","1:température fixée - 2:enthalpie fixée : option_temperature"],list("vec",-1,"vec",-1,"vec",-1,"vec",-1),exprs); if (!ok) { break } model.rpar=[P0,T0,H0,option_temperature]; model.equations.parameters[2-1]=list(P0,T0,H0,option_temperature); graphics.exprs=exprs; x.graphics=graphics; x.model=model; break } } } /* autogenerated from "macros/Hydraulics/Flowmeter.sci" */ function Flowmeter() { Flowmeter.prototype.define = function Flowmeter() { ModelName="Flowmeter"; PrametersValue=1; ParametersName="Qini"; model=scicos_model(); Typein=[]; Typeout=[]; MI=[]; MO=[]; P=[50,105,-1,90,0,10,2,0,101,10,-2,0]; PortName=["Mesure","C1","C2"]; for (i=1;i<=size(P,"r");i+=1) { if (P(i,3)==1) { Typein=[Typein,"E"]; MI=[MI,PortName(i)]; } if (P(i,3)==2) { Typein=[Typein,"I"]; MI=[MI,PortName(i)]; } if (P(i,3)==-1) { Typeout=[Typeout,"E"]; MO=[MO,PortName(i)]; } if (P(i,3)==-2) { Typeout=[Typeout,"I"]; MO=[MO,PortName(i)]; } } model=scicos_model(); mo=modelica(); model.sim=ModelName; mo.inputs=MI; mo.outputs=MO; model.rpar=PrametersValue; mo.parameters=list(ParametersName,PrametersValue,zeros(ParametersName)); exprs="1"; gr_i=[]; model.blocktype="c"; model.dep_ut=[false,true]; mo.model=ModelName; model.equations=mo; model.in1=ones(size(MI,"*"),1); model.out=ones(size(MO,"*"),1); x=standard_define([2,2],model,exprs,list(gr_i,0)); x.graphics.in_implicit=Typein; x.graphics.out_implicit=Typeout; } Flowmeter.prototype.details = function Flowmeter() { } Flowmeter.prototype.get = function Flowmeter() { } Flowmeter.prototype.set = function Flowmeter() { x=arg1; graphics=arg1.graphics; exprs=graphics.exprs; model=arg1.model; x=arg1; exprs=x.graphics.exprs; while (false) { [ok,Qini,exprs]=scicos_getvalue(["Set Flowmeter block parameters:","","Qini: "],"Qini",list("vec",1),exprs); if (!ok) { break } x.model.equations.parameters[2-1]=list(Qini); x.graphics.exprs=exprs; break } } } /* autogenerated from "macros/Hydraulics/VanneReglante.sci" */ function VanneReglante() { VanneReglante.prototype.define = function VanneReglante() { model=scicos_model(); model.in1=[1,1]; model.out=[1]; Cvmax=8005.42; p_rho=0; model.rpar=[Cvmax,p_rho]; model.sim="VanneReglante"; model.blocktype="c"; model.dep_ut=[true,false]; mo=modelica(); mo.model="VanneReglante"; mo.inputs=["C1","Ouv"]; mo.outputs="C2"; mo.parameters=list(["Cvmax","p_rho"],[Cvmax,p_rho]); model.equations=mo; model.in1=ones(size(mo.inputs,"*"),1); model.out=ones(size(mo.outputs,"*"),1); exprs=[string(Cvmax),string(p_rho)]; gr_i=[]; x=standard_define([2,2],model,exprs,list(gr_i,0)); x.graphics.in_implicit=["I","E"]; x.graphics.out_implicit=["I"]; } VanneReglante.prototype.details = function VanneReglante() { } VanneReglante.prototype.get = function VanneReglante() { } VanneReglante.prototype.set = function VanneReglante() { x=arg1; graphics=arg1.graphics; exprs=graphics.exprs; model=arg1.model; while (true) { [ok,Cvmax,p_rho,exprs]=scicos_getvalue("Paramètres de la vanne reglante",["Cvmax","p_rho"],list("vec",-1,"vec",-1),exprs); if (!ok) { break } model.rpar=[Cvmax,p_rho]; model.equations.parameters[2-1]=list(Cvmax,p_rho); graphics.exprs=exprs; x.graphics=graphics; x.model=model; break } } } /* autogenerated from "macros/Hydraulics/PerteDP.sci" */ function PerteDP() { PerteDP.prototype.define = function PerteDP() { model=scicos_model(); model.in1=[1]; model.out=[1]; L=10; D=0.2; lambda=0.03; z1=0; z2=0; p_rho=0; model.rpar=[L,D,lambda,z1,z2,p_rho]; model.sim="PerteDP"; model.blocktype="c"; model.dep_ut=[true,false]; mo=modelica(); mo.model="PerteDP"; mo.inputs="C1"; mo.outputs="C2"; mo.parameters=list(["L","D","lambda","z1","z2","p_rho"],[L,D,lambda,z1,z2,p_rho]); model.equations=mo; model.in1=ones(size(mo.inputs,"*"),1); model.out=ones(size(mo.outputs,"*"),1); exprs=[string(L),string(D),string(lambda),string(z1),string(z2),string(p_rho)]; gr_i=[]; x=standard_define([2,1],model,exprs,list(gr_i,0)); x.graphics.in_implicit=["I"]; x.graphics.out_implicit=["I"]; } PerteDP.prototype.details = function PerteDP() { } PerteDP.prototype.get = function PerteDP() { } PerteDP.prototype.set = function PerteDP() { x=arg1; graphics=arg1.graphics; exprs=graphics.exprs; model=arg1.model; while (true) { [ok,L,D,lambda,z1,z2,p_rho,exprs]=scicos_getvalue("Parametres du tuyau",["Longueur du tube : L (m)","Diamètre interne du tube : D (m)","Coefficient de perte de charge-frottement(S.U) : lambda","Altitude entrée tuyauterie : z1 (m)","Altitude sortie tuyauterie : z2 (m)","Si >0, masse volumique imposée fu fluide : p_rho (kg/m3)"],list("vec",-1,"vec",-1,"vec",-1,"vec",-1,"vec",-1,"vec",-1),exprs); if (!ok) { break } model.rpar=[L,D,lambda,z1,z2,p_rho]; model.equations.parameters[2-1]=list(L,D,lambda,z1,z2,p_rho); graphics.exprs=exprs; x.graphics=graphics; x.model=model; break } } } /* autogenerated from "macros/Hydraulics/PuitsP.sci" */ function PuitsP() { PuitsP.prototype.define = function PuitsP() { model=scicos_model(); P0=100000; T0=290; H0=100000; option_temperature=1; model.rpar=[P0,T0,H0,option_temperature]; model.sim="Puits"; model.blocktype="c"; model.dep_ut=[true,false]; mo=modelica(); mo.model="Puits"; mo.inputs=["C"]; mo.parameters=list(["P0","T0","H0","option_temperature"],[P0,T0,H0,option_temperature]); model.equations=mo; model.in1=ones(size(mo.inputs,"*"),1); exprs=[string(P0),string(T0),string(H0),string(option_temperature)]; gr_i=[]; x=standard_define([2.5,2],model,exprs,list(gr_i,0)); x.graphics.in_implicit=["I"]; } PuitsP.prototype.details = function PuitsP() { } PuitsP.prototype.get = function PuitsP() { } PuitsP.prototype.set = function PuitsP() { x=arg1; graphics=arg1.graphics; exprs=graphics.exprs; model=arg1.model; while (true) { [ok,P0,T0,H0,option_temperature,exprs]=scicos_getvalue("Paramètres du puits",["Pression de la source : P0 (Pa)","Temperature de la source : T0 (K)","Enthalpie spécifique de la source : H0 (J/kg)","1:température fixée - 2:enthalpie fixée : option_temperature"],list("vec",-1,"vec",-1,"vec",-1,"vec",-1),exprs); if (!ok) { break } model.rpar=[P0,T0,H0,option_temperature]; model.equations.parameters[2-1]=list(P0,T0,H0,option_temperature); graphics.exprs=exprs; x.graphics=graphics; x.model=model; break } } } /* autogenerated from "macros/Events/EVTDLY_c.sci" */ function EVTDLY_c() { EVTDLY_c.prototype.define = function EVTDLY_c() { dt=0.1; ff=0.0; model=scicos_model(); model.sim=list("evtdly4",4); model.evtin=1; model.evtout=1; model.rpar=[dt,ff]; model.blocktype="d"; model.firing=ff; model.dep_ut=[false,false]; exprs=[string(dt),sci2exp(ff)]; gr_i=[]; x=standard_define([3,2],model,exprs,gr_i); } EVTDLY_c.prototype.details = function EVTDLY_c() { } EVTDLY_c.prototype.get = function EVTDLY_c() { } EVTDLY_c.prototype.set = function EVTDLY_c() { x=arg1; graphics=arg1.graphics; exprs=graphics.exprs; model=arg1.model; while (true) { [ok,dt,ff,exprs]=scicos_getvalue(["Set Event Delay block parameters","Delay is the delay between an input event "," and the generated output event","Block may initially generate an output event before "," any input event. \"Date of initial output event\""," gives the date of this event. Set a negative value"," to disable any output event."],["Delay","Date of initial output event"],list("vec",1,"vec",1),exprs); if (!ok) { break } if (dt<=0) { message("Delay must be positive"); ok=false; } if (ok) { graphics.exprs=exprs; model.rpar=[dt,ff]; model.firing=ff; x.graphics=graphics; x.model=model; break } } } } /* autogenerated from "macros/Events/CLKSPLIT_f.sci" */ function CLKSPLIT_f() { CLKSPLIT_f.prototype.define = function CLKSPLIT_f() { model=scicos_model(); model.sim="split"; model.evtin=1; model.evtout=[1,1]; model.blocktype="d"; model.firing=[false,false,false]; model.dep_ut=[false,false]; x=standard_define([1,1]/3,model,[],[]); } CLKSPLIT_f.prototype.details = function CLKSPLIT_f() { } CLKSPLIT_f.prototype.get = function CLKSPLIT_f() { } CLKSPLIT_f.prototype.set = function CLKSPLIT_f() { x=arg1; } } /* autogenerated from "macros/Events/ANDLOG_f.sci" */ function ANDLOG_f() { ANDLOG_f.prototype.define = function ANDLOG_f() { model=scicos_model(); model.sim="andlog"; model.out=1; model.evtin=[1,1]; model.blocktype="d"; model.firing=[]; model.dep_ut=[false,false]; gr_i=[]; x=standard_define([3,3],model,[],gr_i); } ANDLOG_f.prototype.details = function ANDLOG_f() { } ANDLOG_f.prototype.get = function ANDLOG_f() { } ANDLOG_f.prototype.set = function ANDLOG_f() { x=arg1; } } /* autogenerated from "macros/Events/ANDBLK.sci" */ function ANDBLK() { ANDBLK.prototype.define = function ANDBLK() { andlog=ANDLOG_f("define"); andlog.graphics.orig=[194,133]; andlog.graphics.sz=[60,60]; andlog.graphics.flip=true; andlog.graphics.pout=9; andlog.graphics.pein=[4,11]; input_port1=CLKIN_f("define"); input_port1.graphics.orig=[149,287]; input_port1.graphics.sz=[20,20]; input_port1.graphics.flip=true; input_port1.graphics.exprs="1"; input_port1.graphics.peout=4; input_port1.model.ipar=1; output_port=CLKOUT_f("define"); output_port.graphics.orig=[450,83]; output_port.graphics.sz=[20,20]; output_port.graphics.flip=true; output_port.graphics.exprs="1"; output_port.graphics.pein=8; output_port.model.ipar=1; input_port2=CLKIN_f("define"); input_port2.graphics.orig=[141,330]; input_port2.graphics.sz=[20,20]; input_port2.graphics.flip=true; input_port2.graphics.exprs="2"; input_port2.graphics.peout=6; input_port2.model.ipar=2; ifthel=IFTHEL_f("define"); ifthel.graphics.orig=[331,137]; ifthel.graphics.sz=[60,60]; ifthel.graphics.flip=true; ifthel.graphics.pin=9; ifthel.graphics.pein=12; ifthel.graphics.peout=[8,0]; split=CLKSPLIT_f("define"); split.graphics.orig=[234,275.78348]; split.graphics.pein=6; split.graphics.peout=[11,12]; diagram=scicos_diagram(); diagram.objs[1-1]=andlog; diagram.objs[2-1]=input_port1; diagram.objs[3-1]=output_port; diagram.objs[4-1]=scicos_link(xx=[169,214,214],yy=[297,297,198.71],ct=[5,-1],from=[2,1],to=[1,1]); diagram.objs[5-1]=input_port2; diagram.objs[6-1]=scicos_link(xx=[161,234,234],yy=[340,340,275.78],ct=[5,-1],from=[5,1],to=[10,1]); diagram.objs[7-1]=ifthel; diagram.objs[8-1]=scicos_link(xx=[351,351,450],yy=[131.29,93,93],ct=[5,-1],from=[7,1],to=[3,1]); diagram.objs[9-1]=scicos_link(xx=[262.57,322.43],yy=[163,167],ct=[1,1],from=[1,1],to=[7,1]); diagram.objs[10-1]=split; diagram.objs[11-1]=scicos_link(xx=[234,234],yy=[275.78,198.71],ct=[5,-1],from=[10,1],to=[1,2]); diagram.objs[12-1]=scicos_link(xx=[234,361,361],yy=[275.78,275.78,202.71],ct=[5,-1],from=[10,2],to=[7,1]); x=scicos_block(); x.gui="ANDBLK"; x.graphics.sz=[2,2]; x.graphics.gr_i=[]; x.graphics.pein=[0,0]; x.graphics.peout=0; x.model.sim="csuper"; x.model.evtin=[1,1]; x.model.evtout=1; x.model.blocktype="h"; x.model.firing=false; x.model.dep_ut=[false,false]; x.model.rpar=diagram; } ANDBLK.prototype.details = function ANDBLK() { } ANDBLK.prototype.get = function ANDBLK() { } ANDBLK.prototype.set = function ANDBLK() { x=arg1; } } /* autogenerated from "macros/Events/HALT_f.sci" */ function HALT_f() { HALT_f.prototype.define = function HALT_f() { n=0; model=scicos_model(); model.sim="hltblk"; model.evtin=1; model.dstate=0; model.ipar=0; model.blocktype="d"; model.dep_ut=[false,false]; exprs=string(n); gr_i=[]; x=standard_define([2,2],model,exprs,gr_i); } HALT_f.prototype.details = function HALT_f() { } HALT_f.prototype.get = function HALT_f() { } HALT_f.prototype.set = function HALT_f() { x=arg1; graphics=arg1.graphics; exprs=graphics.exprs; model=arg1.model; while (true) { [ok,n,exprs]=scicos_getvalue("Set Halt block parameters",["State on halt"],list("vec",1),exprs); if (!ok) { break } if (ok) { graphics.exprs=exprs; model.ipar=n; x.graphics=graphics; x.model=model; break } } } } /* autogenerated from "macros/Events/IFTHEL_f.sci" */ function IFTHEL_f() { IFTHEL_f.prototype.define = function IFTHEL_f() { model=scicos_model(); model.sim=list("ifthel",-1); model.in1=1; model.in2=1; model.intyp=-1; model.evtin=1; model.evtout=[1,1]; model.blocktype="l"; model.firing=[-1,-1]; model.dep_ut=[true,false]; model.nmode=1; model.nzcross=1; gr_i=[]; exprs=[string(model.in1),string(model.nmode)]; x=standard_define([3,3],model,exprs,gr_i); } IFTHEL_f.prototype.details = function IFTHEL_f() { } IFTHEL_f.prototype.get = function IFTHEL_f() { } IFTHEL_f.prototype.set = function IFTHEL_f() { x=arg1; graphics=arg1.graphics; exprs=graphics.exprs; model=arg1.model; if (exprs==[]) { exprs=string(1); } if (size(exprs,"*")==1) { exprs[2-1]=string(1); } while (true) { [ok,inh,nmod,exprs]=scicos_getvalue("Set parameters",["Inherit (1: no, 0: yes)","zero-crossing (0: no, 1: yes)"],list("vec",1,"vec",1),exprs); if (!ok) { break } model.dep_ut=[true,false]; if (nmod!=0) { nmod=1; } if (inh!=1) { inh=[]; } [model,graphics,ok]=check_io(model,graphics,1,[],inh,[1,1]); if (ok) { graphics.exprs=exprs; model.evtin=inh; model.sim[2-1]=-1; model.nmode=nmod; model.nzcross=nmod; x.graphics=graphics; x.model=model; break } } } } /* autogenerated from "macros/Events/VirtualCLK0.sci" */ function VirtualCLK0() { VirtualCLK0.prototype.define = function VirtualCLK0() { model=scicos_model(); model.sim="vrtclk0"; model.evtin=1; model.opar=list(); model.ipar=[]; model.blocktype="d"; model.firing=-1; model.dep_ut=[false,false]; exprs=[]; x=standard_define([2,2],model,exprs," "); } VirtualCLK0.prototype.details = function VirtualCLK0() { } VirtualCLK0.prototype.get = function VirtualCLK0() { } VirtualCLK0.prototype.set = function VirtualCLK0() { x=arg1; } } /* autogenerated from "macros/Events/END_c.sci" */ function END_c() { END_c.prototype.define = function END_c() { tf=100000000; model=scicos_model(); model.sim=list("scicosexit",4); model.evtin=1; model.evtout=1; model.firing=tf; model.blocktype="d"; model.dep_ut=[false,false]; exprs=string(tf); gr_i=[]; x=standard_define([2,2],model,exprs,gr_i); } END_c.prototype.details = function END_c() { } END_c.prototype.get = function END_c() { } END_c.prototype.set = function END_c() { x=arg1; graphics=arg1.graphics; exprs=graphics.exprs; model=arg1.model; while (true) { [ok,tf,exprs]=scicos_getvalue("Set final simulation time",["Final simulation time"],list("vec",1),exprs); if (!ok) { break } if (ok) { graphics.exprs=exprs; model.firing=tf; x.graphics=graphics; x.model=model; break } } } } /* autogenerated from "macros/Events/CLKSOMV_f.sci" */ function CLKSOMV_f() { CLKSOMV_f.prototype.define = function CLKSOMV_f() { model=scicos_model(); model.sim="sum"; model.evtin=[1,1,1]; model.evtout=1; model.blocktype="d"; model.firing=-1; model.dep_ut=[false,false]; gr_i=[]; x=standard_define([2,2],model,[],gr_i); } CLKSOMV_f.prototype.details = function CLKSOMV_f() { } CLKSOMV_f.prototype.get = function CLKSOMV_f() { } CLKSOMV_f.prototype.set = function CLKSOMV_f() { x=arg1; } } /* autogenerated from "macros/Events/EVTGEN_f.sci" */ function EVTGEN_f() { EVTGEN_f.prototype.define = function EVTGEN_f() { tt=0; model=scicos_model(); model.sim="trash"; model.evtout=1; model.blocktype="d"; model.firing=tt; model.dep_ut=[false,false]; exprs=string(tt); gr_i=[]; x=standard_define([3,2],model,exprs,gr_i); } EVTGEN_f.prototype.details = function EVTGEN_f() { } EVTGEN_f.prototype.get = function EVTGEN_f() { } EVTGEN_f.prototype.set = function EVTGEN_f() { x=arg1; graphics=arg1.graphics; exprs=graphics.exprs; model=arg1.model; while (true) { [ok,tt,exprs]=scicos_getvalue("Set Event time",["Event Time"],list("vec",1),exprs); if (!ok) { break } graphics.exprs=exprs; if (model.firing!=tt) { model.firing=tt; } x.graphics=graphics; x.model=model; break } } } /* autogenerated from "macros/Events/MCLOCK_f.sci" */ function MCLOCK_f() { MCLOCK_f.prototype.define = function MCLOCK_f() { nn=2; dt=0.1; exprs=[string(dt),string(nn)]; mfclck=MFCLCK_f("define"); mfclck.graphics.orig=[334,199]; mfclck.graphics.sz=[40,40]; mfclck.graphics.flip=true; mfclck.graphics.exprs=exprs; mfclck.graphics.pein=12; mfclck.graphics.peout=[4,3]; mfclck.model.rpar=0.1; mfclck.model.ipar=nn; mfclck.model.firing=[-1,0]; clksom=CLKSOM_f("define"); clksom.graphics.orig=[457,161]; clksom.graphics.sz=[16.666667,16.666667]; clksom.graphics.flip=true; clksom.graphics.exprs=["0.1","0.1"]; clksom.graphics.pein=[4,9,0]; clksom.graphics.peout=5; output_port1=CLKOUT_f("define"); output_port1.graphics.orig=[509,261]; output_port1.graphics.sz=[20,20]; output_port1.graphics.flip=true; output_port1.graphics.exprs="1"; output_port1.graphics.pein=10; output_port1.model.ipar=1; output_port2=CLKOUT_f("define"); output_port2.graphics.orig=[509,142]; output_port2.graphics.sz=[20,20]; output_port2.graphics.flip=true; output_port2.graphics.exprs="2"; output_port2.graphics.pein=13; output_port2.model.ipar=2; split1=CLKSPLIT_f("define"); split1.graphics.orig=[411.92504,169.33333]; split1.graphics.pein=3; split1.graphics.peout=[9,10]; split2=CLKSPLIT_f("define"); split2.graphics.orig=[482.45315,169.33333]; split2.graphics.pein=5; split2.graphics.peout=[12,13]; gr_i=[]; diagram=scicos_diagram(); diagram.objs[1-1]=mfclck; diagram.objs[2-1]=clksom; diagram.objs[3-1]=scicos_link(xx=[360.7,360.7,411.9],yy=[193.3,169.3,169.3],ct=[10,-1],from=[1,2],to=[8,1]); diagram.objs[4-1]=scicos_link(xx=[347.3,347.3,461.8,461.8],yy=[193.3,155.5,155.5,161],ct=[10,-1],from=[1,1],to=[2,1]); diagram.objs[5-1]=scicos_link(xx=[468.9,482.5],yy=[169.3,169.3],ct=[10,-1],from=[2,1],to=[11,1]); diagram.objs[6-1]=output_port1; diagram.objs[7-1]=output_port2; diagram.objs[8-1]=split1; diagram.objs[9-1]=scicos_link(xx=[411.9,457],yy=[169.3,169.3],ct=[10,-1],from=[8,1],to=[2,2]); diagram.objs[10-1]=scicos_link(xx=[411.9,411.9,509],yy=[169.3,271,271],ct=[10,-1],from=[8,2],to=[6,1]); diagram.objs[11-1]=split2; diagram.objs[12-1]=scicos_link(xx=[482.5,489.6,489.6,354,354],yy=[169.3,169.3,338.3,338.3,244.7],ct=[10,-1],from=[11,1],to=[1,1]); diagram.objs[13-1]=scicos_link(xx=[482.4,482.4,509],yy=[169.3,152,152],ct=[10,-1],from=[11,2],to=[7,1]); x=scicos_block(); x.gui="MCLOCK_f"; x.graphics.sz=[3,2]; x.graphics.gr_i=gr_i; x.model.sim="csuper"; x.model.evtout=[1,1]; x.model.blocktype="h"; x.model.rpar=diagram; x.graphics.peout=[0,0]; } MCLOCK_f.prototype.details = function MCLOCK_f() { } MCLOCK_f.prototype.get = function MCLOCK_f() { } MCLOCK_f.prototype.set = function MCLOCK_f() { for (i=1;i<=length(arg1.model.rpar.objs);i+=1) { o=arg1.model.rpar.objs(i); if (typeof(o)=="Block"&&o.gui=="MFCLCK_f") { path=i; break } } newpar=list(); spath=list("model","rpar","objs",path); xx=arg1(spath); execstr("xxn="+xx.gui+"(\'set\',xx)"); if (or(xxn!=xx)) { arg1[spath-1]=xxn; newpar[size(newpar)+1-1]=path; } x=arg1; y=0; typ=newpar; } } /* autogenerated from "macros/Events/EVTVARDLY.sci" */ function EVTVARDLY() { EVTVARDLY.prototype.define = function EVTVARDLY() { model=scicos_model(); model.sim=list("evtvardly",4); model.in1=1; model.evtin=1; model.evtout=1; model.blocktype="d"; model.firing=-1; model.blocktype="c"; model.dep_ut=[true,false]; exprs=string(model.firing); gr_i=[]; x=standard_define([2,2],model,exprs,gr_i); } EVTVARDLY.prototype.details = function EVTVARDLY() { } EVTVARDLY.prototype.get = function EVTVARDLY() { } EVTVARDLY.prototype.set = function EVTVARDLY() { x=arg1; graphics=arg1.graphics; exprs=graphics.exprs; model=arg1.model; while (true) { [ok,fir,exprs]=scicos_getvalue("Set parameter of variable event delay","Initial event firing time (<0 if absent)",list("vec",1),exprs); if (!ok) { break } graphics.exprs=exprs; model.firing=fir; x.graphics=graphics; x.model=model; break } } } /* autogenerated from "macros/Events/EVTDLY_f.sci" */ function EVTDLY_f() { EVTDLY_f.prototype.define = function EVTDLY_f() { dt=0.1; ff=dt; model=scicos_model(); model.sim="evtdly"; model.evtin=1; model.evtout=1; model.rpar=dt; model.blocktype="d"; model.firing=ff; model.dep_ut=[false,false]; exprs=[string(dt),sci2exp(ff)]; gr_i=[]; x=standard_define([2,2],model,exprs,gr_i); } EVTDLY_f.prototype.details = function EVTDLY_f() { } EVTDLY_f.prototype.get = function EVTDLY_f() { } EVTDLY_f.prototype.set = function EVTDLY_f() { x=arg1; graphics=arg1.graphics; exprs=graphics.exprs; model=arg1.model; while (true) { [ok,dt,ff,exprs]=scicos_getvalue(["Set Event Delay block parameters","Delay is the delay between an input event "," and the generated output event","Block may initially generate an output event before "," any input event. \"Date of initial output event\""," gives the date of this event. Set a negative value"," if no initial event required"],["Delay","Date of initial output event"],list("vec",1,"vec",1),exprs); if (!ok) { break } if (dt<=0) { message("Delay must be positive"); ok=false; } if (ok) { graphics.exprs=exprs; model.rpar=dt; model.firing=ff; x.graphics=graphics; x.model=model; break } } } } /* autogenerated from "macros/Events/CLKSOM_f.sci" */ function CLKSOM_f() { CLKSOM_f.prototype.define = function CLKSOM_f() { model=scicos_model(); model.sim="sum"; model.evtin=[1,1,1]; model.evtout=1; model.blocktype="d"; model.firing=-1; model.dep_ut=[false,false]; gr_i=[]; x=standard_define([1,1]/1.2,model,[],gr_i); } CLKSOM_f.prototype.details = function CLKSOM_f() { } CLKSOM_f.prototype.get = function CLKSOM_f() { } CLKSOM_f.prototype.set = function CLKSOM_f() { x=arg1; } } /* autogenerated from "macros/Events/MFCLCK_f.sci" */ function MFCLCK_f() { MFCLCK_f.prototype.define = function MFCLCK_f() { nn=2; dt=0.1; model=scicos_model(); model.sim="mfclck"; model.evtin=1; model.evtout=[1,1]; model.dstate=0; model.rpar=dt; model.ipar=nn; model.blocktype="d"; model.firing=[-1,0]; model.dep_ut=[false,false]; exprs=[string(dt),string(nn)]; gr_i=[]; x=standard_define([3,2],model,exprs,gr_i); } MFCLCK_f.prototype.details = function MFCLCK_f() { } MFCLCK_f.prototype.get = function MFCLCK_f() { } MFCLCK_f.prototype.set = function MFCLCK_f() { x=arg1; graphics=arg1.graphics; exprs=graphics.exprs; model=arg1.model; [ok,dt,nn,exprs]=scicos_getvalue("Set Multifrequency clock parameters",["basic period (1/f)","multiply by (n)"],list("vec",1,"vec",1),exprs); if (ok) { model.ipar=nn; model.rpar=dt; hh=model.firing; hh[2-1]=0; model.firing=hh; graphics.exprs=exprs; x.graphics=graphics; x.model=model; } } } /* autogenerated from "macros/Linear/REGISTER_f.sci" */ function REGISTER_f() { REGISTER_f.prototype.define = function REGISTER_f() { z0=zeros(10,1); model=scicos_model(); model.sim="delay"; model.in1=1; model.out=1; model.evtin=1; model.dstate=z0; model.blocktype="d"; model.dep_ut=[false,false]; exprs=strcat(string(z0),";"); gr_i=[]; x=standard_define([2.5,2.5],model,exprs,gr_i); } REGISTER_f.prototype.details = function REGISTER_f() { } REGISTER_f.prototype.get = function REGISTER_f() { } REGISTER_f.prototype.set = function REGISTER_f() { x=arg1; graphics=arg1.graphics; exprs=graphics.exprs; model=arg1.model; while (true) { [ok,z0,exprs]=scicos_getvalue("Set delay parameters","Register initial condition",list("vec",-1),exprs); if (!ok) { break } if (prod(size(z0))<1) { message("Register length must be at least 1"); ok=false; } if (ok) { graphics.exprs=exprs; model.dstate=z0; x.graphics=graphics; x.model=model; break } } } } /* autogenerated from "macros/Linear/SUMMATION.sci" */ function SUMMATION() { SUMMATION.prototype.define = function SUMMATION() { sgn=[1,-1]; model=scicos_model(); model.sim=list("summation",4); model.in1=[-1,-1]; model.out=-1; model.in2=[-2,-2]; model.out2=-2; model.ipar=sgn; model.blocktype="c"; model.dep_ut=[true,false]; exprs=sci2exp(sgn); gr_i=[]; x=standard_define([2,3],model,exprs,gr_i); } SUMMATION.prototype.details = function SUMMATION() { } SUMMATION.prototype.get = function SUMMATION() { } SUMMATION.prototype.set = function SUMMATION() { x=arg1; graphics=arg1.graphics; model=arg1.model; exprs=graphics.exprs; if (size(exprs,1)==1) { exprs=[sci2exp(1),exprs,sci2exp(0)]; } else if (size(exprs,1)==2) { exprs=[exprs,sci2exp(0)]; } while (true) { [ok,Datatype,sgn,satur,exprs]=scicos_getvalue("Set sum block parameters",["Datatype (1=real double 2=complex 3=int32 ...)","Number of inputs or sign vector (of +1, -1)","Do on Overflow(0=Nothing 1=Saturate 2=Error)"],list("vec",1,"vec",-1,"vec",1),exprs); if (!ok) { break } sgn=sgn.slice(); if ((satur!=0&&satur!=1&&satur!=2)) { message("Do on overflow must be 0,1,2"); ok=false; } if (size(sgn,1)==1) { if (sgn<1) { message("Number of inputs must be > 0"); ok=false; } else if (sgn==1) { in1=-1; in2=-2; sgn=[]; nout=1; nout2=1; } else { in1=-ones(sgn,1); in2=2*in1; sgn=ones(sgn,1); nout=-1; nout2=-2; } } else { if (!and(abs(sgn)==1)) { message("Signs can only be +1 or -1"); ok=false; } else { in1=-ones(size(sgn,1),1); in2=2*in1; nout=-1; nout2=-2; } } it=Datatype*ones(1,size(in1,1)); ot=Datatype; if (Datatype==1) { model.sim=list("summation",4); } else if (Datatype==2) { model.sim=list("summation_z",4); } else if (((Datatype<1)||(Datatype>8))) { message("Datatype is not supported"); ok=false; } else { if (satur==0) { if (Datatype==3) { model.sim=list("summation_i32n",4); } else if (Datatype==4) { model.sim=list("summation_i16n",4); } else if (Datatype==5) { model.sim=list("summation_i8n",4); } else if (Datatype==6) { model.sim=list("summation_ui32n",4); } else if (Datatype==7) { model.sim=list("summation_ui16n",4); } else if (Datatype==8) { model.sim=list("summation_ui8n",4); } } else if (satur==1) { if (Datatype==3) { model.sim=list("summation_i32s",4); } else if (Datatype==4) { model.sim=list("summation_i16s",4); } else if (Datatype==5) { model.sim=list("summation_i8s",4); } else if (Datatype==6) { model.sim=list("summation_ui32s",4); } else if (Datatype==7) { model.sim=list("summation_ui16s",4); } else if (Datatype==8) { model.sim=list("summation_ui8s",4); } } else if (satur==2) { if (Datatype==3) { model.sim=list("summation_i32e",4); } else if (Datatype==4) { model.sim=list("summation_i16e",4); } else if (Datatype==5) { model.sim=list("summation_i8e",4); } else if (Datatype==6) { model.sim=list("summation_ui32e",4); } else if (Datatype==7) { model.sim=list("summation_ui16e",4); } else if (Datatype==8) { model.sim=list("summation_ui8e",4); } } } if (ok) { [model,graphics,ok]=set_io(model,graphics,list([in1,in2],it),list([nout,nout2],ot),[],[]); } if (ok) { model.rpar=satur; model.ipar=sgn; graphics.exprs=exprs; x.graphics=graphics; x.model=model; break } } } } /* autogenerated from "macros/Linear/GAINBLK_f.sci" */ function GAINBLK_f() { GAINBLK_f.prototype.define = function GAINBLK_f() { gain=1; in1=1; out=1; model=scicos_model(); model.sim="gain"; model.in1=in1; model.out=out; model.rpar=gain; model.blocktype="c"; model.dep_ut=[true,false]; exprs=[strcat(sci2exp(gain))]; gr_i=[]; x=standard_define([2,2],model,exprs,gr_i); } GAINBLK_f.prototype.details = function GAINBLK_f() { } GAINBLK_f.prototype.get = function GAINBLK_f() { } GAINBLK_f.prototype.set = function GAINBLK_f() { x=arg1; graphics=arg1.graphics; exprs=graphics.exprs; model=arg1.model; while (true) { [ok,gain,exprs]=scicos_getvalue("Set gain block parameters",["Gain"],list("mat",[-1,-1]),exprs[1-1]); if (!ok) { break } if (gain==[]) { message("Gain must have at least one element"); } else { [out,in1]=size(gain); [model,graphics,ok]=check_io(model,graphics,in1,out,[],[]); if (ok) { graphics.exprs=exprs; model.rpar=gain.slice(); x.graphics=graphics; x.model=model; break } } } } } /* autogenerated from "macros/Linear/SAMPHOLD.sci" */ function SAMPHOLD() { SAMPHOLD.prototype.define = function SAMPHOLD() { in1=-1; model=scicos_model(); model.sim=list("samphold4",4); model.in1=-1; model.out=-1; model.evtin=1; model.blocktype="d"; model.dep_ut=[true,false]; gr_i=[]; x=standard_define([2,2],model," ",gr_i); } SAMPHOLD.prototype.details = function SAMPHOLD() { } SAMPHOLD.prototype.get = function SAMPHOLD() { } SAMPHOLD.prototype.set = function SAMPHOLD() { x=arg1; x.model.firing=[]; } } /* autogenerated from "macros/Linear/BIGSOM_f.sci" */ function BIGSOM_f() { BIGSOM_f.prototype.define = function BIGSOM_f() { sgn=[1,1]; model=scicos_model(); model.sim=list("sum",2); model.in1=[-1,-1]; model.out=-1; model.rpar=sgn; model.blocktype="c"; model.dep_ut=[true,false]; exprs=sci2exp(sgn); gr_i=[]; x=standard_define([2,3],model,exprs,gr_i); } BIGSOM_f.prototype.details = function BIGSOM_f() { } BIGSOM_f.prototype.get = function BIGSOM_f() { } BIGSOM_f.prototype.set = function BIGSOM_f() { x=arg1; graphics=arg1.graphics; model=arg1.model; exprs=graphics.exprs; while (true) { [ok,sgn,exprs]=scicos_getvalue("Set sum block parameters","Inputs ports signs/gain",list("vec",-1),exprs); if (!ok) { break } in1=-ones(size(sgn,"*"),1); [model,graphics,ok]=check_io(model,graphics,in1,-1,[],[]); if (ok) { model.rpar=sgn.slice(); graphics.exprs=exprs; x.graphics=graphics; x.model=model; break } } } } /* autogenerated from "macros/Linear/SAMPLEHOLD_f.sci" */ function SAMPLEHOLD_f() { SAMPLEHOLD_f.prototype.define = function SAMPLEHOLD_f() { in1=-1; model=scicos_model(); model.sim="samphold"; model.in1=-1; model.out=-1; model.evtin=1; model.blocktype="d"; model.dep_ut=[true,false]; gr_i=[]; x=standard_define([2,2],model," ",gr_i); } SAMPLEHOLD_f.prototype.details = function SAMPLEHOLD_f() { } SAMPLEHOLD_f.prototype.get = function SAMPLEHOLD_f() { } SAMPLEHOLD_f.prototype.set = function SAMPLEHOLD_f() { x=arg1; x.model.firing=[]; } } /* autogenerated from "macros/Linear/DIFF_c.sci" */ function DIFF_c() { DIFF_c.prototype.define = function DIFF_c() { x0=[0,0]; model=scicos_model(); model.sim=list("diffblk_c",10004); model.in1=1; model.out=1; model.state=x0; model.blocktype="c"; model.dep_ut=[false,true]; exprs=[strcat(sci2exp(x0[1-1])),strcat(sci2exp(x0[2-1]))]; gr_i=[]; x=standard_define([2,2],model,exprs,gr_i); } DIFF_c.prototype.details = function DIFF_c() { } DIFF_c.prototype.get = function DIFF_c() { } DIFF_c.prototype.set = function DIFF_c() { x=arg1; graphics=arg1.graphics; exprs=graphics.exprs; model=arg1.model; while (true) { ask_again=false; [ok,x0,xd0,exprs]=scicos_getvalue("Set continuous linear system parameters",["Initial state","Initial Derivative"],list("vec",-1,"vec",-1),exprs); if (!ok) { break } x0=x0.slice(); N=size(x0,"*"); xd0=xd0.slice(); Nxd=size(xd0,"*"); if ((N!=Nxd)) { message("Incompatible sizes: states and their derivatives should have the same size "); ask_again=true; } if ((N<=0&&!ask_again)) { x_message("number of states must be > 0 "); ask_again=true; } if (!ask_again) { graphics.exprs=exprs; model.state=[x0,xd0]; model.out=[N]; model.in1=N; x.graphics=graphics; x.model=model; break } } x.model.firing=[]; } } /* autogenerated from "macros/Linear/DLSS_f.sci" */ function DLSS_f() { DLSS_f.prototype.define = function DLSS_f() { x0=0; A=-1; B=1; C=1; D=0; model=scicos_model(); model.sim=list("dsslti",1); model.in1=1; model.out=1; model.evtin=1; model.dstate=x0.slice(); model.rpar=[A.slice(),B.slice(),C.slice(),D.slice()]; model.blocktype="d"; model.dep_ut=[false,false]; exprs=[strcat(sci2exp(A)),strcat(sci2exp(B)),strcat(sci2exp(C)),strcat(sci2exp(D)),strcat(sci2exp(x0))]; gr_i=[]; x=standard_define([4,2],model,exprs,gr_i); } DLSS_f.prototype.details = function DLSS_f() { } DLSS_f.prototype.get = function DLSS_f() { } DLSS_f.prototype.set = function DLSS_f() { x=arg1; graphics=arg1.graphics; exprs=graphics.exprs; if (size(exprs,"*")==7) { exprs=exprs[[1:4,7]-1]; } model=arg1.model; while (true) { [ok,A,B,C,D,x0,exprs]=scicos_getvalue("Set discrete linear system parameters",["A matrix","B matrix","C matrix","D matrix","Initial state"],list("mat",[-1,-1],"mat",["size(%1,2)","-1"],"mat",["-1","size(%1,2)"],"mat",[-1,-1],"vec","size(%1,2)"),exprs); if (!ok) { break } out=size(C,1); if (out==0) { out=[]; } in1=size(B,2); if (in1==0) { in1=[]; } [ms,ns]=size(A); if (ms!=ns) { message("A matrix must be square"); } else { [model,graphics,ok]=check_io(model,graphics,in1,out,1,[]); if (ok) { graphics.exprs=exprs; rpar=[A.slice(),B.slice(),C.slice(),D.slice()]; if (D!=[]) { if (norm(D,1)!=0) { mmm=[true,false]; } else { mmm=[false,false]; } if (or(model.dep_ut!=mmm)) { model.dep_ut=mmm; } } else { model.dep_ut=[false,false]; } model.dstate=x0.slice(); model.rpar=rpar; x.graphics=graphics; x.model=model; break } } } } } /* autogenerated from "macros/Linear/INTEGRAL_f.sci" */ function INTEGRAL_f() { INTEGRAL_f.prototype.define = function INTEGRAL_f() { x0=0; model=scicos_model(); model.sim="integr"; model.in1=1; model.out=1; model.state=x0; model.blocktype="c"; model.dep_ut=[false,true]; exprs=strcat(sci2exp(x0)); gr_i=[]; x=standard_define([2,2],model,exprs,gr_i); } INTEGRAL_f.prototype.details = function INTEGRAL_f() { } INTEGRAL_f.prototype.get = function INTEGRAL_f() { } INTEGRAL_f.prototype.set = function INTEGRAL_f() { x=arg1; graphics=arg1.graphics; exprs=graphics.exprs; model=arg1.model; while (true) { [ok,x0,exprs]=scicos_getvalue("Set continuous linear system parameters","Initial state",list("vec",1),exprs); if (!ok) { break } graphics.exprs=exprs; model.state=x0; x.graphics=graphics; x.model=model; break } x.model.firing=[]; } } /* autogenerated from "macros/Linear/DOLLAR_f.sci" */ function DOLLAR_f() { DOLLAR_f.prototype.define = function DOLLAR_f() { z=0; inh=0; in1=1; exprs=string([z,inh]); model=scicos_model(); model.sim="dollar"; model.in1=in1; model.out=in1; model.evtin=1-inh; model.dstate=z; model.blocktype="d"; model.dep_ut=[false,false]; gr_i=[]; x=standard_define([2,2],model,exprs,gr_i); } DOLLAR_f.prototype.details = function DOLLAR_f() { } DOLLAR_f.prototype.get = function DOLLAR_f() { } DOLLAR_f.prototype.set = function DOLLAR_f() { x=arg1; graphics=arg1.graphics; exprs=graphics.exprs; model=arg1.model; if (size(exprs,"*")<2) { exprs[2-1]="0"; } while (true) { [ok,a,inh,exprs]=scicos_getvalue("Set 1/z block parameters",["initial condition","Inherit (no:0, yes:1)"],list("vec",-1,"vec",-1),exprs); if (!ok) { break } out=size(a,"*"); if (out==0) { out=[]; } in1=out; if (ok) { [model,graphics,ok]=check_io(model,graphics,-1,-1,ones(1-inh,1),[]); } if (ok) { graphics.exprs=exprs; model.dstate=a; model.in1=in1; model.out=out; x.graphics=graphics; x.model=model; break } } } } /* autogenerated from "macros/Linear/CLINDUMMY_f.sci" */ function CLINDUMMY_f() { CLINDUMMY_f.prototype.define = function CLINDUMMY_f() { x0=0; model=scicos_model(); model.sim=list("cdummy",4); model.state=x0; model.blocktype="c"; model.firing=[]; model.dep_ut=[false,true]; gr_i=[]; x=standard_define([3,2],model,[],gr_i); } CLINDUMMY_f.prototype.details = function CLINDUMMY_f() { } CLINDUMMY_f.prototype.get = function CLINDUMMY_f() { } CLINDUMMY_f.prototype.set = function CLINDUMMY_f() { x=arg1; } } /* autogenerated from "macros/Linear/DELAY_f.sci" */ function DELAY_f() { DELAY_f.prototype.define = function DELAY_f() { evtdly=EVTDLY_f("define"); evtdly.graphics.orig=[243,296]; evtdly.graphics.sz=[40,40]; evtdly.graphics.flip=true; evtdly.graphics.exprs=["0.1","0"]; evtdly.graphics.pein=10; evtdly.graphics.peout=7; evtdly.model.rpar=0.1; evtdly.model.firing=0; register=REGISTER_f("define"); register.graphics.orig=[238,195]; register.graphics.sz=[50,50]; register.graphics.flip=true; register.graphics.exprs="0;0;0;0;0;0;0;0;0;0"; register.graphics.pin=6; register.graphics.pout=5; register.graphics.pein=9; input_port=IN_f("define"); input_port.graphics.orig=[92,210]; input_port.graphics.sz=[20,20]; input_port.graphics.flip=true; input_port.graphics.exprs=["1","1"]; input_port.graphics.pout=6; input_port.model.ipar=1; output_port=OUT_f("define"); output_port.graphics.orig=[440,210]; output_port.graphics.sz=[20,20]; output_port.graphics.flip=true; output_port.graphics.exprs=["1","1"]; output_port.graphics.pin=5; output_port.model.ipar=1; split=CLKSPLIT_f("define"); split.graphics.orig=[263,271.2]; split.graphics.pein=7; split.graphics.peout=[9,10]; diagram=scicos_diagram(); diagram.objs[1-1]=input_port; diagram.objs[2-1]=output_port; diagram.objs[3-1]=register; diagram.objs[4-1]=evtdly; diagram.objs[5-1]=scicos_link(xx=[296.6,440],yy=[220,220],from=[3,1],to=[2,1]); diagram.objs[6-1]=scicos_link(xx=[112,229.4],yy=[220,220],from=[1,1],to=[3,1]); diagram.objs[7-1]=scicos_link(xx=[263,263],yy=[290.3,271.2],ct=[5,-1],from=[4,1],to=[8,1]); diagram.objs[8-1]=split; diagram.objs[9-1]=scicos_link(xx=[263,263],yy=[271.2,250.7],ct=[5,-1],from=[8,1],to=[3,1]); diagram.objs[10-1]=scicos_link(xx=[263,308.6,308.6,263,263],yy=[271.2,271.2,367,367,341.7],ct=[5,-1],from=[8,2],to=[4,1]); x=scicos_block(); x.gui="DELAY_f"; x.graphics.sz=[2,2]; x.graphics.gr_i=[]; x.graphics.pin=0; x.graphics.pout=0; x.model.sim="csuper"; x.model.in1=1; x.model.out=1; x.model.blocktype="h"; x.model.dep_ut=[false,false]; x.model.rpar=diagram; x.graphics.in_implicit=["E"]; x.graphics.in_style=""; x.graphics.out_implicit=["E"]; x.graphics.out_style=""; } DELAY_f.prototype.details = function DELAY_f() { } DELAY_f.prototype.get = function DELAY_f() { } DELAY_f.prototype.set = function DELAY_f() { ppath=list(0,0); for (i=1;i<=length(arg1.model.rpar.objs);i+=1) { o=arg1.model.rpar.objs(i); if (typeof(o)=="Block"&&o.gui=="REGISTER_f") { ppath[1-1]=i; } if (typeof(o)=="Block"&&o.gui=="EVTDLY_f") { ppath[2-1]=i; } if (and(ppath!=list(0,0))) { break } } x=arg1; newpar=list(); register=x.model.rpar.objs(ppath[1-1]); evtdly=x.model.rpar.objs(ppath[2-1]); register_exprs=register.graphics.exprs; evtdly_exprs=evtdly.graphics.exprs; exprs=[evtdly_exprs(1),register_exprs]; while (true) { [ok,dt,z0,exprs]=scicos_getvalue(["This block implements as a discretized delay","it is consist of a shift register and a clock","value of the delay is given by;","the discretization time step multiplied by the","number-1 of state of the register"],["Discretization time step","Register initial state"],list("vec",1,"vec",-1),exprs); if (!ok) { break } mess=[]; if (prod(size(z0))<1) { mess=[mess,"Register length must be at least 1"," "]; ok=false; } if (dt<=0) { mess=[mess,"Discretization time step must be positive"," "]; ok=false; } if (!ok) { message(mess); } else { evtdly.graphics.exprs[1-1]=exprs[1-1]; if (evtdly.model.rpar!=dt) { evtdly.model.rpar=dt; newpar[$+1-1]=ppath[2-1]; } x.model.rpar.objs[ppath[2-1]-1]=evtdly; register.graphics.exprs=exprs[2-1]; if (or(register.model.dstate!=z0.slice())) { register.model.dstate=z0.slice(); newpar[$+1-1]=ppath[1-1]; } x.model.rpar.objs[ppath[1-1]-1]=register; break } } needcompile=0; y=needcompile; typ=newpar; } } /* autogenerated from "macros/Linear/TCLSS_f.sci" */ function TCLSS_f() { TCLSS_f.prototype.define = function TCLSS_f() { x0=0; A=0; B=1; C=1; D=0; in1=1; nx=size(x0,"*"); out=1; model=scicos_model(); model.sim=list("tcslti",1); model.in1=[in1,nx]; model.out=out; model.evtin=1; model.state=x0; model.rpar=[A.slice(),B.slice(),C.slice(),D.slice()]; model.blocktype="c"; model.dep_ut=[false,true]; exprs=[strcat(sci2exp(A)),strcat(sci2exp(B)),strcat(sci2exp(C)),strcat(sci2exp(D)),strcat(sci2exp(x0))]; gr_i=[]; x=standard_define([3,2],model,exprs,gr_i); } TCLSS_f.prototype.details = function TCLSS_f() { } TCLSS_f.prototype.get = function TCLSS_f() { } TCLSS_f.prototype.set = function TCLSS_f() { x=arg1; graphics=arg1.graphics; exprs=graphics.exprs; model=arg1.model; if (size(exprs,"*")==7) { exprs=exprs[[1:4,7]-1]; } while (true) { [ok,A,B,C,D,x0,exprs]=scicos_getvalue("Set continuous linear system parameters",["A matrix","B matrix","C matrix","D matrix","Initial state"],list("mat",[-1,-1],"mat",["size(%1,2)","-1"],"mat",["-1","size(%1,2)"],"mat",[-1,-1],"vec","size(%1,2)"),exprs); if (!ok) { break } out=size(C,1); if (out==0) { out=[]; } in1=size(B,2); if (in1==0) { in1=[]; } [ms,ns]=size(A); if (ms!=ns) { message("A matrix must be square"); } else { [model,graphics,ok]=check_io(model,graphics,[in1,ms],out,1,[]); if (ok) { graphics.exprs=exprs; rpar=[A.slice(),B.slice(),C.slice(),D.slice()]; if (D!=[]) { if (norm(D,1)!=0) { mmm=[true,true]; } else { mmm=[false,true]; } if (or(model.dep_ut!=mmm)) { model.dep_ut=mmm; } } else { model.dep_ut=[false,true]; } model.state=x0.slice(); model.rpar=rpar; if (D!=[]) { model.sim=list("tcslti",1); } else { model.sim=list("tcsltj",1); } x.graphics=graphics; x.model=model; break } } } } } /* autogenerated from "macros/Linear/DERIV.sci" */ function DERIV() { DERIV.prototype.define = function DERIV() { model=scicos_model(); model.sim=list("deriv",4); model.in1=-1; model.out=-1; model.blocktype="x"; model.dep_ut=[true,false]; exprs=[]; gr_i=[]; x=standard_define([2,2],model,exprs,gr_i); } DERIV.prototype.details = function DERIV() { } DERIV.prototype.get = function DERIV() { } DERIV.prototype.set = function DERIV() { x=arg1; } } /* autogenerated from "macros/Linear/VARIABLE_DELAY.sci" */ function VARIABLE_DELAY() { VARIABLE_DELAY.prototype.define = function VARIABLE_DELAY() { nin=1; T=1; init=0; N=1024; model=scicos_model(); model.sim=list("variable_delay",4); model.in1=[nin,1]; model.out=nin; model.rpar=[T,init]; model.ipar=N; model.blocktype="d"; model.dep_ut=[false,false]; exprs=[string(T),string(init),string(N)]; gr_i=[]; x=standard_define([3,2],model,exprs,gr_i); } VARIABLE_DELAY.prototype.details = function VARIABLE_DELAY() { } VARIABLE_DELAY.prototype.get = function VARIABLE_DELAY() { } VARIABLE_DELAY.prototype.set = function VARIABLE_DELAY() { x=arg1; graphics=arg1.graphics; exprs=graphics.exprs; model=arg1.model; nin=model.in1(1); while (true) { [ok,T,init,N,exprs]=scicos_getvalue("Set delay parameters",["Max delay","initial input","Buffer size"],list("vec",1,"vec",1,"vec",1),exprs); if (!ok) { break } if (N<2) { message("Buffer must be larger than 2"); ok=false; } if (T<=0) { message("Delay must be positive"); ok=false; } if (ok) { [model,graphics,ok]=check_io(model,graphics,[-1,1],-1,[],[]); } if (ok) { graphics.exprs=exprs; model.rpar=[T,init]; model.ipar=N; x.graphics=graphics; x.model=model; break } } } } /* autogenerated from "macros/Linear/REGISTER.sci" */ function REGISTER() { REGISTER.prototype.define = function REGISTER() { z0=zeros(10,1); model=scicos_model(); model.sim=list("delay4",4); model.in1=1; model.out=1; model.evtin=1; model.dstate=z0; model.blocktype="d"; model.dep_ut=[false,false]; exprs=strcat(string(z0),";"); gr_i=[]; x=standard_define([3,2],model,exprs,gr_i); } REGISTER.prototype.details = function REGISTER() { } REGISTER.prototype.get = function REGISTER() { } REGISTER.prototype.set = function REGISTER() { x=arg1; graphics=arg1.graphics; exprs=graphics.exprs; model=arg1.model; if (size(exprs,1)==1) { exprs=[exprs,sci2exp(1)]; } while (true) { [ok,z0,it,exprs]=scicos_getvalue("Set delay parameters",["Register initial condition","Datatype (1=double 3=int32 ...)"],list("vec",-1,"vec",1),exprs); if (!ok) { break } if (prod(size(z0))<1) { message("Register length must be at least 1"); ok=false; } if (it==1) { model.sim=list("delay4",4); z0=double(z0); model.dstate=z0; model.odstate=list(); } else { if (it==3) { model.sim=list("delay4_i32",4); z0=int32(z0); } else if (it==4) { model.sim=list("delay4_i16",4); z0=int16(z0); } else if (it==5) { model.sim=list("delay4_i8",4); z0=int8(z0); } else if (it==6) { model.sim=list("delay4_ui32",4); z0=uint32(z0); } else if (it==7) { model.sim=list("delay4_ui16",4); z0=uint16(z0); } else if (it==8) { model.sim=list("delay4_ui8",4); z0=uint8(z0); } else { message("Datatype is not supported"); ok=false; } model.odstate=list(z0); model.dstate=[]; } if (ok) { in1=[1,1]; [model,graphics,ok]=set_io(model,graphics,list(in1,it),list(in1,it),1,[]); } if (ok) { graphics.exprs=exprs; x.graphics=graphics; x.model=model; break } } } } /* autogenerated from "macros/Linear/INTEGRAL.sci" */ function INTEGRAL() { INTEGRAL.prototype.define = function INTEGRAL() { maxp=1; minp=-1; rpar=[]; model=scicos_model(); model.state=0; model.sim=list("integral_func",4); model.in1=1; model.out=1; model.rpar=rpar; model.blocktype="c"; model.dep_ut=[false,true]; exprs=string([0,0,0,maxp,minp]); gr_i=[]; x=standard_define([2,2],model,exprs,gr_i); x.graphics.id="1/s"; } INTEGRAL.prototype.details = function INTEGRAL() { } INTEGRAL.prototype.get = function INTEGRAL() { } INTEGRAL.prototype.set = function INTEGRAL() { x=arg1; graphics=arg1.graphics; exprs=graphics.exprs; model=arg1.model; while (true) { [ok,x0,reinit,satur,maxp,lowp,exprs]=scicos_getvalue("Set Integral block parameters",["Initial Condition","With re-intialization (1:yes, 0:no)","With saturation (1:yes, 0:no)","Upper limit","Lower limit"],list("vec",-1,"vec",1,"vec",1,"vec",-1,"vec",-1),exprs); if (!ok) { break } x0=x0.slice(); maxp=maxp.slice(); lowp=lowp.slice(); if (reinit!=0) { reinit=1; } if (satur!=0) { satur=1; if (size(maxp,"*")==1) { maxp=maxp*ones(x0); } if (size(lowp,"*")==1) { lowp=lowp*ones(x0); } if ((size(x0,1)!=size(maxp,1)||size(x0,1)!=size(lowp,1))) { message("x0 and Upper limit and Lower limit must have same size"); ok=false; } else if (or(maxp<=lowp)) { message("Upper limits must be > Lower limits"); ok=false; } else if (or(x0>maxp)||or(x08))) { message("Datatype is not supported"); ok=false; } if (ok) { in1=[model.in1,model.in2]; [model,graphics,ok]=set_io(model,graphics,list(in1,it),list(in1,it),1,[]); if (ok) { graphics.exprs=exprs; arg1.graphics=graphics; arg1.model=model; x=arg1; break } } } } } /* autogenerated from "macros/Linear/TIME_DELAY.sci" */ function TIME_DELAY() { TIME_DELAY.prototype.define = function TIME_DELAY() { nin=1; T=1; init=0; N=1024; model=scicos_model(); model.sim=list("time_delay",4); model.in1=[nin]; model.out=nin; model.rpar=[T,init]; model.ipar=N; model.blocktype="x"; model.dep_ut=[false,true]; exprs=[string(T),string(init),string(N)]; gr_i=[]; x=standard_define([3.5,2],model,exprs,gr_i); } TIME_DELAY.prototype.details = function TIME_DELAY() { } TIME_DELAY.prototype.get = function TIME_DELAY() { } TIME_DELAY.prototype.set = function TIME_DELAY() { x=arg1; graphics=arg1.graphics; exprs=graphics.exprs; model=arg1.model; nin=model.in1(1); while (true) { [ok,T,init,N,exprs]=scicos_getvalue("Set delay parameters",["Delay","initial input","Buffer size"],list("vec",1,"vec",1,"vec",1),exprs); if (!ok) { break } if (N<2) { message("Buffer must be larger than 2"); ok=false; } if (T<=0) { message("Delay must be positive"); ok=false; } if (ok) { [model,graphics,ok]=check_io(model,graphics,[-1],-1,[],[]); } if (ok) { graphics.exprs=exprs; model.rpar=[T,init]; model.ipar=N; model.dep_ut=[false,true]; x.graphics=graphics; x.model=model; break } } } } /* autogenerated from "macros/Linear/DLSS.sci" */ function DLSS() { DLSS.prototype.define = function DLSS() { x0=0; A=-1; B=1; C=1; D=0; model=scicos_model(); model.sim=list("dsslti4",4); model.in1=1; model.out=1; model.evtin=1; model.dstate=x0.slice(); model.rpar=[A.slice(),B.slice(),C.slice(),D.slice()]; model.blocktype="d"; model.dep_ut=[false,false]; exprs=[strcat(sci2exp(A)),strcat(sci2exp(B)),strcat(sci2exp(C)),strcat(sci2exp(D)),strcat(sci2exp(x0))]; gr_i=[]; x=standard_define([4,2],model,exprs,gr_i); } DLSS.prototype.details = function DLSS() { } DLSS.prototype.get = function DLSS() { } DLSS.prototype.set = function DLSS() { x=arg1; graphics=arg1.graphics; exprs=graphics.exprs; if (size(exprs,"*")==7) { exprs=exprs[[1:4,7]-1]; } model=arg1.model; while (true) { [ok,A,B,C,D,x0,exprs]=scicos_getvalue("Set discrete linear system parameters",["A matrix","B matrix","C matrix","D matrix","Initial state"],list("mat",[-1,-1],"mat",["size(%1,2)","-1"],"mat",["-1","size(%1,2)"],"mat",[-1,-1],"vec","size(%1,2)"),exprs); if (!ok) { break } out=size(C,1); if (out==0) { out=[]; } in1=size(B,2); if (in1==0) { in1=[]; } [ms,ns]=size(A); okD=true; if (size(D,"*")!=size(C,1)*size(B,2)) { if (size(D,"*")==1) { D=D*ones(C*B); } else if (size(D,"*")==0) { D=zeros(C*B); } else { okD=false; } } if (ms!=ns||!okD) { message(_("Matrix A is not square or D has wrong dimension")); } else { [model,graphics,ok]=check_io(model,graphics,in1,out,1,[]); if (ok) { graphics.exprs=exprs; rpar=[A.slice(),B.slice(),C.slice(),D.slice()]; if (D!=[]) { if (norm(D,1)!=0) { mmm=[true,false]; } else { mmm=[false,false]; } if (or(model.dep_ut!=mmm)) { model.dep_ut=mmm; } } else { model.dep_ut=[false,false]; } model.dstate=x0.slice(); model.rpar=rpar; x.graphics=graphics; x.model=model; break } } } } } /* autogenerated from "macros/Linear/INTEGRAL_m.sci" */ function INTEGRAL_m() { INTEGRAL_m.prototype.define = function INTEGRAL_m() { maxp=1; minp=-1; rpar=[]; model=scicos_model(); model.state=0; model.sim=list("integral_func",4); model.in1=1; model.out=1; model.in2=1; model.out2=1; model.rpar=rpar; model.blocktype="c"; model.dep_ut=[false,true]; exprs=string([0,0,0,maxp,minp]); gr_i=[]; x=standard_define([2,2],model,exprs,gr_i); } INTEGRAL_m.prototype.details = function INTEGRAL_m() { } INTEGRAL_m.prototype.get = function INTEGRAL_m() { } INTEGRAL_m.prototype.set = function INTEGRAL_m() { x=arg1; graphics=arg1.graphics; exprs=graphics.exprs; model=arg1.model; while (true) { [ok,x0,reinit,satur,maxp,lowp,exprs]=scicos_getvalue("Set Integral block parameters",["Initial Condition","With re-intialization (1:yes, 0:no)","With saturation (1:yes, 0:no)","Upper limit","Lower limit"],list("mat",[-1,-1],"vec",1,"vec",1,"mat",[-1,-1],"mat",[-1,-1]),exprs); if (!ok) { break } if (isreal(x0)) { Datatype=1; } else { Datatype=2; } if (reinit!=0) { reinit=1; } if (satur!=0) { satur=1; if (Datatype==1) { if (size(maxp,"*")==1) { maxp=maxp*ones(x0); } if (size(lowp,"*")==1) { lowp=lowp*ones(x0); } if ((size(x0)!=size(maxp)||size(x0)!=size(lowp))) { message("x0 and Upper limit and Lower limit must have same size"); ok=false; } else if (or(maxp<=lowp)) { message("Upper limits must be > Lower limits"); ok=false; } else if (or(x0>maxp)||or(x0 Lower limits"); ok=false; } else if (or(real(x0)>real(maxp))||or(real(x0)imag(maxp))||or(imag(x0)=ymax) { mess=[mess,"Ymax must be greater than Ymin"," "]; ok=false; } if (xmin>=xmax) { mess=[mess,"Xmax must be greater than Xmin"," "]; ok=false; } if (thickness<=0) { mess=[mess,"Thickness must be strictly positive."]; ok=false; } if (!ok) { message(mess); } else { model.rpar=[xmin,xmax,ymin,ymax]; model.ipar=thickness; graphics.exprs=exprs; x.graphics=graphics; x.model=model; break } } } } /* autogenerated from "macros/Sinks/CANIMXY.sci" */ function CANIMXY() { CANIMXY.prototype.define = function CANIMXY() { win=-1; clrs=-4; N=2; siz=1; wpos=[-1,-1]; wdim=[-1,-1]; xmin=-15; xmax=15; ymin=-15; ymax=+15; nbr_curves=1; model=scicos_model(); model.sim=list("canimxy",4); model.in1=[1,1]; model.in2=[1,1]; model.intyp=[1,1]; model.evtin=1; model.rpar=[xmin,xmax,ymin,ymax]; model.ipar=[win,1,N,clrs,siz,0,wpos.slice(),wdim.slice(),nbr_curves]; model.blocktype="d"; model.firing=[]; model.dep_ut=[false,false]; exprs=[string(nbr_curves),string(clrs),string(siz),string(win),"[]","[]",string(xmin),string(xmax),string(ymin),string(ymax),string(N)]; gr_i=[]; x=standard_define([2,2],model,exprs,gr_i); } CANIMXY.prototype.details = function CANIMXY() { } CANIMXY.prototype.get = function CANIMXY() { } CANIMXY.prototype.set = function CANIMXY() { x=arg1; graphics=arg1.graphics; exprs=graphics.exprs; model=arg1.model; while (true) { [ok,nbr_curves,clrs,siz,win,wpos,wdim,xmin,xmax,ymin,ymax,N,exprs]=scicos_getvalue("Set Scope parameters",["Number of Curves","color (>0) or mark (<0)","line or mark size","Output window number (-1 for automatic)","Output window position","Output window sizes","Xmin","Xmax","Ymin","Ymax","Buffer size"],list("vec",1,"vec",1,"vec",1,"vec",1,"vec",-1,"vec",-1,"vec",1,"vec",1,"vec",1,"vec",1,"vec",1),exprs); if (!ok) { break } mess=[]; if (size(wpos,"*")!=0&&size(wpos,"*")!=2) { mess=[mess,"Window position must be [] or a 2 vector"," "]; ok=false; } if (size(wdim,"*")!=0&&size(wdim,"*")!=2) { mess=[mess,"Window dim must be [] or a 2 vector"," "]; ok=false; } if (win<-1) { mess=[mess,"Window number cannot be inferior than -1"," "]; ok=false; } if (nbr_curves<=0) { mess=[mess,"Number of curves cannot be negative or null"," "]; ok=false; } if (N<1) { mess=[mess,"Buffer size must be at least 1"," "]; ok=false; } if (N==1&&clrs>0) { mess=[mess,"Buffer size must be at least 2"," "]; ok=false; } if (ymin>=ymax) { mess=[mess,"Ymax must be greater than Ymin"," "]; ok=false; } if (xmin>=xmax) { mess=[mess,"Xmax must be greater than Xmin"," "]; ok=false; } if (!ok) { message(mess); } else { in1=nbr_curves*ones(2,1); in2=ones(2,1); [model,graphics,ok]=set_io(model,graphics,list([in1,in2],ones(2,1)),list(),ones(1,1),[]); if (wpos==[]) { wpos=[-1,-1]; } if (wdim==[]) { wdim=[-1,-1]; } rpar=[xmin,xmax,ymin,ymax]; ipar=[win,1,N,clrs,siz,0,wpos.slice(),wdim.slice(),nbr_curves]; model.rpar=rpar; model.ipar=ipar; graphics.exprs=exprs; x.graphics=graphics; x.model=model; break } } } } /* autogenerated from "macros/Sinks/WFILE_f.sci" */ function WFILE_f() { WFILE_f.prototype.define = function WFILE_f() { in1=1; nin=sum(in1); frmt="(7(e10.3,1x))"; fname="foo"; lunit=0; N=2; model=scicos_model(); model.sim="writef"; model.in1=in1; model.evtin=1; model.dstate=[-1,lunit,zeros((nin+1)*N,1)]; model.ipar=[length(fname),length(frmt),0,N,_str2code(fname),_str2code(frmt)]; model.blocktype="d"; model.dep_ut=[true,false]; exprs=[sci2exp(in1),fname,frmt,string(N)]; gr_i=[]; x=standard_define([3,2],model,exprs,gr_i); } WFILE_f.prototype.details = function WFILE_f() { } WFILE_f.prototype.get = function WFILE_f() { } WFILE_f.prototype.set = function WFILE_f() { warnobsolete("WRITEC_f","6.0.0"); warnMessage=msprintf(_("Feature %s is obsolete."),"WFILE_f"); warnAdvise=msprintf(_("Please use %s instead."),"WRITEC_f"); warnXcosMessage=msprintf("%s %s",warnMessage,warnAdvise); warnBlockByUID(arg1.model.label,warnXcosMessage); x=arg1; graphics=arg1.graphics; exprs=graphics.exprs; model=arg1.model; dstate=model.dstate; lunit=dstate(2); fname=exprs[2-1]; frmt=exprs[3-1]; while (true) { [ok,in1,fname1,frmt1,N,exprs]=scicos_getvalue([msprintf(gettext("Set %s block parameters"),"WFILE_f")," ",gettext("Write to output file")," ",gettext("Write is done on:"),gettext("  - A binary file if no format given"),gettext("  - A formatted text file if a format (Fortran type) is given")],[gettext("Input Size"),gettext("Output File Name"),gettext("Output Format"),gettext("Buffer Size")],list("vec",1,"str",1,"str",1,"vec",1),exprs); if (!ok) { break } in1=int(in1); nin=in1; fname1=pathconvert(stripblanks(fname1),false,true); frmt1=stripblanks(frmt1); if (lunit>0&&min(length(frmt),1)!=min(length(frmt1),1)) { block_parameter_error(gettext("Simulation running !!! You cannot switch
between formatted and unformatted when running"),gettext("End current simulation first.")); ok=false; } else if (lunit>0&&fname1!=fname) { block_parameter_error(gettext("You cannot modify \'Output File Name\' when running."),gettext("End current simulation first.")); ok=false; } else if (fname1=="") { block_parameter_error(gettext("Wrong value for \'Output File Name\' parameter"),gettext("You must provide a filename.")); ok=false; } else if (fileparts(fname1)!="") { [pa,fn,ex]=fileparts(fname1); if (!isdir(pa)) { block_parameter_error(msprintf(gettext("Wrong value for \'%s\' parameter."),gettext("Output File Name")),msprintf(gettext("Directory \'%s\' does not exist"),pa)); ok=false; } } else if (frmt1!=""&&(part(frmt1,1)!="("||part(frmt1,length(frmt1))!=")")) { block_parameter_error(msprintf(gettext("Wrong value for \'%s\' parameter: %s."),gettext("Input Format"),frmt1),gettext("You must enclose the format\'s string between parentheses.")); ok=false; } else if (N<2) { block_parameter_error(msprintf(gettext("Wrong value for \'%s\' parameter: %d."),gettext("Buffer Size"),N),gettext("Must be greater than 1.")); ok=false; } else if (in1<=0) { block_parameter_error(msprintf(gettext("Wrong value for \'%s\' parameter: %d."),gettext("Input Size"),in1),gettext("Strictly positive integer expected.")); ok=false; } if (ok) { ipar=[length(fname1),length(frmt1),0,N,_str2code(fname1),_str2code(frmt1)]; if (prod(size(dstate))!=(nin+1)*N+2) { dstate=[-1,lunit,zeros((nin+1)*N,1)]; } model.in1=nin; model.dstate=dstate; model.ipar=ipar; model.dep_ut=[true,false]; graphics.exprs=exprs; x.graphics=graphics; x.model=model; break } } } } /* autogenerated from "macros/Sinks/CSCOPE.sci" */ function CSCOPE() { CSCOPE.prototype.define = function CSCOPE() { win=-1; wdim=[600,400]; wpos=[-1,-1]; clrs=[1,3,5,7,9,11,13,15]; N=20; ymin=-15; ymax=+15; per=30; model=scicos_model(); model.sim=list("cscope",4); model.in1=-1; model.in2=1; model.evtin=1; model.rpar=[0,ymin,ymax,per]; model.ipar=[win,1,N,clrs,wpos,wdim]; model.blocktype="c"; model.dep_ut=[true,false]; exprs=[strcat(string(clrs)," "),string(win),sci2exp([]),sci2exp(wdim),string(ymin),string(ymax),string(per),string(N),transpose(string(0)),emptystr()]; gr_i=[]; x=standard_define([2,2],model,exprs,gr_i); } CSCOPE.prototype.details = function CSCOPE() { } CSCOPE.prototype.get = function CSCOPE() { } CSCOPE.prototype.set = function CSCOPE() { x=arg1; graphics=arg1.graphics; exprs=graphics.exprs; model=arg1.model; while (true) { [ok,clrs,win,wpos,wdim,ymin,ymax,per,N,heritance,nom,exprs]=scicos_getvalue("Set Scope parameters",["Color (>0) or mark (<0) vector (8 entries)","Output window number (-1 for automatic)","Output window position","Output window sizes","Ymin","Ymax","Refresh period","Buffer size","Accept herited events 0/1","Name of Scope (label&Id)"],list("vec",8,"vec",1,"vec",-1,"vec",-1,"vec",1,"vec",1,"vec",1,"vec",1,"vec",1,"str",1),exprs); if (!ok) { break } mess=[]; if (size(wpos,"*")!=0&&size(wpos,"*")!=2) { mess=[mess,"Window position must be [] or a 2 vector"," "]; ok=false; } if (size(wdim,"*")!=0&&size(wdim,"*")!=2) { mess=[mess,"Window dim must be [] or a 2 vector"," "]; ok=false; } if (win<-1) { mess=[mess,"Window number can\'t be < -1"," "]; ok=false; } if (per<=0) { mess=[mess,"Refresh period must be positive"," "]; ok=false; } if (N<2) { mess=[mess,"Buffer size must be at least 2"," "]; ok=false; } if (ymin>=ymax) { mess=[mess,"Ymax must be greater than Ymin"," "]; ok=false; } if (!or(heritance==[0,1])) { mess=[mess,"Accept herited events must be 0 or 1"," "]; ok=false; } if (!ok) { message(["Some specified values are inconsistent:"," ",mess]); } if (ok) { [model,graphics,ok]=set_io(model,graphics,list([-1,1],1),list(),ones(1-heritance,1),[]); } if (ok) { if (wpos==[]) { wpos=[-1,-1]; } if (wdim==[]) { wdim=[-1,-1]; } rpar=[0,ymin,ymax,per]; ipar=[win,1,N,clrs.slice(),wpos.slice(),wdim.slice()]; model.rpar=rpar; model.ipar=ipar; model.evtin=ones(1-heritance,1); model.label=nom; graphics.id=nom; graphics.exprs=exprs; x.graphics=graphics; x.model=model; break } } } } /* autogenerated from "macros/Sinks/CANIMXY3D.sci" */ function CANIMXY3D() { CANIMXY3D.prototype.define = function CANIMXY3D() { win=-1; N=2; clrs=[1,2,3,4,5,6,7,13]; siz=[1,1,1,1,1,1,1,1]; wpos=[-1,-1]; wdim=[-1,-1]; param3ds=[50,280]; vec_x=[-15,15]; vec_y=[-15,15]; vec_z=[-15,15]; nbr_curves=1; model=scicos_model(); model.sim=list("canimxy3d",4); model.in1=[1,1,1]; model.evtin=1; model.in2=[1,1,1]; model.intyp=[1,1,1]; model.rpar=[vec_x.slice(),vec_y.slice(),vec_z.slice(),param3ds.slice()]; model.ipar=[win,8,N,clrs.slice(),siz.slice(),8,wpos.slice(),wdim.slice(),nbr_curves]; model.blocktype="d"; model.firing=[]; model.dep_ut=[false,false]; exprs=[string(nbr_curves),strcat(string(clrs)," "),strcat(string(siz)," "),string(win),"[]","[]",strcat(string(vec_x)," "),strcat(string(vec_y)," "),strcat(string(vec_z)," "),strcat(string(param3ds)," "),string(N)]; gr_i=[]; x=standard_define([2,2],model,exprs,gr_i); } CANIMXY3D.prototype.details = function CANIMXY3D() { } CANIMXY3D.prototype.get = function CANIMXY3D() { } CANIMXY3D.prototype.set = function CANIMXY3D() { x=arg1; graphics=arg1.graphics; exprs=graphics.exprs; model=arg1.model; while (true) { [ok,nbr_curves,clrs,siz,win,wpos,wdim,vec_x,vec_y,vec_z,param3ds,N,exprs]=scicos_getvalue("Set Scope parameters",["Number of curves","color (>0) or mark (<0)","line or mark size","Output window number (-1 for automatic)","Output window position","Output window sizes","Xmin and Xmax","Ymin and Ymax","Zmin and Zmax","Alpha and Theta","Buffer size"],list("vec",1,"vec",-1,"vec",-1,"vec",1,"vec",-1,"vec",-1,"vec",-1,"vec",-1,"vec",-1,"vec",-1,"vec",1),exprs); if (!ok) { break } mess=[]; if (size(wpos,"*")!=0&&size(wpos,"*")!=2) { mess=[mess,"Window position must be [] or a 2 vector"," "]; ok=false; } if (size(wdim,"*")!=0&&size(wdim,"*")!=2) { mess=[mess,"Window dim must be [] or a 2 vector"," "]; ok=false; } if (win<-1) { mess=[mess,"Window number cannot be inferior than -1"," "]; ok=false; } if (size(clrs,"*")!=size(siz,"*")) { mess=[mess,"Colors and Size must have same size"," "]; ok=false; } if (nbr_curves<=0) { mess=[mess,"Number of curves cannot be negative or null"," "]; ok=false; } if (size(clrs,"*")0) { mess=[mess,"Buffer size must be at least 2 or Change a color (must be <0)"," "]; ok=false; } } } if (vec_y(1)>=vec_y(2)) { mess=[mess,"Ymax must be higher than Ymin"," "]; ok=false; } if (vec_x(1)>=vec_x(2)) { mess=[mess,"Xmax must be higher than Xmin"," "]; ok=false; } if (vec_z(1)>=vec_z(2)) { mess=[mess,"Zmax must be higher than Zmin"," "]; ok=false; } if (!ok) { message(mess); } else { in1=nbr_curves*ones(3,1); in2=ones(3,1); [model,graphics,ok]=set_io(model,graphics,list([in1,in2],ones(3,1)),list(),ones(1,1),[]); if (wpos==[]) { wpos=[-1,-1]; } if (wdim==[]) { wdim=[-1,-1]; } rpar=[vec_x.slice(),vec_y.slice(),vec_z.slice(),param3ds.slice()]; size_siz=size(siz,"*"); ipar=[win,size_siz,N,clrs.slice(),siz.slice(),1,wpos.slice(),wdim.slice(),nbr_curves]; model.rpar=rpar; model.ipar=ipar; graphics.exprs=exprs; x.graphics=graphics; x.model=model; break } } } } /* autogenerated from "macros/Sinks/CMAT3D.sci" */ function CMAT3D() { CMAT3D.prototype.define = function CMAT3D() { cmin=0; cmax=100; colormap=jetcolormap(25); size_c=25; x=-1; y=-1; size_x=1; size_y=1; model=scicos_model(); model.sim=list("cmat3d",4); model.in1=-1; model.in2=-2; model.intyp=1; model.evtin=1; model.ipar=[cmin,cmax,size_c,size_x,size_y]; model.rpar=[colormap.slice(),x,y]; model.blocktype="c"; model.dep_ut=[true,false]; exprs=[strcat(string(x)," "),strcat(string(y)," "),string("jetcolormap(25)"),string(cmin),string(cmax)]; gr_i=[]; x=standard_define([2,2],model,exprs,gr_i); } CMAT3D.prototype.details = function CMAT3D() { } CMAT3D.prototype.get = function CMAT3D() { } CMAT3D.prototype.set = function CMAT3D() { x=arg1; graphics=arg1.graphics; exprs=graphics.exprs; model=arg1.model; while (true) { [ok,vec_x,vec_y,colormap,cmin,cmax,exprs]=scicos_getvalue("Set Scope parameters",["Bounds Vector X (-1 for standard)","Bounds Vector Y (-1 for standard)","ColorMap","Zmin","Zmax"],list("vec",-1,"vec",-1,"vec",-1,"vec",1,"vec",1),exprs); if (!ok) { break } mess=[]; if (size(vec_x,"*")!=size(vec_y,"*")) { mess=[mess,"Vector X and Vector Y must have the same size"," "]; ok=false; } if (cmax<=cmin) { mess=[mess,"Error with minimum and maximum value"," "]; ok=false; } if (!ok) { message(["Some specified values are inconsistent:"," ",mess]); } if (ok) { size_x=size(vec_x,"*"); size_c=size(colormap.slice(),1); ipar=[cmin,cmax,size_c,size_x]; rpar=[colormap.slice(),vec_x.slice(),vec_y.slice()]; model.ipar=ipar; model.rpar=rpar; graphics.exprs=exprs; x.graphics=graphics; x.model=model; break } } } } /* autogenerated from "macros/Sinks/CSCOPXY3D.sci" */ function CSCOPXY3D() { CSCOPXY3D.prototype.define = function CSCOPXY3D() { win=-1; clrs=[1,2,3,4,5,6,7,13]; siz=[1,1,1,1,1,1,1,1]; wdim=[600,400]; wpos=[-1,-1]; N=2; param3ds=[50,280]; vec_x=[-15,15]; vec_y=[-15,15]; vec_z=[-15,15]; nbr_curves=1; model=scicos_model(); model.sim=list("cscopxy3d",4); model.in1=[1,1,1]; model.in2=[1,1,1]; model.intyp=[1,1,1]; model.evtin=1; model.rpar=[vec_x.slice(),vec_y.slice(),vec_z.slice(),param3ds.slice()]; model.ipar=[win,8,N,clrs.slice(),siz.slice(),8,wpos.slice(),wdim.slice(),nbr_curves]; model.blocktype="d"; model.dep_ut=[false,false]; exprs=[string(nbr_curves),strcat(string(clrs)," "),strcat(string(siz)," "),string(win),sci2exp([]),sci2exp(wdim),strcat(string(vec_x)," "),strcat(string(vec_y)," "),strcat(string(vec_z)," "),strcat(string(param3ds)," "),string(N)]; gr_i=[]; x=standard_define([2,2],model,exprs,gr_i); } CSCOPXY3D.prototype.details = function CSCOPXY3D() { } CSCOPXY3D.prototype.get = function CSCOPXY3D() { } CSCOPXY3D.prototype.set = function CSCOPXY3D() { x=arg1; graphics=arg1.graphics; exprs=graphics.exprs; model=arg1.model; while (true) { [ok,nbr_curves,clrs,siz,win,wpos,wdim,vec_x,vec_y,vec_z,param3ds,N,exprs]=scicos_getvalue("Set Scope parameters",["Number of curves","color (>0) or mark (<0)","Line or Mark Size","Output window number (-1 for automatic)","Output window position","Output window sizes","Xmin and Xmax","Ymin and Ymax","Zmin and Zmax","Alpha and Theta","Buffer size"],list("vec",1,"vec",-1,"vec",-1,"vec",1,"vec",-1,"vec",-1,"vec",2,"vec",2,"vec",2,"vec",2,"vec",1),exprs); if (!ok) { break } mess=[]; if (size(wpos,"*")!=0&&size(wpos,"*")!=2) { mess=[mess,"Window position must be [] or a 2 vector"," "]; ok=false; } if (size(wdim,"*")!=0&&size(wdim,"*")!=2) { mess=[mess,"Window dim must be [] or a 2 vector"," "]; ok=false; } if (size(clrs,"*")!=size(siz,"*")) { mess=[mess,"Colors and Size must have same size"," "]; ok=false; } if (nbr_curves<=0) { mess=[mess,"Number of curves cannot be negative or null"," "]; ok=false; } if (win<-1) { mess=[mess,"Window number cannot be inferior than -1"," "]; ok=false; } if (N<1) { mess=[mess,"Buffer size must be at least 1"," "]; ok=false; } if (N<2) { for (i=1;i<=size(clrs,"*");i+=1) { if (clrs(i)>0) { mess=[mess,"Buffer size must be at least 2 or Change a color (must be >0)"," "]; ok=false; } } } if (vec_y(1)>=vec_y(2)) { mess=[mess,"Ymax must be higher than Ymin"," "]; ok=false; } if (vec_x(1)>=vec_x(2)) { mess=[mess,"Xmax must be higher than Xmin"," "]; ok=false; } if (vec_z(1)>=vec_z(2)) { mess=[mess,"Zmax must be higher than Zmin"," "]; ok=false; } if (ok) { in1=nbr_curves*ones(3,1); in2=ones(3,1); [model,graphics,ok]=set_io(model,graphics,list([in1,in2],ones(3,1)),list(),ones(1,1),[]); if (wpos==[]) { wpos=[-1,-1]; } if (wdim==[]) { wdim=[-1,-1]; } rpar=[vec_x.slice(),vec_y.slice(),vec_z.slice(),param3ds.slice()]; size_siz=size(siz,"*"); ipar=[win,size_siz,N,clrs.slice(),siz.slice(),1,wpos.slice(),wdim.slice(),nbr_curves]; model.rpar=rpar; model.ipar=ipar; graphics.exprs=exprs; x.graphics=graphics; x.model=model; break } else { message(mess); } } } } /* autogenerated from "macros/Sinks/CSCOPXY.sci" */ function CSCOPXY() { CSCOPXY.prototype.define = function CSCOPXY() { win=-1; clrs=4; siz=1; wdim=[600,400]; wpos=[-1,-1]; N=2; xmin=-15; xmax=15; ymin=-15; ymax=+15; nbr_curves=1; model=scicos_model(); model.sim=list("cscopxy",4); model.in1=[1,1]; model.in2=[1,1]; model.intyp=[1,1]; model.evtin=1; model.rpar=[xmin,xmax,ymin,ymax]; model.ipar=[win,1,N,clrs,siz,1,wpos.slice(),wdim.slice(),nbr_curves]; model.blocktype="d"; model.dep_ut=[false,false]; exprs=[string(nbr_curves),sci2exp(clrs),sci2exp(siz),string(win),sci2exp([]),sci2exp(wdim),string(xmin),string(xmax),string(ymin),string(ymax),string(N)]; gr_i=[]; x=standard_define([2,2],model,exprs,gr_i); } CSCOPXY.prototype.details = function CSCOPXY() { } CSCOPXY.prototype.get = function CSCOPXY() { } CSCOPXY.prototype.set = function CSCOPXY() { x=arg1; graphics=arg1.graphics; exprs=graphics.exprs; model=arg1.model; while (true) { [ok,nbr_curves,clrs,siz,win,wpos,wdim,xmin,xmax,ymin,ymax,N,exprs]=scicos_getvalue("Set Scope parameters",["Number of Curves","color (>0) or mark (<0)","line or mark size","Output window number (-1 for automatic)","Output window position","Output window sizes","Xmin","Xmax","Ymin","Ymax","Buffer size"],list("vec",1,"vec",1,"vec",1,"vec",1,"vec",-1,"vec",-1,"vec",1,"vec",1,"vec",1,"vec",1,"vec",1),exprs); if (!ok) { break } mess=[]; if (size(wpos,"*")!=0&&size(wpos,"*")!=2) { mess=[mess,"Window position must be [] or a 2 vector"," "]; ok=false; } if (size(wdim,"*")!=0&&size(wdim,"*")!=2) { mess=[mess,"Window dim must be [] or a 2 vector"," "]; ok=false; } if (nbr_curves<=0) { mess=[mess,"Number of Curves cannot be negative or null"," "]; ok=false; } if (win<-1) { mess=[mess,"Window number cannot be inferior than -1"," "]; ok=false; } if (N<1) { mess=[mess,"Buffer size must be at least 1"," "]; ok=false; } if (N==1&&clrs>0) { mess=[mess,"Buffer size must be at least 2"," "]; ok=false; } if (ymin>=ymax) { mess=[mess,"Ymax must be greater than Ymin"," "]; ok=false; } if (xmin>=xmax) { mess=[mess,"Xmax must be greater than Xmin"," "]; ok=false; } if (!ok) { message(mess); } else { in1=nbr_curves*ones(2,1); in2=ones(2,1); [model,graphics,ok]=set_io(model,graphics,list([in1,in2],ones(2,1)),list(),ones(1,1),[]); if (wpos==[]) { wpos=[-1,-1]; } if (wdim==[]) { wdim=[-1,-1]; } rpar=[xmin,xmax,ymin,ymax]; ipar=[win,1,N,clrs,siz,1,wpos.slice(),wdim.slice(),nbr_curves]; model.rpar=rpar; model.ipar=ipar; graphics.exprs=exprs; x.graphics=graphics; x.model=model; break } } } } /* autogenerated from "macros/Sinks/OUTIMPL_f.sci" */ function OUTIMPL_f() { OUTIMPL_f.prototype.define = function OUTIMPL_f() { model=scicos_model(); model.in1=[-1]; model.in2=[1]; prt=1; model.sim="outimpl"; model.ipar=[1]; model.blocktype="c"; model.dep_ut=[false,false]; mo=modelica(); mo.model="PORT"; mo.inputs="n"; model.equations=mo; exprs="1"; gr_i=[]; x=standard_define([1,1],model,exprs,gr_i); x.graphics.in_implicit=["I"]; } OUTIMPL_f.prototype.details = function OUTIMPL_f() { } OUTIMPL_f.prototype.get = function OUTIMPL_f() { } OUTIMPL_f.prototype.set = function OUTIMPL_f() { x=arg1; graphics=arg1.graphics; exprs=graphics.exprs; model=arg1.model; if (size(exprs,"*")==2) { exprs=exprs[1-1]; } while (true) { [ok,prt,exprs]=scicos_getvalue([msprintf(gettext("Set %s block parameters"),"OUTIMPL_f")," ",gettext("Implicit output port")],gettext("Port number"),list("vec",1),exprs); if (!ok) { break } prt=int(prt); if (prt<=0) { block_parameter_error(msprintf(gettext("Wrong value for \'Port Number\' parameter: %d."),prt),gettext("Strictly positive integer expected.")); } else { if (model.ipar!=prt) { needcompile=4; y=needcompile; } model.ipar=prt; graphics.exprs=exprs; x.graphics=graphics; x.model=model; break } } } } /* autogenerated from "macros/Sinks/CLKOUTV_f.sci" */ function CLKOUTV_f() { CLKOUTV_f.prototype.define = function CLKOUTV_f() { prt=1; model=scicos_model(); model.sim="output"; model.evtin=1; model.ipar=prt; model.blocktype="d"; model.firing=[]; model.dep_ut=[false,false]; exprs=string(prt); x=standard_define([1,1],model,exprs," "); } CLKOUTV_f.prototype.details = function CLKOUTV_f() { } CLKOUTV_f.prototype.get = function CLKOUTV_f() { } CLKOUTV_f.prototype.set = function CLKOUTV_f() { x=arg1; graphics=arg1.graphics; model=arg1.model; exprs=graphics.exprs; while (true) { [ok,prt,exprs]=scicos_getvalue([msprintf(gettext("Set %s block parameters"),"CLKOUTV_f")," ",gettext("Event output port")],gettext("Port number"),list("vec",1),exprs); if (!ok) { break } prt=int(prt); if (prt<=0) { block_parameter_error(msprintf(gettext("Wrong value for \'Port Number\' parameter: %d."),prt),gettext("Strictly positive integer expected.")); } else { model.ipar=prt; model.evtin=1; graphics.exprs=exprs; x.graphics=graphics; x.model=model; break } } } } /* autogenerated from "macros/Sinks/CFSCOPE.sci" */ function CFSCOPE() { CFSCOPE.prototype.define = function CFSCOPE() { win=-1; wdim=[600,400]; wpos=[-1,-1]; clrs=[1,3,5,7,9,11,13,15]; N=2; ymin=-15; ymax=+15; per=30; model=scicos_model(); model.sim=list("cfscope",4); model.evtin=1; model.rpar=[0,ymin,ymax,per]; model.ipar=[win,1,N,clrs,wpos,wdim,1,1]; model.blocktype="c"; model.dep_ut=[true,false]; exprs=[strcat(string(clrs)," "),string(win),sci2exp([]),sci2exp(wdim),string(ymin),string(ymax),string(per),string(N),string([1])]; gr_i=[]; x=standard_define([2,2],model,exprs,gr_i); } CFSCOPE.prototype.details = function CFSCOPE() { } CFSCOPE.prototype.get = function CFSCOPE() { } CFSCOPE.prototype.set = function CFSCOPE() { x=arg1; graphics=arg1.graphics; exprs=graphics.exprs; model=arg1.model; while (true) { [ok,clrs,win,wpos,wdim,ymin,ymax,per,N,wu,exprs]=scicos_getvalue("Set Scope parameters",["Color (>0) or mark (<0) vector (8 entries)","Output window number (-1 for automatic)","Output window position","Output window sizes","Ymin","Ymax","Refresh period","Buffer size","Links to view"],list("vec",8,"vec",1,"vec",-1,"vec",-1,"vec",1,"vec",1,"vec",1,"vec",1,"vec",-1),exprs); if (!ok) { break } mess=[]; if (size(wpos,"*")!=0&&size(wpos,"*")!=2) { mess=[mess,"Window position must be [] or a 2 vector"," "]; ok=false; } if (size(wdim,"*")!=0&&size(wdim,"*")!=2) { mess=[mess,"Window dim must be [] or a 2 vector"," "]; ok=false; } if (win<-1) { mess=[mess,"Window number cannot be inferior than -1"," "]; ok=false; } if (per<=0) { mess=[mess,"Refresh period must be positive"," "]; ok=false; } if (N<2) { mess=[mess,"Buffer size must be at least 2"," "]; ok=false; } if (ymin>=ymax) { mess=[mess,"Ymax must be greater than Ymin"," "]; ok=false; } if (wu<0) { mess=[mess,"Link to view must be positive"," "]; ok=false; } if (!ok) { message(["Some specified values are inconsistent:"," ",mess]); } if (ok) { if (wpos==[]) { wpos=[-1,-1]; } if (wdim==[]) { wdim=[-1,-1]; } rpar=[0,ymin,ymax,per]; if (size(clrs,"*")>8) { clrs=clrs.slice(1-1,8); } if (size(clrs,"*")<8) { clrs[8-1]=0; } ipar=[win,1,N,clrs.slice(),wpos.slice(),wdim.slice(),size(wu,"*"),wu.slice()]; model.rpar=rpar; model.ipar=ipar; model.firing=[]; model.dep_ut=[true,false]; graphics.exprs=exprs; x.graphics=graphics; x.model=model; break } } } } /* autogenerated from "macros/Sinks/WRITEAU_f.sci" */ function WRITEAU_f() { WRITEAU_f.prototype.define = function WRITEAU_f() { in1=1; nin=sum(in1); frmt="uc "; fname="/dev/audio"; swap=0; lunit=0; N=2; model=scicos_model(); model.sim=list("writeau",2); model.in1=in1; model.evtin=1; model.dstate=[-1,lunit,zeros((nin+1)*N,1)]; model.ipar=[length(fname),_str2code(frmt),N,swap,_str2code(fname)]; model.blocktype="d"; model.dep_ut=[true,false]; exprs=[string(N),string(swap)]; gr_i=[]; x=standard_define([4,2],model,exprs,gr_i); } WRITEAU_f.prototype.details = function WRITEAU_f() { } WRITEAU_f.prototype.get = function WRITEAU_f() { } WRITEAU_f.prototype.set = function WRITEAU_f() { x=arg1; graphics=arg1.graphics; exprs=graphics.exprs; model=arg1.model; ipar=model.ipar; dstate=model.dstate; lunit=dstate(2); while (true) { [ok,N,swap,exprs]=scicos_getvalue([msprintf(gettext("Set %s block parameters"),"WRITEAU_f")," ",gettext("Write \'.au\' sound file on audio device")],[gettext("Buffer Size"),gettext("Swap Mode (0:No, 1:Yes)")],list("vec",1,"vec",1),exprs); if (!ok) { break } nin=1; fname1="/dev/audio"; frmt1="uc "; if (alreadyran&&(N!=ipar(5))) { block_parameter_error(msprintf(gettext("You cannot modify \'%s\' when running."),gettext("Buffer Size")),gettext("End current simulation first")); ok=false; } else if (N<1) { block_parameter_error(msprintf(gettext("Wrong value for \'%s\' parameter: %d."),gettext("Buffer Size"),N),gettext("Strictly positive integer expected.")); ok=false; } if (swap!=0&&swap!=1) { block_parameter_error(msprintf(gettext("Wrong value for \'%s\' parameter: %d."),gettext("Swap Mode"),swap),msprintf(gettext("Must be in the interval %s."),"[0, 1]")); ok=false; } if (ok) { ipar=[length(fname1),_str2code(frmt1),N,swap,_str2code(fname1)]; if (prod(size(dstate))!=(nin+1)*N+2) { dstate=[-1,lunit,zeros((nin+1)*N,1)]; } model.in1=1; model.dstate=dstate; model.ipar=ipar; graphics.exprs=exprs; x.graphics=graphics; x.model=model; break } } } } /* autogenerated from "macros/Sinks/WRITEC_f.sci" */ function WRITEC_f() { WRITEC_f.prototype.define = function WRITEC_f() { in1=1; nin=sum(in1); frmt="c "; fname="foo"; swap=0; lunit=0; N=2; model=scicos_model(); model.sim=list("writec",2); model.in1=in1; model.evtin=1; model.dstate=[-1,lunit,zeros((nin+1)*N,1)]; model.ipar=[length(fname),_str2code(frmt),N,swap,_str2code(fname)]; model.blocktype="d"; model.dep_ut=[true,false]; exprs=[sci2exp(in1),fname,frmt,string(N),string(swap)]; gr_i=[]; x=standard_define([4,2],model,exprs,gr_i); } WRITEC_f.prototype.details = function WRITEC_f() { } WRITEC_f.prototype.get = function WRITEC_f() { } WRITEC_f.prototype.set = function WRITEC_f() { x=arg1; graphics=arg1.graphics; exprs=graphics.exprs; model=arg1.model; ipar=model.ipar; dstate=model.dstate; lunit=dstate(2); fname=exprs[2-1]; frmt=exprs[3-1]; while (true) { [ok,in1,fname1,frmt1,N,swap,exprs]=scicos_getvalue([msprintf(gettext("Set %s block parameters"),"WRITEC_f")," ",gettext("Write to C binary file")],[gettext("Input Size"),gettext("Output File Name"),gettext("Output Format"),gettext("Buffer Size"),gettext("Swap Mode (0:No, 1:Yes)")],list("vec",1,"str",1,"str",1,"vec",1,"vec",1),exprs); if (!ok) { break } in1=int(in1); nin=in1; fname1=pathconvert(stripblanks(fname1),false,true); frmt1=stripblanks(frmt1); fmts=["s","l","d","f","c","us","ul","uc","ull","uls","ubl","ubs","dl","fl","ll","sl","db","fb","lb","sb"]; if (and(frmt1!=fmts)) { block_parameter_error(msprintf(gettext("Wrong value for \'%s\' parameter: %s."),gettext("Input Format"),frmt1),gettext("Valid formats are: "+strcat(fmts,", "))); ok=false; } else if (alreadyran&&fname1!=fname) { block_parameter_error(msprintf(gettext("You cannot modify \'%s\' when running"),gettext("Input Format")),gettext("End current simulation first.")); ok=false; } else if (alreadyran&&N!=ipar(5)) { block_parameter_error(msprintf(gettext("You cannot modify \'Buffer Size\' when running."),gettext("Buffer Size")),gettext("End current simulation first")); ok=false; } else if (fname1=="") { block_parameter_error(msprintf(gettext("Wrong value for \'%s\' parameter."),gettext("Output File Name")),gettext("You must provide a filename.")); } else if (fileparts(fname1)!="") { [pa,fn,ex]=fileparts(fname1); if (!isdir(pa)) { block_parameter_error(msprintf(gettext("Wrong value for \'%s\' parameter."),gettext("Output File Name")),msprintf(gettext("Directory \'%s\' does not exist"),pa)); ok=false; } } else if (N<1) { block_parameter_error(msprintf(gettext("Wrong value for \'%s\' parameter: %d."),gettext("Buffer Size"),N),gettext("Strictly positive integer expected.")); ok=false; } else if (in1<=0) { block_parameter_error(msprintf(gettext("Wrong value for \'%s\' parameter: %d."),gettext("Input Size"),in1),gettext("Strictly positive integer expected.")); ok=false; } else if (swap!=0&&swap!=1) { block_parameter_error(msprintf(gettext("Wrong value for \'%s\' parameter: %d."),gettext("Swap Mode"),swap),msprintf(gettext("Must be in the interval %s."),"[0, 1]")); ok=false; } frmt1=part(frmt1,1,3); if (ok) { ipar=[length(fname1),_str2code(frmt1),N,swap,_str2code(fname1)]; if (prod(size(dstate))!=(nin+1)*N+2) { dstate=[-1,lunit,zeros((nin+1)*N,1)]; } model.in1=nin; model.dstate=dstate; model.ipar=ipar; graphics.exprs=exprs; x.graphics=graphics; x.model=model; break } } } } /* autogenerated from "macros/Sinks/CMSCOPE.sci" */ function CMSCOPE() { CMSCOPE.prototype.define = function CMSCOPE() { win=-1; in1=[1,1]; wdim=[-1,-1]; wpos=[-1,-1]; clrs=[1,3,5,7,9,11,13,15]; N=20; ymin=[-1,-5]; ymax=[1,5]; per=[30,30]; yy=[transpose(ymin.slice()),transpose(ymax.slice())]; period=transpose(per.slice()); model=scicos_model(); model.sim=list("cmscope",4); model.in1=in1; model.in2=[1,1]; model.intyp=[1,1]; model.evtin=1; model.rpar=[0,period.slice(),yy.slice()]; model.ipar=[win,size(in1,"*"),N,wpos.slice(),wdim.slice(),in1.slice(),clrs.slice(1-1,sum(in1))]; model.blocktype="c"; model.dep_ut=[true,false]; exprs=[strcat(string(in1)," "),strcat(string(clrs)," "),string(win),sci2exp([]),sci2exp([]),strcat(string(ymin)," "),strcat(string(ymax)," "),strcat(string(per)," "),string(N),string(0),emptystr()]; gr_i=[]; x=standard_define([2,2],model,exprs,gr_i); } CMSCOPE.prototype.details = function CMSCOPE() { } CMSCOPE.prototype.get = function CMSCOPE() { } CMSCOPE.prototype.set = function CMSCOPE() { x=arg1; graphics=arg1.graphics; exprs=graphics.exprs; model=arg1.model; while (true) { [ok,in1,clrs,win,wpos,wdim,ymin,ymax,per,N,heritance,nom,exprs]=scicos_getvalue("Set Scope parameters",["Input ports sizes","Drawing colors (>0) or mark (<0)","Output window number (-1 for automatic)","Output window position","Output window sizes","Ymin vector","Ymax vector","Refresh period","Buffer size","Accept herited events 0/1","Name of Scope (label&Id)"],list("vec",-1,"vec",-1,"vec",1,"vec",-1,"vec",-1,"vec","size(%1,\'*\')","vec","size(%1,\'*\')","vec","size(%1,\'*\')","vec",1,"vec",1,"str",1),exprs); if (!ok) { break } mess=[]; if (size(in1,"*")<=0) { mess=[mess,"Block must have at least one input port"," "]; ok=false; } if (min(in1)<=0) { mess=[mess,"Port sizes must be positive"," "]; ok=false; } if (size(clrs,"*")=ymax)) { mess=[mess,"Ymax must be greater than Ymin"," "]; ok=false; } if (!or(heritance==[0,1])) { mess=[mess,"Accept herited events must be 0 or 1"," "]; ok=false; } if (!ok) { message(["Some specified values are inconsistent:"," ",mess]); } if (ok) { in1=in1.slice(); a=size(in1,1); in2=ones(a,1); [model,graphics,ok]=set_io(model,graphics,list([in1,in2],ones(a,1)),list(),ones(1-heritance,1),[]); } if (ok) { if (wpos==[]) { wpos=[-1,-1]; } if (wdim==[]) { wdim=[-1,-1]; } if (ok) { period=transpose(per.slice()); yy=[transpose(ymin.slice()),transpose(ymax.slice())]; rpar=[0,period.slice(),yy.slice()]; clrs=clrs.slice(1-1,sum(in1)); ipar=[win,size(in1,"*"),N,wpos.slice(),wdim.slice(),in1.slice(),clrs.slice(),heritance]; model.evtin=ones(1-heritance,1); model.dstate=[]; model.rpar=rpar; model.ipar=ipar; model.label=nom; graphics.id=nom; graphics.exprs=exprs; x.graphics=graphics; x.model=model; break } } } } } /* autogenerated from "macros/Sinks/CMATVIEW.sci" */ function CMATVIEW() { CMATVIEW.prototype.define = function CMATVIEW() { cmin=0; cmax=100; size_c=25; colormap=jetcolormap(size_c); alpha_c=0.24; beta_c=1; model=scicos_model(); model.sim=list("cmatview",4); model.in1=-1; model.in2=-2; model.intyp=1; model.evtin=1; model.ipar=[cmin,cmax,size_c]; model.rpar=[alpha_c,beta_c,colormap.slice()]; model.blocktype="c"; model.dep_ut=[true,false]; exprs=[string("jetcolormap(25)"),string(cmin),string(cmax)]; gr_i=[]; x=standard_define([2,2],model,exprs,gr_i); } CMATVIEW.prototype.details = function CMATVIEW() { } CMATVIEW.prototype.get = function CMATVIEW() { } CMATVIEW.prototype.set = function CMATVIEW() { x=arg1; graphics=arg1.graphics; exprs=graphics.exprs; model=arg1.model; while (true) { [ok,colormap,cmin,cmax,exprs]=scicos_getvalue("Set Scope parameters",["ColorMap","Minimum level range","Maximum level range"],list("vec",-1,"vec",1,"vec",1),exprs); if (!ok) { break } mess=[]; if (cmax<=cmin) { mess=[mess,"Error with minimum and maximum value"," "]; ok=false; } if (!ok) { message(["Some specified values are inconsistent:"," ",mess]); } if (ok) { size_c=size(colormap.slice(),1); sol=inv([cmin,1,cmax,1])*[1,size_c/3]; alpha_c=sol(1); beta_c=sol(2); ipar=[cmin,cmax,size_c]; rpar=[alpha_c,beta_c,colormap.slice()]; model.ipar=ipar; model.rpar=rpar; graphics.exprs=exprs; x.graphics=graphics; x.model=model; break } } } } /* autogenerated from "macros/Sinks/CEVENTSCOPE.sci" */ function CEVENTSCOPE() { CEVENTSCOPE.prototype.define = function CEVENTSCOPE() { nclock=1; win=-1; clrs=[1,3,5,7,9,11,13,15]; wdim=[600,400]; wpos=[-1,-1]; per=30; model=scicos_model(); model.sim=list("cevscpe",4); model.evtin=1; model.rpar=per; model.ipar=[win,1,clrs[nclock-1],wpos.slice(),wdim.slice()]; model.blocktype="d"; model.dep_ut=[false,false]; exprs=[sci2exp(nclock),strcat(sci2exp(clrs[nclock-1])," "),string(win),sci2exp([]),sci2exp(wdim),string(per)]; gr_i=[]; x=standard_define([2,2],model,exprs,gr_i); } CEVENTSCOPE.prototype.details = function CEVENTSCOPE() { } CEVENTSCOPE.prototype.get = function CEVENTSCOPE() { } CEVENTSCOPE.prototype.set = function CEVENTSCOPE() { x=arg1; graphics=arg1.graphics; exprs=graphics.exprs; model=arg1.model; while (true) { [ok,nclock,clrs,win,wpos,wdim,per,exprs]=scicos_getvalue("Set Scope parameters",["Number of event inputs","colors c (>0) or mark (<0)","Output window number (-1 for automatic)","Output window position","Output window sizes","Refresh period"],list("vec",1,"vec",-1,"vec",1,"vec",-1,"vec",-1,"vec",1),exprs); nclock=int(nclock); clrs=int(clrs); win=int(win); if (!ok) { break } mess=[]; if (size(wpos,"*")!=0&&size(wpos,"*")!=2) { mess=[mess,"Window position must be [] or a 2 vector"," "]; ok=false; } if (size(wdim,"*")!=0&&size(wdim,"*")!=2) { mess=[mess,"Window dim must be [] or a 2 vector"," "]; ok=false; } if (nclock<=0) { mess=[mess,"Block must have at least one input event"," "]; ok=false; } if (size(clrs,"*")!=nclock) { mess=[mess,"Inputs color c size must be equal to Number of inputs"," "]; ok=false; } if (win<-1) { mess=[mess,"Window number cannot be inferior than -1"," "]; ok=false; } if (per<=0) { mess=[mess,"Refresh period must be positive"," "]; ok=false; } if (ok) { [model,graphics,ok]=set_io(model,graphics,list(),list(),ones(nclock,1),[]); } else { message(["Some specified values are inconsistent:"," ",mess]); } if (ok) { if (wpos==[]) { wpos=[-1,-1]; } if (wdim==[]) { wdim=[-1,-1]; } rpar=per; ipar=[win,1,clrs.slice(),wpos.slice(),wdim.slice()]; model.rpar=rpar; model.ipar=ipar; graphics.exprs=exprs; x.graphics=graphics; x.model=model; break } } } } /* autogenerated from "macros/Sinks/TRASH_f.sci" */ function TRASH_f() { TRASH_f.prototype.define = function TRASH_f() { in1=-1; model=scicos_model(); model.sim="trash"; model.in1=in1; model.evtin=1; model.blocktype="d"; model.dep_ut=[false,false]; exprs=" "; gr_i=[]; x=standard_define([2,2],model,exprs,gr_i); } TRASH_f.prototype.details = function TRASH_f() { } TRASH_f.prototype.get = function TRASH_f() { } TRASH_f.prototype.set = function TRASH_f() { x=arg1; } } /* autogenerated from "macros/Sinks/AFFICH_m.sci" */ function AFFICH_m() { AFFICH_m.prototype.define = function AFFICH_m() { font=1; fontsize=1; colr=1; nt=5; nd=1; in1=[1,1]; model=scicos_model(); model.sim=list("affich2",4); model.in1=in1(1,1); model.in2=in1(1,2); model.evtin=1; model.dstate=[-1,0,0,1,1,0,zeros(in1(1,1)*in1(1,2),1)]; model.ipar=[font,fontsize,colr,1000,nt,nd,in1(1,1)]; model.blocktype="c"; model.firing=[]; model.dep_ut=[true,false]; model.label=""; exprs=[sci2exp([model.in1,model.in2]),string(font),string(fontsize),string(colr),string(nt),string(nd),string(0)]; gr_i=[]; x=standard_define([3,2],model,exprs,gr_i); } AFFICH_m.prototype.details = function AFFICH_m() { } AFFICH_m.prototype.get = function AFFICH_m() { } AFFICH_m.prototype.set = function AFFICH_m() { x=arg1; graphics=arg1.graphics; exprs=graphics.exprs; model=arg1.model; while (true) { [ok,in1,font,fontsize,colr,nt,nd,herit,exprs]=scicos_getvalue("Set parameters",["Input Size","Font number","Font size","Color","Total number of digits","Number of rational part digits","Block inherits (1) or not (0)"],list("mat",[1,2],"vec",1,"vec",1,"vec",1,"vec",1,"vec",1,"vec",1),exprs); if (!ok) { break } mess=[]; if (font<=0) { mess=[mess,"Font number must be positive"," "]; ok=false; } if (fontsize<=0) { mess=[mess,"Font size must be positive"," "]; ok=false; } if (nt<=3) { mess=[mess,"Total number of digits must be greater than 3"," "]; ok=false; } if (nd<0) { mess=[mess,"Number of rational part digits must be ","greater or equal 0"," "]; ok=false; } if (!ok) { message(["Some specified values are inconsistent:"," ",mess]); } if (!or(herit==[0,1])) { mess=[mess,"Accept inherited values are 0 and 1"," "]; ok=false; } if (!ok) { message(["Some specified values are inconsistent:"," ",mess]); } if (ok) { [model,graphics,ok]=set_io(model,graphics,list(in1,1),list(),ones(1-herit,1),[]); } if (ok) { model.ipar=[font,fontsize,colr,nt,nd,in1(1,1)]; model.dstate=[-1,0,0,1,1,0,zeros(in1(1,1)*in1(1,2),1)]; model.evtin=ones(1-herit,1); graphics.exprs=exprs; x.graphics=graphics; x.model=model; break } } } } /* autogenerated from "macros/Sinks/TOWS_c.sci" */ function TOWS_c() { TOWS_c.prototype.define = function TOWS_c() { nu=-1; nz=128; varnam="A"; herit=0; model=scicos_model(); model.sim=list("tows_c",4); model.in1=[nu]; model.in2=-2; model.intyp=-1; model.out=[]; model.evtin=[1]; model.evtout=[]; model.rpar=[]; model.ipar=[nz,length(varnam),transpose(ascii(varnam))]; model.blocktype="d"; model.firing=[]; model.dep_ut=[false,false]; gr_i=[]; exprs=[string(nz),string(varnam),string(herit)]; x=standard_define([4,2],model,exprs,gr_i); } TOWS_c.prototype.details = function TOWS_c() { } TOWS_c.prototype.get = function TOWS_c() { } TOWS_c.prototype.set = function TOWS_c() { x=arg1; graphics=arg1.graphics; model=arg1.model; exprs=graphics.exprs; while (true) { [ok,nz,varnam,herit,exprs]=scicos_getvalue("Set Xcos buffer block",["Size of buffer","Scilab variable name","Inherit (no:0, yes:1)"],list("vec",1,"str",1,"vec",1),exprs); if (!ok) { break } if ((nz<=0)) { message("Size of buffer must be positive"); ok=false; } r=false; ierr=execstr("r = validvar(varnam)","errcatch"); if (!r||ierr!=0||length(varnam)>19) { message(["Invalid variable name.","Please choose another variable name."]); ok=false; } execstr("if type("+varnam+") <> 17 | or(fieldnames("+varnam+") <> [\"values\"; \"time\"]) then"+" message([\"Protected variable name.\"; \"Please choose another variable name.\"]);"+" ok = %f;"+" end","errcatch"); if (ok) { [model,graphics,ok]=set_io(model,graphics,list([-1,-2],-1),list(),ones(1-herit,1),[]); if (herit==1) { model.blocktype="x"; } else { model.blocktype="d"; } model.ipar=[nz,length(varnam),transpose(ascii(varnam))]; graphics.exprs=exprs; x.graphics=graphics; x.model=model; break } } } } /* autogenerated from "macros/Sinks/CLKOUT_f.sci" */ function CLKOUT_f() { CLKOUT_f.prototype.define = function CLKOUT_f() { prt=1; model=scicos_model(); model.sim="output"; model.evtin=1; model.ipar=prt; model.blocktype="d"; model.firing=[]; model.dep_ut=[false,false]; exprs=string(prt); x=standard_define([1,1],model,exprs," "); } CLKOUT_f.prototype.details = function CLKOUT_f() { } CLKOUT_f.prototype.get = function CLKOUT_f() { } CLKOUT_f.prototype.set = function CLKOUT_f() { x=arg1; graphics=arg1.graphics; model=arg1.model; exprs=graphics.exprs; exprs=exprs[1-1]; while (true) { [ok,prt,exprs]=scicos_getvalue("Set Event Output block parameters","Port number",list("vec",1),exprs); if (!ok) { break } prt=int(prt); if (prt<=0) { message("Port number must be a positive integer"); } else { model.ipar=prt; model.evtin=1; model.firing=[]; graphics.exprs=exprs; x.graphics=graphics; x.model=model; break } } } } /* autogenerated from "macros/Sinks/OUT_f.sci" */ function OUT_f() { OUT_f.prototype.define = function OUT_f() { n=-1; prt=1; model=scicos_model(); model.sim="output"; model.in1=-1; model.in2=-2; model.intyp=-1; model.ipar=prt; model.blocktype="c"; model.dep_ut=[false,false]; exprs=string(prt); gr_i=[]; x=standard_define([1,1],model,exprs,gr_i); } OUT_f.prototype.details = function OUT_f() { } OUT_f.prototype.get = function OUT_f() { } OUT_f.prototype.set = function OUT_f() { x=arg1; graphics=arg1.graphics; model=arg1.model; exprs=graphics.exprs; if (size(exprs,"*")==2) { exprs=exprs[1-1]; } while (true) { [ok,prt,exprs]=scicos_getvalue([msprintf(gettext("Set %s block parameters"),"OUT_f")," ",gettext("Regular output port")],gettext("Port number"),list("vec",1),exprs); if (!ok) { break } prt=int(prt); if (prt<=0) { block_parameter_error(msprintf(gettext("Wrong value for \'Port Number\' parameter: %d."),prt),gettext("Strictly positive integer expected.")); } else { model.ipar=prt; graphics.exprs=exprs; x.graphics=graphics; x.model=model; break } } } } /* autogenerated from "macros/Branching/SWITCH_f.sci" */ function SWITCH_f() { SWITCH_f.prototype.define = function SWITCH_f() { i0=0; in1=[-1,-1]; nin=2; model=scicos_model(); model.sim=list("switchn",2); model.in1=in1; model.out=-1; model.ipar=i0; model.blocktype="c"; model.firing=[]; model.dep_ut=[true,true]; exprs=[string(nin),string(i0+1)]; gr_i=[]; x=standard_define([2,2],model,exprs,gr_i); } SWITCH_f.prototype.details = function SWITCH_f() { } SWITCH_f.prototype.get = function SWITCH_f() { } SWITCH_f.prototype.set = function SWITCH_f() { x=arg1; graphics=arg1.graphics; exprs=graphics.exprs; model=arg1.model; ipar=model.ipar; while (true) { [ok,nin,z0,exprs]=scicos_getvalue("Set switch parameters",["number of inputs","connected input"],list("vec",1,"vec",1),exprs); if (!ok) { break } if (z0>nin||z0<=0) { message("initial connected input is not a valid input port number"); } else { [model,graphics,ok]=check_io(model,graphics,-ones(nin,1),-1,[],[]); if (ok) { graphics.exprs=exprs; model.ipar=z0-1; x.graphics=graphics; x.model=model; break } } } } } /* autogenerated from "macros/Branching/FROM.sci" */ function FROM() { FROM.prototype.define = function FROM() { model=scicos_model(); model.sim="from"; model.in1=[]; model.in2=[]; model.intyp=1; model.out=-1; model.out2=-2; model.outtyp=-1; model.ipar=[]; model.opar=list("A"); model.blocktype="c"; model.dep_ut=[false,false]; exprs=["A"]; gr_i=[]; x=standard_define([2,1],model,exprs,gr_i); x.graphics.id="From"; } FROM.prototype.details = function FROM() { } FROM.prototype.get = function FROM() { } FROM.prototype.set = function FROM() { x=arg1; graphics=arg1.graphics; exprs=graphics.exprs; model=arg1.model; while (true) { [ok,tag,exprs]=scicos_getvalue("Set parameters",["Tag"],list("str",-1),exprs); if (!ok) { break } if (ok) { if (model.opar!=list(tag)) { needcompile=4; y=needcompile; } graphics.exprs=exprs; model.opar=list(tag); x.model=model; x.graphics=graphics; break } } needcompile=resume(needcompile) } } /* autogenerated from "macros/Branching/ISELECT_m.sci" */ function ISELECT_m() { ISELECT_m.prototype.define = function ISELECT_m() { z0=1; nout=2; model=scicos_model(); model.sim=list("selector_m",4); model.out=[-1,-1]; model.out2=[-2,-2]; model.outtyp=1; model.in1=-1; model.in2=-2; model.intyp=1; model.evtout=[]; model.state=[]; model.rpar=[]; model.ipar=[]; model.firing=[]; model.evtin=ones(nout,1); model.dstate=z0; model.blocktype="c"; model.dep_ut=[true,false]; exprs=[sci2exp(1),sci2exp(nout),sci2exp(z0)]; gr_i=[]; x=standard_define([3,2],model,exprs,gr_i); } ISELECT_m.prototype.details = function ISELECT_m() { } ISELECT_m.prototype.get = function ISELECT_m() { } ISELECT_m.prototype.set = function ISELECT_m() { x=arg1; graphics=arg1.graphics; exprs=graphics.exprs; model=arg1.model; while (true) { [ok,typ,nout,z0,exprs]=scicos_getvalue("Set parameters",["Datatype(1= real double 2=Complex 3=int32 ...)","number of outputs","initial connected output"],list("vec",1,"vec",1,"vec",1),exprs); if (!ok) { break } if (z0>nout||z0<=0) { message("initial connected input is not a valid input port number"); } else if (((typ<1)||(typ>8))) { message("Datatype is not supported"); ok=false; } else { it=typ; ot=typ*ones(1,nout); if (ok) { out=[-ones(nout,1),-2*ones(nout,1)]; in1=[-1,-2]; [model,graphics,ok]=set_io(model,graphics,list(in1,it),list(out,ot),ones(nout,1),[]); if (ok) { graphics.exprs=exprs; model.dstate=z0; x.graphics=graphics; x.model=model; break } } } } } } /* autogenerated from "macros/Branching/SELECT_f.sci" */ function SELECT_f() { SELECT_f.prototype.define = function SELECT_f() { z0=0; in1=[-1,-1]; nin=2; model=scicos_model(); model.sim=list("selector",2); model.in1=in1; model.out=-1; model.evtin=ones(in1); model.dstate=z0; model.blocktype="c"; model.dep_ut=[true,false]; exprs=[string(nin),string(z0+1)]; gr_i=[]; x=standard_define([2,2],model,exprs,gr_i); } SELECT_f.prototype.details = function SELECT_f() { } SELECT_f.prototype.get = function SELECT_f() { } SELECT_f.prototype.set = function SELECT_f() { x=arg1; graphics=arg1.graphics; exprs=graphics.exprs; model=arg1.model; while (true) { [ok,nin,z0,exprs]=scicos_getvalue("Set parameters",["number of inputs","initial connected input"],list("vec",1,"vec",1),exprs); if (!ok) { break } if (z0>nin||z0<=0) { message("initial connected input is not a valid input port number"); } else { [model,graphics,ok]=check_io(model,graphics,-ones(nin,1),-1,ones(nin,1),[]); if (ok) { graphics.exprs=exprs; model.dstate=z0-1; x.graphics=graphics; x.model=model; break } } } } } /* autogenerated from "macros/Branching/GOTOMO.sci" */ function GOTOMO() { GOTOMO.prototype.define = function GOTOMO() { model=scicos_model(); model.sim="gotomo"; model.in1=-1; model.in2=-2; model.intyp=[]; model.out=[]; model.out2=[]; model.outtyp=1; model.ipar=int(1); model.opar=list("A"); model.blocktype="c"; model.dep_ut=[false,false]; mo=modelica(); mo.model="gotomo"; mo.inputs="p"; exprs=["A",sci2exp(1)]; gr_i=[]; x=standard_define([2,1],model,exprs,gr_i); x.graphics.in_implicit=["I"]; } GOTOMO.prototype.details = function GOTOMO() { } GOTOMO.prototype.get = function GOTOMO() { } GOTOMO.prototype.set = function GOTOMO() { x=arg1; graphics=arg1.graphics; exprs=graphics.exprs; model=arg1.model; while (true) { [ok,tag,tagvis,exprs]=scicos_getvalue("Set parameters",["Tag","Tag Visibility(1=Local 2=scoped 3= global)"],list("str",-1,"vec",1),exprs); if (!ok) { break } tagvis=int(tagvis); if (((tagvis<1)||(tagvis>3))) { message("Tag Visibility must be between 1 and 3"); ok=false; } if (ok) { if (((model.ipar!=tagvis)||(model.opar!=list(tag)))) { needcompile=4; y=needcompile; } graphics.exprs=exprs; model.opar=list(tag); model.ipar=tagvis; x.model=model; x.graphics=graphics; arg1=x; break } } needcompile=resume(needcompile) } } /* autogenerated from "macros/Branching/DEMUX_f.sci" */ function DEMUX_f() { DEMUX_f.prototype.define = function DEMUX_f() { out=2; model=scicos_model(); model.sim=list("demux",1); model.in1=0; model.out=-transpose([1:out]); model.ipar=out; model.blocktype="c"; model.firing=[]; model.dep_ut=[true,false]; exprs=string(out); gr_i=[]; x=standard_define([.5,2],model,exprs,gr_i); } DEMUX_f.prototype.details = function DEMUX_f() { } DEMUX_f.prototype.get = function DEMUX_f() { } DEMUX_f.prototype.set = function DEMUX_f() { x=arg1; graphics=arg1.graphics; exprs=graphics.exprs; model=arg1.model; while (true) { [ok,out,exprs]=scicos_getvalue("Set DEMUX block parameters",["number of output ports or vector of sizes"],list("vec",-1),exprs); if (!ok) { break } if (size(out,"*")==1) { if (out<2||out>8) { message("Block must have at least 2 and at most 8 output ports"); ok=false; } else { [model,graphics,ok]=check_io(model,graphics,0,-transpose([1:out]),[],[]); } } else { if (size(out,"*")<2||size(out,"*")>8||or(out==0)) { message(["Block must have at least 2 and at most 8 output ports","and size 0 is not allowed"] ); ok=false; } else { if (min(out)<0) { nin=0; } else { nin=sum(out); } [model,graphics,ok]=check_io(model,graphics,nin,out.slice(),[],[]); if (ok) { out=size(out,"*"); } } } if (ok) { graphics.exprs=exprs; model.ipar=out; x.graphics=graphics; x.model=model; break } } } } /* autogenerated from "macros/Branching/SWITCH2_m.sci" */ function SWITCH2_m() { SWITCH2_m.prototype.define = function SWITCH2_m() { ipar=[0]; nzz=1; rpar=0; model=scicos_model(); model.sim=list("switch2_m",4); model.in1=[-1,1,-1]; model.in2=[-2,1,-2]; model.intyp=1; model.out=-1; model.out2=-2; model.outtyp=1; model.ipar=ipar; model.rpar=rpar; model.nzcross=nzz; model.nmode=1; model.blocktype="c"; model.dep_ut=[true,false]; exprs=[sci2exp(1),string(ipar),string(rpar),string(nzz)]; gr_i=[]; x=standard_define([2,2],model,exprs,gr_i); } SWITCH2_m.prototype.details = function SWITCH2_m() { } SWITCH2_m.prototype.get = function SWITCH2_m() { } SWITCH2_m.prototype.set = function SWITCH2_m() { x=arg1; graphics=arg1.graphics; exprs=graphics.exprs; model=arg1.model; while (true) { [ok,ot,rule,thra,nzz,exprs]=scicos_getvalue("Set parameters",["Datatype (1=real double 2=complex 3=int32 ...)","pass first input if: u2>=a (0), u2>a (1), u2~=a (2)","threshold a","use zero crossing: yes (1), no (0)"],list("vec",1,"vec",1,"vec",1,"vec",1),exprs); if (!ok) { break } rule=int(rule); if ((rule<0)) { rule=0; } if ((rule>2)) { rule=2; } graphics.exprs=exprs; model.ipar=rule; model.rpar=thra; if (nzz!=0) { model.nmode=1; model.nzcross=1; } else { model.nmode=0; model.nzcross=0; } if (((ot<1)||(ot>8))&&(ot!=-1)) { message("Datatype is not supported"); ok=false; } if (ok) { it[1-1]=ot; it[2-1]=1; it[3-1]=ot; in1=[model.in1,model.in2]; out=[model.out,model.out2]; [model,graphics,ok]=set_io(model,graphics,list(in1,it),list(out,ot),[],[]); } if (ok) { x.graphics=graphics; x.model=model; break } } } } /* autogenerated from "macros/Branching/EXTRACTOR.sci" */ function EXTRACTOR() { EXTRACTOR.prototype.define = function EXTRACTOR() { ind=1; model=scicos_model(); model.sim=list("extractor",4); model.in1=-1; model.out=1; model.blocktype="c"; model.dep_ut=[true,false]; model.ipar=ind; exprs=[sci2exp(ind)]; gr_i=[]; x=standard_define([3,2],model,exprs,gr_i); } EXTRACTOR.prototype.details = function EXTRACTOR() { } EXTRACTOR.prototype.get = function EXTRACTOR() { } EXTRACTOR.prototype.set = function EXTRACTOR() { x=arg1; graphics=arg1.graphics; exprs=graphics.exprs; model=arg1.model; while (true) { [ok,ind,exprs]=scicos_getvalue("Set block parameters",["indices to extract"],list("vec",-1),exprs); if (!ok) { break } ind=int(ind); ind=ind.slice(); [model,graphics,ok]=check_io(model,graphics,[-1],size(ind,1),[],[]); if (ok) { model.ipar=ind; graphics.exprs=exprs; x.graphics=graphics; x.model=model; break } } } } /* autogenerated from "macros/Branching/CLKGOTO.sci" */ function CLKGOTO() { CLKGOTO.prototype.define = function CLKGOTO() { model=scicos_model(); model.sim="clkgoto"; model.evtin=1; model.opar=list("A"); model.ipar=int(1); model.blocktype="d"; model.firing=-1; model.dep_ut=[false,false]; exprs=["A",sci2exp(1)]; x=standard_define([2,1],model,exprs," "); x.graphics.id="Goto"; } CLKGOTO.prototype.details = function CLKGOTO() { } CLKGOTO.prototype.get = function CLKGOTO() { } CLKGOTO.prototype.set = function CLKGOTO() { x=arg1; graphics=arg1.graphics; model=arg1.model; exprs=graphics.exprs; while (true) { [ok,tag,tagvis,exprs]=scicos_getvalue("Set block parameters",["Tag","Tag Visibility (1=Local 2=Scoped 3=Global)"],list("str",-1,"vec",1),exprs); if (!ok) { break } if (((tagvis<1)||(tagvis>3))) { message("Tag Visibility must be between 1 and 3"); ok=false; } tagvis=int(tagvis); if (ok) { if (((model.opar!=list(tag))||(model.ipar!=tagvis))) { needcompile=4; y=needcompile; } model.opar=list(tag); model.ipar=tagvis; model.evtin=1; model.firing=-1; graphics.exprs=exprs; x.graphics=graphics; x.model=model; break } } needcompile=resume(needcompile) } } /* autogenerated from "macros/Branching/MUX_f.sci" */ function MUX_f() { MUX_f.prototype.define = function MUX_f() { in1=2; model=scicos_model(); model.sim=list("mux",1); model.in1=-transpose([1:in1]); model.out=0; model.ipar=in1; model.blocktype="c"; model.dep_ut=[true,false]; exprs=string(in1); gr_i=[]; x=standard_define([0.5,2],model,exprs,gr_i); } MUX_f.prototype.details = function MUX_f() { } MUX_f.prototype.get = function MUX_f() { } MUX_f.prototype.set = function MUX_f() { x=arg1; graphics=arg1.graphics; exprs=graphics.exprs; model=arg1.model; while (true) { [ok,in1,exprs]=scicos_getvalue("Set MUX block parameters","number of input ports or vector of sizes",list("vec",-1),exprs); if (!ok) { break } if (size(in1,"*")==1) { if (in1<2||in1>8) { message("Block must have at least two input ports and at most eight"); ok=false; } else { [model,graphics,ok]=check_io(model,graphics,-transpose([1:in1]),0,[],[]); } } else { if (size(in1,"*")<2||size(in1,"*")>8||or(in1==0)) { message(["Block must have at least two input ports","and at most eight, and size 0 is not allowed. "]); ok=false; } else { if (min(in1)<0) { nout=0; } else { nout=sum(in1); } [model,graphics,ok]=check_io(model,graphics,in1.slice(),nout,[],[]); if (ok) { in1=size(in1,"*"); } } } if (ok) { graphics.exprs=exprs; model.ipar=in1; x.graphics=graphics; x.model=model; break } } } } /* autogenerated from "macros/Branching/CLKFROM.sci" */ function CLKFROM() { CLKFROM.prototype.define = function CLKFROM() { model=scicos_model(); model.sim="clkfrom"; model.evtout=1; model.opar=list("A"); model.blocktype="d"; model.firing=-1; model.dep_ut=[false,false]; exprs="A"; x=standard_define([2,1],model,exprs," "); x.graphics.id="From"; } CLKFROM.prototype.details = function CLKFROM() { } CLKFROM.prototype.get = function CLKFROM() { } CLKFROM.prototype.set = function CLKFROM() { x=arg1; graphics=arg1.graphics; model=arg1.model; exprs=graphics.exprs; while (true) { [ok,tag,exprs]=scicos_getvalue("Set block parameters","Tag",list("str",-1),exprs); if (!ok) { break } if (model.opar!=list(tag)) { needcompile=4; y=needcompile; } model.opar=list(tag); model.evtout=1; model.firing=-1; graphics.exprs=exprs; x.graphics=graphics; x.model=model; break } needcompile=resume(needcompile) } } /* autogenerated from "macros/Branching/GOTO.sci" */ function GOTO() { GOTO.prototype.define = function GOTO() { model=scicos_model(); model.sim="goto"; model.in1=-1; model.in2=-2; model.intyp=-1; model.out=[]; model.out2=[]; model.outtyp=1; model.ipar=int(1); model.opar=list("A"); model.blocktype="c"; model.dep_ut=[false,false]; exprs=["A",sci2exp(1)]; gr_i=[]; x=standard_define([2,1],model,exprs,gr_i); x.graphics.id="Goto"; } GOTO.prototype.details = function GOTO() { } GOTO.prototype.get = function GOTO() { } GOTO.prototype.set = function GOTO() { x=arg1; graphics=arg1.graphics; exprs=graphics.exprs; model=arg1.model; while (true) { [ok,tag,tagvis,exprs]=scicos_getvalue("Set parameters",["Tag","Tag Visibility(1=Local 2=scoped 3= global)"],list("str",-1,"vec",1),exprs); if (!ok) { break } tagvis=int(tagvis); if (((tagvis<1)||(tagvis>3))) { message("Tag Visibility must be between 1 and 3"); ok=false; } if (ok) { if (((model.ipar!=tagvis)||(model.opar!=list(tag)))) { needcompile=4; y=needcompile; } graphics.exprs=exprs; model.opar=list(tag); model.ipar=tagvis; x.model=model; x.graphics=graphics; arg1=x; break } } needcompile=resume(needcompile) } } /* autogenerated from "macros/Branching/SCALAR2VECTOR.sci" */ function SCALAR2VECTOR() { SCALAR2VECTOR.prototype.define = function SCALAR2VECTOR() { nout=-1; model=scicos_model(); model.sim=list("scalar2vector",4); model.out=nout; model.in1=1; model.blocktype="c"; model.dep_ut=[true,false]; exprs=[string([nout])]; gr_i=[]; x=standard_define([3,2],model,exprs,gr_i); } SCALAR2VECTOR.prototype.details = function SCALAR2VECTOR() { } SCALAR2VECTOR.prototype.get = function SCALAR2VECTOR() { } SCALAR2VECTOR.prototype.set = function SCALAR2VECTOR() { x=arg1; graphics=arg1.graphics; exprs=graphics.exprs; model=arg1.model; while (true) { [ok,nout,exprs]=scicos_getvalue("Set block parameters",["size of output (-1: if don\'t know)"],list("vec",1),exprs); if (!ok) { break } nout=int(nout); if ((nout!=-1&&(nout<=0))) { message("size of output must be -1 or >0"); ok=false; } if (ok) { [model,graphics,ok]=check_io(model,graphics,[1],nout,[],[]); } if (ok) { graphics.exprs=exprs; x.graphics=graphics; x.model=model; break } } } } /* autogenerated from "macros/Branching/SWITCH2.sci" */ function SWITCH2() { SWITCH2.prototype.define = function SWITCH2() { in1=[-1,1,-1]; ipar=[0]; nzz=1; rpar=0; model=scicos_model(); model.sim=list("switch2",4); model.in1=in1; model.out=-1; model.ipar=ipar; model.rpar=rpar; model.nzcross=nzz; model.nmode=1; model.blocktype="c"; model.dep_ut=[true,false]; exprs=[string(ipar),string(rpar),string(nzz)]; gr_i=[]; x=standard_define([2,2],model,exprs,gr_i); } SWITCH2.prototype.details = function SWITCH2() { } SWITCH2.prototype.get = function SWITCH2() { } SWITCH2.prototype.set = function SWITCH2() { x=arg1; graphics=arg1.graphics; exprs=graphics.exprs; model=arg1.model; while (true) { [ok,rule,thra,nzz,exprs]=scicos_getvalue("Set parameters",["pass first input if: u2>=a (0), u2>a (1), u2~=a (2)","threshold a","use zero crossing: yes (1), no (0)"],list("vec",1,"vec",1,"vec",1),exprs); if (!ok) { break } rule=int(rule); if ((rule<0)) { rule=0; } if ((rule>2)) { rule=2; } graphics.exprs=exprs; model.ipar=rule; model.rpar=thra; if (nzz!=0) { model.nmode=1; model.nzcross=1; } else { model.nmode=0; model.nzcross=0; } x.graphics=graphics; x.model=model; break } } } /* autogenerated from "macros/Branching/MUX.sci" */ function MUX() { MUX.prototype.define = function MUX() { in1=2; model=scicos_model(); model.sim=list("multiplex",4); model.in1=-transpose([1:in1]); model.out=0; model.ipar=in1; model.blocktype="c"; model.dep_ut=[true,false]; exprs=string(in1); gr_i=[]; x=standard_define([.5,2],model,exprs,gr_i); } MUX.prototype.details = function MUX() { } MUX.prototype.get = function MUX() { } MUX.prototype.set = function MUX() { x=arg1; graphics=arg1.graphics; exprs=graphics.exprs; model=arg1.model; while (true) { [ok,in1,exprs]=scicos_getvalue("Set MUX block parameters","number of input ports or vector of sizes",list("intvec",-1),exprs); if (!ok) { break } if (size(in1,"*")==1) { if (in1<2||in1>31) { message("Block must have at least two input ports and at most 31"); ok=false; } else { [model,graphics,ok]=check_io(model,graphics,-transpose([1:in1]),0,[],[]); } } else { if (size(in1,"*")<2||or(in1==0)||size(in1,"*")>31) { message(["Block must have at least two input ports","and at most 31. Size 0 is not allowed. "]); ok=false; } else { if (min(in1)<0) { nout=0; } else { nout=sum(in1); } [model,graphics,ok]=check_io(model,graphics,in1.slice(),nout,[],[]); if (ok) { in1=size(in1,"*"); } } } if (ok) { graphics.exprs=exprs; model.ipar=in1; x.graphics=graphics; x.model=model; break } } } } /* autogenerated from "macros/Branching/ESELECT_f.sci" */ function ESELECT_f() { ESELECT_f.prototype.define = function ESELECT_f() { out=2; model=scicos_model(); model.sim=list("eselect",-2); model.in1=1; model.in2=1; model.intyp=-1; model.evtin=1; model.evtout=ones(out,1); model.blocktype="l"; model.firing=-ones(out,1); model.dep_ut=[true,false]; model.nmode=0; model.nzcross=0; gr_i=[]; exprs=[string(out),string(1),string(model.nmode)]; x=standard_define([4,2],model,exprs,gr_i); } ESELECT_f.prototype.details = function ESELECT_f() { } ESELECT_f.prototype.get = function ESELECT_f() { } ESELECT_f.prototype.set = function ESELECT_f() { x=arg1; graphics=arg1.graphics; exprs=graphics.exprs; if (size(exprs,"*")==1) { exprs[2-1]=string(1); } if (size(exprs,"*")==2) { exprs[3-1]=string(0); } model=arg1.model; while (true) { [ok,out,inh,nmod,exprs]=scicos_getvalue("Set ESELECT block parameters",["number of output event ports","Inherit (1: no, 0: yes)","zero-crossing (0: no, 1: yes)"],list("vec",1,"vec",1,"vec",1),exprs); if (!ok) { break } if (nmod!=0) { nmod=1; } if (inh==0) { inh=[]; } else { inh=1; } out=int(out); if (out<2) { message("Block must have at least two output ports"); } else { [model,graphics,ok]=check_io(model,graphics,1,[],inh,[ones(out,1)]); if (ok) { graphics.exprs=exprs; model.evtout=ones(out,1); model.firing=-ones(out,1); x.graphics=graphics; model.nmode=nmod; model.nzcross=nmod; x.model=model; break } } } } } /* autogenerated from "macros/Branching/GotoTagVisibilityMO.sci" */ function GotoTagVisibilityMO() { GotoTagVisibilityMO.prototype.define = function GotoTagVisibilityMO() { model=scicos_model(); model.sim="gototagvisibilitymo"; model.in1=[]; model.in2=[]; model.out=[]; model.out2=[]; model.evtin=[]; model.intyp=1; model.outtyp=1; model.opar=list("A"); model.blocktype="c"; model.firing=false; model.dep_ut=[false,false]; exprs="A"; gr_i=[]; x=standard_define([2,2],model,exprs,gr_i); } GotoTagVisibilityMO.prototype.details = function GotoTagVisibilityMO() { } GotoTagVisibilityMO.prototype.get = function GotoTagVisibilityMO() { } GotoTagVisibilityMO.prototype.set = function GotoTagVisibilityMO() { x=arg1; graphics=arg1.graphics; exprs=graphics.exprs; model=arg1.model; while (true) { [ok,tag,exprs]=scicos_getvalue("Set parameters",["GotoTag"],list("str",-1),exprs); if (!ok) { break } if (ok) { if (model.opar!=list(tag)) { needcompile=4; y=needcompile; } graphics.exprs=exprs; model.opar=list(tag); x.graphics=graphics; x.model=model; break } } needcompile=resume(needcompile) } } /* autogenerated from "macros/Branching/ISELECT_f.sci" */ function ISELECT_f() { ISELECT_f.prototype.define = function ISELECT_f() { z0=0; out=[-1,-1]; nout=2; model=scicos_model(); model.sim=list("selector",2); model.in1=-1; model.out=out; model.evtin=ones(out); model.dstate=z0; model.blocktype="c"; model.dep_ut=[true,false]; exprs=[string(nout),string(z0+1)]; gr_i=[]; x=standard_define([2,2],model,exprs,gr_i); } ISELECT_f.prototype.details = function ISELECT_f() { } ISELECT_f.prototype.get = function ISELECT_f() { } ISELECT_f.prototype.set = function ISELECT_f() { x=arg1; graphics=arg1.graphics; exprs=graphics.exprs; model=arg1.model; while (true) { [ok,nout,z0,exprs]=scicos_getvalue("Set parameters",["number of outputs","initial connected output"],list("vec",1,"vec",1),exprs); if (!ok) { break } if (z0>nout||z0<=0) { message("initial connected input is not a valid input port number"); } else { [model,graphics,ok]=check_io(model,graphics,-1,-ones(nout,1),ones(nout,1),[]); if (ok) { graphics.exprs=exprs; model.dstate=z0-1; x.graphics=graphics; x.model=model; break } } } } } /* autogenerated from "macros/Branching/SELECT_m.sci" */ function SELECT_m() { SELECT_m.prototype.define = function SELECT_m() { z0=1; nin=2; model=scicos_model(); model.sim=list("selector_m",4); model.in1=[-1,-1]; model.in2=[-2,-2]; model.intyp=1; model.out=-1; model.out2=-2; model.outtyp=1; model.evtout=[]; model.state=[]; model.rpar=[]; model.ipar=[]; model.firing=[]; model.evtin=ones(nin,1); model.dstate=z0; model.blocktype="c"; model.dep_ut=[true,false]; exprs=[sci2exp(1),sci2exp(nin),sci2exp(z0)]; gr_i=[]; x=standard_define([3,2],model,exprs,gr_i); } SELECT_m.prototype.details = function SELECT_m() { } SELECT_m.prototype.get = function SELECT_m() { } SELECT_m.prototype.set = function SELECT_m() { x=arg1; graphics=arg1.graphics; exprs=graphics.exprs; model=arg1.model; while (true) { [ok,typ,nin,z0,exprs]=scicos_getvalue("Set parameters",["Datatype(1= real double 2=Complex 3=int32 ..)","number of inputs","initial connected input"],list("vec",1,"vec",1,"vec",1),exprs); if (!ok) { break } if (z0>nin||z0<=0) { message("initial connected input is not a valid input port number"); } else if (((typ<1)||(typ>8))&&(typ!=-1)) { message("Datatype is not supported"); ok=false; } else { it=typ*ones(1,nin); ot=typ; if (ok) { in1=[-ones(nin,1),-2*ones(nin,1)]; out=[-1,-2]; [model,graphics,ok]=set_io(model,graphics,list(in1,it),list(out,ot),ones(nin,1),[]); if (ok) { graphics.exprs=exprs; model.dstate=z0; x.graphics=graphics; x.model=model; break } } } } } } /* autogenerated from "macros/Branching/CLKGotoTagVisibility.sci" */ function CLKGotoTagVisibility() { CLKGotoTagVisibility.prototype.define = function CLKGotoTagVisibility() { model=scicos_model(); model.sim="clkgototagvisibility"; model.in1=[]; model.in2=[]; model.out=[]; model.out2=[]; model.evtin=[]; model.intyp=1; model.outtyp=1; model.opar=list("A"); model.blocktype="c"; model.firing=false; model.dep_ut=[false,false]; exprs="A"; gr_i=[]; x=standard_define([2,2],model,exprs,gr_i); } CLKGotoTagVisibility.prototype.details = function CLKGotoTagVisibility() { } CLKGotoTagVisibility.prototype.get = function CLKGotoTagVisibility() { } CLKGotoTagVisibility.prototype.set = function CLKGotoTagVisibility() { x=arg1; graphics=arg1.graphics; exprs=graphics.exprs; model=arg1.model; while (true) { [ok,tag,exprs]=scicos_getvalue("Set parameters",["GotoTag"],list("str",-1),exprs); if (!ok) { break } if (ok) { if (model.opar!=list(tag)) { needcompile=4; y=needcompile; } graphics.exprs=exprs; model.opar=list(tag); x.graphics=graphics; x.model=model; break } } needcompile=resume(needcompile) } } /* autogenerated from "macros/Branching/M_SWITCH.sci" */ function M_SWITCH() { M_SWITCH.prototype.define = function M_SWITCH() { in1=[1,-1,-1]; ipar=[1,3]; nin=2; model=scicos_model(); model.sim=list("mswitch",4); model.in1=in1; model.out=-1; model.ipar=ipar; model.blocktype="c"; model.dep_ut=[true,false]; exprs=[string(nin),string(ipar)]; gr_i=[]; x=standard_define([2.5,2],model,exprs,gr_i); } M_SWITCH.prototype.details = function M_SWITCH() { } M_SWITCH.prototype.get = function M_SWITCH() { } M_SWITCH.prototype.set = function M_SWITCH() { x=arg1; graphics=arg1.graphics; exprs=graphics.exprs; model=arg1.model; while (true) { [ok,nin,base,rule,exprs]=scicos_getvalue("Set parameters",["number of inputs","zero base indexing (0), otherwise 1","rounding rule: int (0), round (1), ceil (2), floor (3)"],list("vec",1,"vec",1,"vec",1),exprs); if (!ok) { break } nin=int(nin); base=int(base); if (nin<1) { message("Number of inputs must be >=1 "); } else if (!((base==1)||(base==0))) { message("base indexing must be 1 or 0"); } else if (!((rule==1)||(rule==0)||(rule==2)||(rule==3))) { message("incorrect rounding rule"); } else { if (nin==1) { in1=[1,1,-1,1]; out=[1,1]; } else { in1=[1,-ones(nin,1)]; in2=[1,-2*ones(nin,1)]; in1=[in1,in2]; out=[-1,-2]; } it=[-1,-2*ones(nin,1)]; ot=-2; [model,graphics,ok]=set_io(model,graphics,list(in1,it),list(out,ot),[],[]); if (ok) { graphics.exprs=exprs; model.ipar=[base,rule]; x.graphics=graphics; x.model=model; break } } } } } /* autogenerated from "macros/Branching/FROMMO.sci" */ function FROMMO() { FROMMO.prototype.define = function FROMMO() { model=scicos_model(); model.sim="frommo"; model.in1=[]; model.in2=[]; model.intyp=1; model.out=-1; model.out2=-2; model.outtyp=-1; model.ipar=[]; model.opar=list("A"); model.blocktype="c"; model.dep_ut=[false,false]; mo=modelica(); mo.model="frommo"; mo.outputs="n"; exprs=["A"]; gr_i=[]; x=standard_define([2,1],model,exprs,gr_i); x.graphics.out_implicit=["I"]; } FROMMO.prototype.details = function FROMMO() { } FROMMO.prototype.get = function FROMMO() { } FROMMO.prototype.set = function FROMMO() { x=arg1; graphics=arg1.graphics; exprs=graphics.exprs; model=arg1.model; while (true) { [ok,tag,exprs]=scicos_getvalue("Set parameters",["Tag"],list("str",-1),exprs); if (!ok) { break } if (ok) { if (model.opar!=list(tag)) { needcompile=4; y=needcompile; } graphics.exprs=exprs; model.opar=list(tag); x.model=model; x.graphics=graphics; break } } needcompile=resume(needcompile) } } /* autogenerated from "macros/Branching/GotoTagVisibility.sci" */ function GotoTagVisibility() { GotoTagVisibility.prototype.define = function GotoTagVisibility() { model=scicos_model(); model.sim="gototagvisibility"; model.in1=[]; model.in2=[]; model.out=[]; model.out2=[]; model.evtin=[]; model.intyp=1; model.outtyp=1; model.opar=list("A"); model.blocktype="c"; model.firing=false; model.dep_ut=[false,false]; exprs="A"; gr_i=[]; x=standard_define([2,2],model,exprs,gr_i); } GotoTagVisibility.prototype.details = function GotoTagVisibility() { } GotoTagVisibility.prototype.get = function GotoTagVisibility() { } GotoTagVisibility.prototype.set = function GotoTagVisibility() { x=arg1; graphics=arg1.graphics; exprs=graphics.exprs; model=arg1.model; while (true) { [ok,tag,exprs]=scicos_getvalue("Set parameters",["GotoTag"],list("str",-1),exprs); if (!ok) { break } if (ok) { if (model.opar!=list(tag)) { needcompile=4; y=needcompile; } graphics.exprs=exprs; model.opar=list(tag); x.graphics=graphics; x.model=model; break } } needcompile=resume(needcompile) } } /* autogenerated from "macros/Branching/DEMUX.sci" */ function DEMUX() { DEMUX.prototype.define = function DEMUX() { out=2; model=scicos_model(); model.sim=list("multiplex",4); model.in1=0; model.out=-transpose([1:out]); model.ipar=out; model.blocktype="c"; model.firing=[]; model.dep_ut=[true,false]; exprs=string(out); gr_i=[]; x=standard_define([.5,2],model,exprs,gr_i); } DEMUX.prototype.details = function DEMUX() { } DEMUX.prototype.get = function DEMUX() { } DEMUX.prototype.set = function DEMUX() { x=arg1; graphics=arg1.graphics; exprs=graphics.exprs; model=arg1.model; while (true) { [ok,out,exprs]=scicos_getvalue("Set DEMUX block parameters",["number of output ports or vector of sizes"],list("intvec",-1),exprs); if (!ok) { break } if (size(out,"*")==1) { if (out<2||out>31) { message("Block must have at least 2 and at most 31 output ports"); ok=false; } else { [model,graphics,ok]=check_io(model,graphics,0,-transpose([1:out]),[],[]); } } else { if (size(out,"*")<2||or(out==0)||size(out,"*")>31) { message(["Block must have at least 2 and at most 31 output ports","size 0 is not allowed"]); ok=false; } else { if (min(out)<0) { nin=0; } else { nin=sum(out); } [model,graphics,ok]=check_io(model,graphics,nin,out.slice(),[],[]); if (ok) { out=size(out,"*"); } } } if (ok) { graphics.exprs=exprs; model.ipar=out; x.graphics=graphics; x.model=model; break } } } } /* autogenerated from "macros/Branching/RELAY_f.sci" */ function RELAY_f() { RELAY_f.prototype.define = function RELAY_f() { i0=0; in1=[-1,-1]; nin=2; model=scicos_model(); model.sim=list("relay",2); model.in1=in1; model.out=-1; model.evtin=ones(in1); model.dstate=i0; model.blocktype="c"; model.firing=[]; model.dep_ut=[true,true]; exprs=[string(nin),string(i0+1)]; gr_i=[]; x=standard_define([2,2],model,exprs,gr_i); } RELAY_f.prototype.details = function RELAY_f() { } RELAY_f.prototype.get = function RELAY_f() { } RELAY_f.prototype.set = function RELAY_f() { x=arg1; graphics=arg1.graphics; exprs=graphics.exprs; model=arg1.model; ipar=model.ipar; while (true) { [ok,nin,z0,exprs]=scicos_getvalue("Set parameters",["number of inputs","initial connected input"],list("vec",1,"vec",1),exprs); if (!ok) { break } if (z0>nin||z0<=0) { message("initial connected input is not a valid input port number"); } else { [model,graphics,ok]=check_io(model,graphics,-ones(nin,1),-1,ones(nin,1),[]); if (ok) { graphics.exprs=exprs; model.dstate=z0-1; x.graphics=graphics; x.model=model; break } } } } } /* autogenerated from "macros/Branching/NRMSOM_f.sci" */ function NRMSOM_f() { NRMSOM_f.prototype.define = function NRMSOM_f() { in1=[-1,-1]; nin=2; model=scicos_model(); model.sim="junk"; model.in1=in1; model.out=-1; model.blocktype="c"; model.dep_ut=[true,false]; exprs=[string(nin)]; gr_i=[]; x=standard_define([.2,2],model,exprs,gr_i); } NRMSOM_f.prototype.details = function NRMSOM_f() { } NRMSOM_f.prototype.get = function NRMSOM_f() { } NRMSOM_f.prototype.set = function NRMSOM_f() { x=arg1; graphics=arg1.graphics; exprs=graphics.exprs; model=arg1.model; while (true) { [ok,nin,exprs]=scicos_getvalue("Set parameters",["number of inputs"],list("vec",1),exprs); if (!ok) { break } [model,graphics,ok]=check_io(model,graphics,-ones(nin,1),-1,[],[]); if (ok) { graphics.exprs=exprs; x.graphics=graphics; x.model=model; break } } } } /* autogenerated from "macros/Sources/INIMPL_f.sci" */ function INIMPL_f() { INIMPL_f.prototype.define = function INIMPL_f() { model=scicos_model(); model.sim="inimpl"; model.out=[-1]; model.out2=[1]; model.ipar=[1]; model.dep_ut=[false,false]; model.blocktype="c"; mo=modelica(); mo.model="PORT"; mo.outputs="n"; model.equations=mo; prt=1; exprs="1"; gr_i=[]; x=standard_define([1,1],model,exprs,gr_i); x.graphics.out_implicit=["I"]; } INIMPL_f.prototype.details = function INIMPL_f() { } INIMPL_f.prototype.get = function INIMPL_f() { } INIMPL_f.prototype.set = function INIMPL_f() { x=arg1; graphics=arg1.graphics; exprs=graphics.exprs; model=arg1.model; if (size(exprs,"*")==2) { exprs=exprs[1-1]; } while (true) { [ok,prt,exprs]=scicos_getvalue([msprintf(gettext("Set %s block parameters"),"INIMPL_f")," ",gettext("Implicit input port")," "],"Port Number",list("vec",1),exprs); if (!ok) { break } prt=int(prt); if (prt<=0) { block_parameter_error(msprintf(gettext("Wrong value for \'Port Number\' parameter: %d."),prt),gettext("Strictly positive integer expected.")); } else { if (model.ipar!=prt) { needcompile=4; y=needcompile; } model.ipar=prt; graphics.exprs=exprs; x.graphics=graphics; x.model=model; break } } } } /* autogenerated from "macros/Sources/RAND_m.sci" */ function RAND_m() { RAND_m.prototype.define = function RAND_m() { a=0; b=1; dt=0; flag=0; function_name="rndblk_m"; funtyp=4; model=scicos_model(); model.sim=list(function_name,funtyp); model.in1=[]; model.in2=[]; model.intyp=[]; model.out=1; model.out2=1; model.outtyp=1; model.evtin=1; model.evtout=[]; model.state=[]; model.dstate=[int(rand()*(10^7-1)),0*a.slice()]; model.rpar=[a.slice(),b.slice()]; model.ipar=flag; model.blocktype="d"; model.firing=[]; model.dep_ut=[false,false]; exprs=[sci2exp(1),string(flag),sci2exp([a]),sci2exp([b]),sci2exp([model.dstate(1),int(rand()*(10^7-1))])]; gr_i=[]; x=standard_define([3,2],model,exprs,gr_i); } RAND_m.prototype.details = function RAND_m() { } RAND_m.prototype.get = function RAND_m() { } RAND_m.prototype.set = function RAND_m() { x=arg1; graphics=arg1.graphics; exprs=graphics.exprs; model=arg1.model; if (size(exprs,"*")==14) { exprs[9-1]=[]; } while (true) { [ok,typ,flag,a,b,seed_c,exprs]=scicos_getvalue(["Set Random generator block parameters","flag = 0 : Uniform distribution A is min and A+B max","flag = 1 : Normal distribution A is mean and B deviation"," ","A and B must be matrix with equal sizes"],["Datatype(1=real double 2=complex)","flag","A","B","SEED"],list("vec",1,"vec",1,"mat",[-1,-2],"mat","[-1 -2]","mat",[1,2]),exprs); if (!ok) { break } if (flag!=0&&flag!=1) { message("flag must be equal to 1 or 0"); } else { out=size(a); if (typ==1) { function_name="rndblk_m"; model.rpar=[real(a.slice()),real(b.slice())]; model.dstate=[seed_c(1),0*real(a.slice())]; ot=1; } else if (typ==2) { function_name="rndblkz_m"; ot=2; model.rpar=[real(a.slice()),imag(a.slice()),real(b.slice()),imag(b.slice())]; model.dstate=[seed_c.slice(),0*[real(a.slice()),imag(a.slice())]]; } else { message("Datatype is not supported"); ok=false; } if (ok) { [model,graphics,ok]=set_io(model,graphics,list([],[]),list(out,ot),1,[]); if (ok) { model.sim=list(function_name,4); graphics.exprs=exprs; model.ipar=flag; x.graphics=graphics; x.model=model; break } } } } } } /* autogenerated from "macros/Sources/GENSQR_f.sci" */ function GENSQR_f() { GENSQR_f.prototype.define = function GENSQR_f() { Amplitude=1; model=scicos_model(); model.sim="gensqr"; model.out=1; model.out2=1; model.outtyp=1; model.evtin=1; model.dstate=Amplitude; model.blocktype="d"; model.dep_ut=[false,false]; exprs=string(Amplitude); gr_i=[]; x=standard_define([3,2],model,exprs,gr_i); } GENSQR_f.prototype.details = function GENSQR_f() { } GENSQR_f.prototype.get = function GENSQR_f() { } GENSQR_f.prototype.set = function GENSQR_f() { x=arg1; graphics=arg1.graphics; exprs=graphics.exprs; model=arg1.model; if (size(exprs,"*")==2) { exprs=exprs[2-1]; } while (true) { [ok,Amplitude,exprs]=scicos_getvalue(["Set Square generator block parameters"],["Amplitude"],list("vec",1),exprs); if (!ok) { break } graphics.exprs=exprs; model.dstate=Amplitude; model.out2=1; model.outtyp=1; x.graphics=graphics; x.model=model; break } } } /* autogenerated from "macros/Sources/IN_f.sci" */ function IN_f() { IN_f.prototype.define = function IN_f() { prt=1; model=scicos_model(); model.sim="input"; model.out=-1; model.out2=-2; model.outtyp=-1; model.ipar=prt; model.blocktype="c"; model.dep_ut=[false,false]; exprs=sci2exp(prt); gr_i=[]; x=standard_define([1,1],model,exprs,gr_i); } IN_f.prototype.details = function IN_f() { } IN_f.prototype.get = function IN_f() { } IN_f.prototype.set = function IN_f() { x=arg1; graphics=arg1.graphics; model=arg1.model; exprs=graphics.exprs; if (size(exprs,"*")==2) { exprs=exprs[1-1]; } if (size(exprs,"*")==1) { exprs=[exprs[1-1],"[-1 -2]","-1"]; } while (true) { [ok,prt,otsz,ot,exprs]=getvalue(_("Set Input block parameters"),[_("Port number"),_("Outport size ([-1 -2] for inherit)"),_("Outport Type (-1 for inherit)")],list("vec",1,"vec",-1,"vec",1),exprs); if (!ok) { break } prt=int(prt); if (prt<=0) { message(_("Port number must be a positive integer")); } else if (!isequal(size(otsz,"*"),2)) { message(_("Outport Size must be a 2 elements vector")); } else if (((ot<1||ot>9)&&(ot!=-1))) { message(_("Outport type must be a number between 1 and 9, or -1 for inheritance.")); } else { if (model.ipar!=prt) { needcompile=4; y=needcompile; } model.ipar=prt; model.firing=[]; model.out=otsz(1); model.out2=otsz(2); model.outtyp=ot; graphics.exprs=exprs; x.graphics=graphics; x.model=model; break } } } } /* autogenerated from "macros/Sources/TKSCALE.sci" */ function TKSCALE() { TKSCALE.prototype.define = function TKSCALE() { a=-10; b=10; f=1; model=scicos_model(); model.sim=list("tkscaleblk",5); model.out=1; model.evtin=1; model.rpar=[a,b,f]; model.blocktype="d"; model.dep_ut=[false,false]; exprs=[sci2exp(a),sci2exp(b),sci2exp(f)]; gr_i=[]; x=standard_define([3,2],model,exprs,gr_i); } TKSCALE.prototype.details = function TKSCALE() { } TKSCALE.prototype.get = function TKSCALE() { } TKSCALE.prototype.set = function TKSCALE() { x=arg1; graphics=arg1.graphics; exprs=graphics.exprs; model=arg1.model; [ok,a,b,f,exprs]=scicos_getvalue("Set scale block parameters",["Min value","Max value","Normalization"],list("vec",1,"vec",1,"vec",1),exprs); if (ok) { graphics.exprs=exprs; model.rpar=[a,b,f]; x.graphics=graphics; x.model=model; } } } /* autogenerated from "macros/Sources/STEP.sci" */ function STEP() { STEP.prototype.define = function STEP() { rpar=[0,1]; model=scicos_model(); model.sim=list("step_func",4); model.evtin=1; model.evtout=1; model.out=1; model.out2=1; model.outtyp=1; model.firing=1; model.rpar=rpar; model.blocktype="c"; model.dep_ut=[false,false]; exprs=[string(1),string(rpar)]; gr_i=[]; x=standard_define([2,2],model,exprs,gr_i); } STEP.prototype.details = function STEP() { } STEP.prototype.get = function STEP() { } STEP.prototype.set = function STEP() { x=arg1; graphics=arg1.graphics; exprs=graphics.exprs; model=arg1.model; while (true) { [ok,temps,in1,fi,exprs]=scicos_getvalue([msprintf(gettext("Set %s block parameters"),"STEP_FUNCTION")," ",gettext("Step Function")," "],[gettext("Step Time"),gettext("Initial Value"),gettext("Final Value")],list("vec",1,"vec",-1,"vec",-1),exprs); if (!ok) { break } in1=in1.slice(); fi=fi.slice(); if (size(in1,"*")!=size(fi,"*")) { if (size(in1,"*")==1) { in1=in1*ones(fi); } else if (size(fi,"*")==1) { fi=fi*ones(in1); } else { block_parameter_error(msprintf(gettext("\'Initial Value\' and \'Final Value\': incompatible sizes: %d and %d."),size(in1,"*"),size(fi,"*")),gettext("Same sizes expected.")); ok=false; } } if (ok) { model.out2=1; model.outtyp=1; [model,graphics,ok]=check_io(model,graphics,[],size(fi,"*"),1,1); } if (ok) { model.firing=temps; if (temps==0) { rpar=[fi,fi]; } else { rpar=[in1,fi]; } model.rpar=rpar; graphics.exprs=exprs; x.graphics=graphics; x.model=model; break } } } } /* autogenerated from "macros/Sources/CURV_f.sci" */ function CURV_f() { CURV_f.prototype.define = function CURV_f() { xx=[0,1,2]; yy=[-5,5,0]; rect=[0,-5,2,5]; axisdata=[2,10,2,10]; ipar=[size(xx,1),axisdata.slice()]; rpar=[xx,yy,rect.slice()]; model=scicos_model(); model.sim="intplt"; model.in1=[]; model.out=1; model.rpar=[xx,yy,rect.slice()]; model.ipar=[size(xx,1),axisdata.slice()]; model.blocktype="c"; model.dep_ut=[false,true]; gr_i=[]; x=standard_define([2,2],model,[],gr_i); } CURV_f.prototype.details = function CURV_f() { } CURV_f.prototype.get = function CURV_f() { } CURV_f.prototype.set = function CURV_f() { x=arg1; model=arg1.model; graphics=arg1.graphics; rpar=model.rpar; ipar=model.ipar; n=ipar(1); xx=rpar.slice(1-1,n); yy=rpar.slice(n+1-1,2*n); gc=list(rpar.slice(2*n+1-1,2*n+4),ipar.slice(2-1,5)); while (true) { [ln,fun]=where() if (!or(fun=="do_eval")) { [xx,yy,ok,gc]=edit_curv(xx,yy,"axy",[" "," "," "],gc); } else { ok=true; } if (!ok) { break } n=size(xx,"*"); if (or(xx.slice(2-1,n)-xx.slice(1-1,n-1)<0)) { message("You have not defined a function"); ok=false; } if (ok) { model.sim="intplt"; model.firing=[]; rect=gc(1); model.rpar=[xx.slice(),yy.slice(),rect.slice()]; axisdata=gc(2); model.ipar=[size(xx,"*"),axisdata.slice()]; x.graphics=graphics; x.model=model; break } } } } /* autogenerated from "macros/Sources/RAMP.sci" */ function RAMP() { RAMP.prototype.define = function RAMP() { slope=0; iout=0; stt=0; rpar=[slope,stt,iout]; model=scicos_model(); model.sim=list("ramp",4); model.in1=[]; model.out=1; model.rpar=rpar; model.blocktype="c"; model.nmode=1; model.nzcross=1; model.dep_ut=[false,true]; exprs=[string(rpar)]; gr_i=[]; x=standard_define([2,2],model,exprs,gr_i); } RAMP.prototype.details = function RAMP() { } RAMP.prototype.get = function RAMP() { } RAMP.prototype.set = function RAMP() { x=arg1; graphics=arg1.graphics; exprs=graphics.exprs; model=arg1.model; while (true) { [ok,slope,stt,iout,exprs]=scicos_getvalue([msprintf(gettext("Set %s block parameters"),"RAMP")," ",gettext("Ramp function")," "],[gettext("Slope"),gettext("Start Time"),gettext("Initial Value")],list("vec",1,"vec",1,"vec",1),exprs); if (!ok) { break } if (stt<0) { block_parameter_error(msprintf(gettext("Wrong value for \'Start Time\' parameter: %e."),stt),gettext("Null or positive integer expected.")); } else { model.rpar=[slope,stt,iout]; graphics.exprs=exprs; x.graphics=graphics; x.model=model; break } } } } /* autogenerated from "macros/Sources/CLOCK_c.sci" */ function CLOCK_c() { CLOCK_c.prototype.define = function CLOCK_c() { evtdly=EVTDLY_c("define"); evtdly.graphics.orig=[320,232]; evtdly.graphics.sz=[40,40]; evtdly.graphics.flip=true; evtdly.graphics.exprs=["0.1","0.1"]; evtdly.graphics.pein=6; evtdly.graphics.peout=3; evtdly.model.rpar=[0.1,0.1]; evtdly.model.firing=0.1; output_port=CLKOUT_f("define"); output_port.graphics.orig=[399,162]; output_port.graphics.sz=[20,20]; output_port.graphics.flip=true; output_port.graphics.exprs="1"; output_port.graphics.pein=5; output_port.model.ipar=1; split=CLKSPLIT_f("define"); split.graphics.orig=[380.71066,172]; split.graphics.pein=3; split.graphics.peout=[5,6]; gr_i=[]; diagram=scicos_diagram(); diagram.objs[1-1]=output_port; diagram.objs[2-1]=evtdly; diagram.objs[3-1]=scicos_link(xx=[340,340,380.71],yy=[226.29,172,172],ct=[5,-1],from=[2,1],to=[4,1]); diagram.objs[4-1]=split; diagram.objs[5-1]=scicos_link(xx=[380.71,399],yy=[172,172],ct=[5,-1],from=[4,1],to=[1,1]); diagram.objs[6-1]=scicos_link(xx=[380.71,380.71,340,340],yy=[172,302,302,277.71],ct=[5,-1],from=[4,2],to=[2,1]); x=scicos_block(); x.gui="CLOCK_c"; x.graphics.sz=[2,2]; x.graphics.gr_i=gr_i; x.graphics.peout=0; x.model.sim="csuper"; x.model.evtout=1; x.model.blocktype="h"; x.model.firing=false; x.model.dep_ut=[false,false]; x.model.rpar=diagram; } CLOCK_c.prototype.details = function CLOCK_c() { } CLOCK_c.prototype.get = function CLOCK_c() { } CLOCK_c.prototype.set = function CLOCK_c() { for (i=1;i<=length(arg1.model.rpar.objs);i+=1) { o=arg1.model.rpar.objs(i); if (typeof(o)=="Block"&&o.gui=="EVTDLY_c") { path=i; break } } newpar=list(); xx=arg1.model.rpar.objs(path); exprs=xx.graphics.exprs; model=xx.model; t0_old=model.firing; dt_old=model.rpar(1); model_n=model; while (true) { [ok,dt,t0,exprs0]=scicos_getvalue([msprintf(gettext("Set %s block parameters"),"CLOCK_c")," ",gettext("Event clock generator")," ",gettext("  Do not start if \'Initialisation Time\' is negative")," "],[gettext("Period"),gettext("Initialisation Time")],list("vec",1,"vec",1),exprs); if (!ok) { break } if (dt<=0) { block_parameter_error(msprintf(gettext("Wrong values for \'%s\' parameter: %5.1e."),gettext("Period"),dt),gettext("Strictly positive number expected.")); ok=false; } if (ok) { xx.graphics.exprs=exprs0; model.rpar=[dt,t0]; model.firing=t0; xx.model=model; arg1.model.rpar.objs[path-1]=xx; break } } if (!and([t0_old,dt_old]==[t0,dt])) { newpar[size(newpar)+1-1]=path; } if (t0_old!=t0) { needcompile=2; } else { needcompile=0; } x=arg1; y=needcompile; typ=newpar; } } /* autogenerated from "macros/Sources/CONST_f.sci" */ function CONST_f() { CONST_f.prototype.define = function CONST_f() { C=1; model=scicos_model(); model.sim=list("cstblk",1); model.in1=[]; model.out=1; model.rpar=C; model.blocktype="d"; model.dep_ut=[false,false]; exprs=strcat(sci2exp(C)); gr_i=[]; x=standard_define([2,2],model,exprs,gr_i); } CONST_f.prototype.details = function CONST_f() { } CONST_f.prototype.get = function CONST_f() { } CONST_f.prototype.set = function CONST_f() { x=arg1; graphics=arg1.graphics; exprs=graphics.exprs; model=arg1.model; while (true) { [ok,C,exprs]=scicos_getvalue(["Set Contant Block"],"Constant",list("vec",-1),exprs); if (!ok) { break } nout=size(C,"*"); if (nout==0) { message("C must have at least one element"); } else { model.rpar=C.slice(); model.out=nout; graphics.exprs=exprs; x.graphics=graphics; x.model=model; break } } } } /* autogenerated from "macros/Sources/Ground_g.sci" */ function Ground_g() { Ground_g.prototype.define = function Ground_g() { C=[0]; model=scicos_model(); model.sim=list("cstblk4_m",4); model.in1=[]; model.out=1; model.in2=[]; model.out2=1; model.outtyp=-1; model.rpar=[]; model.opar=list(C); model.blocktype="d"; model.dep_ut=[false,false]; exprs=[]; gr_i=[]; x=standard_define([2,2],model,exprs,gr_i); } Ground_g.prototype.details = function Ground_g() { } Ground_g.prototype.get = function Ground_g() { } Ground_g.prototype.set = function Ground_g() { x=arg1; } } /* autogenerated from "macros/Sources/Counter.sci" */ function Counter() { Counter.prototype.define = function Counter() { minim=0; maxim=2; rule=1; model=scicos_model(); model.sim=list("counter",4); model.evtin=1; model.out=1; model.out2=1; model.dstate=0; model.ipar=[rule,maxim,minim]; model.blocktype="c"; model.dep_ut=[false,false]; exprs=[string(minim),string(maxim),string(rule)]; gr_i=[]; x=standard_define([3,2],model,exprs,gr_i); } Counter.prototype.details = function Counter() { } Counter.prototype.get = function Counter() { } Counter.prototype.set = function Counter() { x=arg1; graphics=arg1.graphics; exprs=graphics.exprs; model=arg1.model; while (true) { [ok,minim,maxim,rule,exprs]=scicos_getvalue([msprintf(gettext("Set %s block parameters"),"Counter")," ",gettext("Integer counter generator")," "],[gettext("Minimum"),gettext("Maximum"),gettext("Rule (1:Increment, 2:Decrement)")],list("vec",1,"vec",1,"vec",1),exprs); if (!ok) { break } maxim=int(maxim); minim=int(minim); if (maximfrequ) { message("The |Offset| must be less than the Frequency"); ok=false; } if (ok) { if (or(model.rpar.slice()!=[frequ,offset])) { needcompile=4; y=needcompile; } model.rpar=[frequ,offset]; model.evtout=1; model.firing=-1; graphics.exprs=exprs; x.graphics=graphics; x.model=model; break } } needcompile=resume(needcompile) } } /* autogenerated from "macros/Sources/READC_f.sci" */ function READC_f() { READC_f.prototype.define = function READC_f() { frmt="d "; fname="foo"; lunit=0; N=20; M=1; rpar=[]; tmask=0; swap=0; offset=1; outmask=1; ievt=0; nout=size(outmask,"*"); ipar=[length(fname),_str2code(frmt),ievt,N,M,swap,offset,_str2code(fname),tmask,outmask]; model=scicos_model(); model.sim=list("readc",2); model.out=nout; model.evtin=1; model.evtout=[]; model.dstate=[1,1,lunit,zeros(N*M,1)]; model.ipar=[length(fname),_str2code(frmt),ievt,N,M,swap,offset,_str2code(fname),tmask,outmask]; model.blocktype="d"; model.firing=-1; model.dep_ut=[false,false]; exprs=["[]",sci2exp(outmask),fname,frmt,string(M),string(N),string(offset),string(swap)]; gr_i=[]; x=standard_define([4,2],model,exprs,gr_i); } READC_f.prototype.details = function READC_f() { } READC_f.prototype.get = function READC_f() { } READC_f.prototype.set = function READC_f() { x=arg1; model=x.model; graphics=arg1.graphics; exprs=graphics.exprs; out=model.out; dstate=model.dstate; ipar=model.ipar; imask=9+ipar(1); tmask=ipar(imask); lunit=dstate(3); fname=exprs[3-1]; frmt=exprs[4-1]; while (true) { [ok,tmask1,outmask,fname1,frmt1,M,N,offset,swap,exprs]=scicos_getvalue([msprintf(gettext("Set %s block parameters"),"READC_f")," ",gettext("Read from C binary file")],[gettext("Time Record Selection"),gettext("Outputs Record Selection"),gettext("Input File Name"),gettext("Input Format"),gettext("Record Size"),gettext("Buffer Size"),gettext("Initial Record Index"),gettext("Swap Mode (0:No, 1:Yes)")],list("vec",-1,"vec",-1,"str",1,"str",1,"vec",1,"vec",1,"vec",1,"vec",1),exprs); if (!ok) { break } fname1=pathconvert(stripblanks(fname1),false,true); frmt1=stripblanks(frmt1); fmts=["s","l","d","f","c","us","ul","uc","ull","uls","ubl","ubs","dl","fl","ll","sl","db","fb","lb","sb"]; nout=size(outmask,"*"); if (prod(size(tmask1))>1) { block_parameter_error(msprintf(gettext("Wrong value for \'%s\' parameter."),gettext("Time Record Selection")),gettext("Must be a scalar or an empty matrix.")); } else if (and(frmt1!=fmts)) { block_parameter_error(msprintf(gettext("Wrong value for \'%s\' parameter: %s."),gettext("Input Format"),frmt1),gettext("Valid formats are: "+strcat(fmts,", "))); } else if (alreadyran&&fname1!=fname) { block_parameter_error(msprintf(gettext("You cannot modify \'%s\' when running"),gettext("Input File Name")),gettext("End current simulation first.")); } else if (N!=ipar(6)&&alreadyran) { block_parameter_error(msprintf(gettext("You cannot modify \'%s\' when running."),gettext("Buffer Size")),gettext("End current simulation first")); } else if (alreadyran&&size(tmask1)!=size(tmask)) { block_parameter_error(msprintf(gettext("You cannot modify \'%s\' when running."),gettext("Time Record Selection")),gettext("End current simulation first.")); } else if (fname1=="") { block_parameter_error(msprintf(gettext("Wrong value for \'%s\' parameter."),gettext("Input File Name")),gettext("You must provide a file name.")); } else if (M<1) { block_parameter_error(msprintf(gettext("Wrong value for \'%s\' parameter: %d."),gettext("Record Size"),M),gettext("Strictly positive integer expected.")); } else if (tmask1!=[]&&(tmask1<1||tmask1>M)) { block_parameter_error(msprintf(gettext("Wrong value for \'%s\' parameter: %d."),gettext("Time Record Selection"),tmask1),msprintf(gettext("Must be in the interval %s."),gettext("[1, Record Size = ")+string(M)+"]")); } else if (nout==0) { block_parameter_error(msprintf(gettext("Wrong value for \'%s\' parameter: %d."),gettext("Outputs Record Selection"),nout),gettext("Strictly positive integer expected.")); } else if (nout>M) { block_parameter_error(msprintf(gettext("Wrong value for \'%s\' parameter: %d."),gettext("Outputs Record Selection"),nout),msprintf(gettext("Must be in the interval %s."),gettext("[1, Record Size = ")+string(M)+"]")); } else if (max(outmask)>M||min(outmask)<1) { block_parameter_error(msprintf(gettext("Wrong value for indexes in \'%s\' parameter: %s."),gettext("Outputs Record Selection"),strcat(string(outmask.slice())," ")),msprintf(gettext("Must be in the interval %s."),gettext("[1, Record Size = ")+string(M)+"]")); } else if (N<1) { block_parameter_error(msprintf(gettext("Wrong value for \'%s\' parameter: %d."),gettext("Buffer Size"),N),gettext("Strictly positive integer expected.")); } else if (swap!=0&&swap!=1) { block_parameter_error(msprintf(gettext("Wrong value for \'%s\' parameter: %d."),gettext("Swap Mode"),swap),msprintf(gettext("Must be in the interval %s."),"[0, 1]")); } else if (offset<1) { block_parameter_error(msprintf(gettext("Wrong value for \'%s\' parameter: %d."),gettext("Initial Record Index"),offset),gettext("Strictly positive integer expected.")); } else { if (tmask1==[]) { ievt=0; tmask1=0; outpt=[]; } else { ievt=1; outpt=1; } out=size(outmask,"*"); [model,graphics,ok]=check_io(model,graphics,[],out,1,outpt); frmt1=part(frmt1,1,3); if (ok) { if (ievt==0) { model.firing=-1; } else { model.firing=0; } ipar=[length(fname1),_str2code(frmt1),ievt,N,M,swap,offset,_str2code(fname1),tmask1,outmask.slice()]; if (prod(size(dstate))!=(N*M)+3) { dstate=[-1,-1,lunit,zeros(N*M,1)]; } model.dstate=dstate; model.ipar=ipar; graphics.exprs=exprs; x.graphics=graphics; x.model=model; break } } } } } /* autogenerated from "macros/Sources/CLOCK_f.sci" */ function CLOCK_f() { CLOCK_f.prototype.define = function CLOCK_f() { evtdly=EVTDLY_f("define"); evtdly.graphics.orig=[320,232]; evtdly.graphics.sz=[40,40]; evtdly.graphics.flip=true; evtdly.graphics.exprs=["0.1","0.1"]; evtdly.graphics.pein=6; evtdly.graphics.peout=3; evtdly.model.rpar=0.1; evtdly.model.firing=0.1; output_port=CLKOUT_f("define"); output_port.graphics.orig=[399,162]; output_port.graphics.sz=[20,20]; output_port.graphics.flip=true; output_port.graphics.exprs="1"; output_port.graphics.pein=5; output_port.model.ipar=1; split=CLKSPLIT_f("define"); split.graphics.orig=[380.71066,172]; split.graphics.pein=3; split.graphics.peout=[5,6]; gr_i=[]; diagram=scicos_diagram(); diagram.objs[1-1]=output_port; diagram.objs[2-1]=evtdly; diagram.objs[3-1]=scicos_link(xx=[340,340,380.71],yy=[226.29,172,172],ct=[5,-1],from=[2,1],to=[4,1]); diagram.objs[4-1]=split; diagram.objs[5-1]=scicos_link(xx=[380.71,399],yy=[172,172],ct=[5,-1],from=[4,1],to=[1,1]); diagram.objs[6-1]=scicos_link(xx=[380.71,380.71,340,340],yy=[172,302,302,277.71],ct=[5,-1],from=[4,2],to=[2,1]); x=scicos_block(); x.gui="CLOCK_f"; x.graphics.sz=[2,2]; x.graphics.gr_i=gr_i; x.graphics.peout=0; x.model.sim="csuper"; x.model.evtout=1; x.model.blocktype="h"; x.model.firing=false; x.model.dep_ut=[false,false]; x.model.rpar=diagram; } CLOCK_f.prototype.details = function CLOCK_f() { } CLOCK_f.prototype.get = function CLOCK_f() { } CLOCK_f.prototype.set = function CLOCK_f() { for (i=1;i<=length(arg1.model.rpar.objs);i+=1) { o=arg1.model.rpar.objs(i); if (typeof(o)=="Block"&&o.gui=="EVTDLY_f") { path=i; break } } newpar=list(); xx=arg1.model.rpar.objs(path); exprs=xx.graphics.exprs; model=xx.model; t0_old=model.firing; dt_old=model.rpar; model_n=model; while (true) { [ok,dt,t0,exprs0]=scicos_getvalue("Set Clock block parameters",["Period","Init time"],list("vec",1,"vec",1),exprs); if (!ok) { break } if (dt<=0) { message("period must be positive"); ok=false; } if (ok) { xx.graphics.exprs=exprs0; model.rpar=dt; model.firing=t0; xx.model=model; arg1.model.rpar.objs[path-1]=xx; break } } if (!and([t0_old,dt_old]==[t0,dt])||!and(exprs0==exprs)) { newpar[size(newpar)+1-1]=path; } if (t0_old!=t0) { needcompile=2; } else { needcompile=0; } x=arg1; y=needcompile; typ=newpar; } } /* autogenerated from "macros/Sources/CONST.sci" */ function CONST() { CONST.prototype.define = function CONST() { C=1; model=scicos_model(); model.sim=list("cstblk4",4); model.in1=[]; model.out=1; model.rpar=C; model.blocktype="d"; model.dep_ut=[false,false]; exprs=strcat(sci2exp(C)); gr_i=[]; x=standard_define([2,2],model,exprs,gr_i); } CONST.prototype.details = function CONST() { } CONST.prototype.get = function CONST() { } CONST.prototype.set = function CONST() { x=arg1; graphics=arg1.graphics; exprs=graphics.exprs; model=arg1.model; while (true) { [ok,C,exprs]=scicos_getvalue(["Set Contant Block"],"Constant",list("vec",-1),exprs); if (!ok) { break } sz=size(C); nout=size(C,"*"); if (nout==0) { message("C must have at least one element"); } else if (and(sz>1)) { message("C matrix is not supported, use CONST_m instead"); } else { model.rpar=C.slice(); model.out=nout; graphics.exprs=exprs; x.graphics=graphics; x.model=model; break } } } } /* autogenerated from "macros/Sources/Modulo_Count.sci" */ function Modulo_Count() { Modulo_Count.prototype.define = function Modulo_Count() { ini_c=0; base=3; model=scicos_model(); model.sim=list("modulo_count",4); model.evtin=1; model.out=1; model.dstate=ini_c; model.ipar=base; model.blocktype="c"; model.dep_ut=[false,false]; exprs=[string(ini_c),string(base)]; gr_i=[]; x=standard_define([3,2],model,exprs,gr_i); } Modulo_Count.prototype.details = function Modulo_Count() { } Modulo_Count.prototype.get = function Modulo_Count() { } Modulo_Count.prototype.set = function Modulo_Count() { x=arg1; graphics=arg1.graphics; exprs=graphics.exprs; model=arg1.model; while (true) { [ok,ini_c,base,exprs]=scicos_getvalue([msprintf(gettext("Set %s block parameters"),"Modulo_Count")," ",gettext("Modulo counter (0 to N counter)")," "],[gettext("Initial State (zero or positive number)"),gettext("Upper Limit (positive number)")],list("vec",1,"vec",1),exprs); ini_c=int(ini_c); base=int(base); if (!ok) { break } if (ini_c<0) { block_parameter_error(msprintf(gettext("Wrong value for \'Initial State\' parameter: %d."),ini_c),gettext("Null or positive integer expected.")); } else if (base<=0) { block_parameter_error(msprintf(gettext("Wrong values for \'Upper Limit\' parameter: %d."),base),gettext("Strictly positive integer expected.")); } else { graphics.exprs=exprs; model.ipar=base; model.dstate=ini_c; x.graphics=graphics; x.model=model; break } } } } /* autogenerated from "macros/Sources/CONST_m.sci" */ function CONST_m() { CONST_m.prototype.define = function CONST_m() { C=[1]; model=scicos_model(); model.sim=list("cstblk4",4); model.in1=[]; model.out=size(C,1); model.in2=[]; model.out2=size(C,2); model.rpar=C; model.opar=list(); model.blocktype="d"; model.dep_ut=[false,false]; exprs=sci2exp(C); gr_i=[]; x=standard_define([2,2],model,exprs,gr_i); } CONST_m.prototype.details = function CONST_m() { } CONST_m.prototype.get = function CONST_m() { } CONST_m.prototype.set = function CONST_m() { x=arg1; graphics=arg1.graphics; exprs=graphics.exprs; model=arg1.model; while (true) { [ok,C,exprs]=scicos_getvalue([msprintf(gettext("Set %s block parameters"),"CONST_m")," ",gettext("Constant value generator")," "],gettext("Constant Value"),list("vec",-1),exprs); if (!ok) { break } nout=size(C); if (find(nout==0)!=[]) { block_parameter_error(msprintf(gettext("Wrong size for \'%s\' parameter"),gettext("Constant Value")),gettext("Constant value must have at least one element.")); } else { model.sim=list("cstblk4_m",4); model.opar=list(C); if ((type(C)==1)) { if (isreal(C)) { ot=1; } else { ot=2; } } else if ((typeof(C)=="int32")) { ot=3; } else if ((typeof(C)=="int16")) { ot=4; } else if ((typeof(C)=="int8")) { ot=5; } else if ((typeof(C)=="uint32")) { ot=6; } else if ((typeof(C)=="uint16")) { ot=7; } else if ((typeof(C)=="uint8")) { ot=8; } else { block_parameter_error(msprintf(gettext("Wrong type for \'%s\' parameter"),gettext("Constant Value")),gettext("Value type must be a numeric type (double, complex, int, int8, ...).")); ok=false; } if (ok) { model.rpar=[]; [model,graphics,ok]=set_io(model,graphics,list(),list(nout,ot),[],[]); graphics.exprs=exprs; x.graphics=graphics; x.model=model; break } } } } } /* autogenerated from "macros/Sources/CLKINV_f.sci" */ function CLKINV_f() { CLKINV_f.prototype.define = function CLKINV_f() { prt=1; model=scicos_model(); model.sim="input"; model.evtout=1; model.ipar=prt; model.blocktype="d"; model.firing=-1; model.dep_ut=[false,false]; exprs=string(prt); gr_i=[]; x=standard_define([1,1],model,exprs,gr_i); } CLKINV_f.prototype.details = function CLKINV_f() { } CLKINV_f.prototype.get = function CLKINV_f() { } CLKINV_f.prototype.set = function CLKINV_f() { x=arg1; graphics=arg1.graphics; model=arg1.model; exprs=graphics.exprs; exprs=exprs[1-1]; while (true) { [ok,prt,exprs]=scicos_getvalue([msprintf(gettext("Set %s block parameters"),"CLKINV_f")," ",gettext("Event input port")," "],"Port Number",list("vec",1),exprs); prt=int(prt); if (!ok) { break } if (prt<=0) { block_parameter_error(msprintf(gettext("Wrong values for \'Port Number\' parameter: %d."),prt),gettext("Strictly positive integer expected.")); } else { model.ipar=prt; model.evtout=1; model.firing=-1; graphics.exprs=exprs; x.graphics=graphics; x.model=model; break } } } } /* autogenerated from "macros/Sources/FROMWSB.sci" */ function FROMWSB() { FROMWSB.prototype.define = function FROMWSB() { scs_m_1=scicos_diagram(version="scicos4.2",props=scicos_params(wpar=[-159.096,811.104,-121.216,617.984,1323,1008,331,284,630,480,1426,231,1.4],Title="FROMWSB",tol=[0.0001,0.000001,1.000e-10,100001,0,0],tf=100000,context=" ",void1=[],options=tlist(["scsopt","3D","Background","Link","ID","Cmap"],list(true,33),[8,1],[1,5],list([5,1],[4,1]),[0.8,0.8,0.8]),void2=[],void3=[],doc=list())); scs_m_1.objs[1-1]=scicos_block(gui="FROMWS_c",graphics=scicos_graphics(orig=[260.37067,261.584],sz=[70,40],flip=true,theta=0,exprs=["V","1","1","0"],pin=[],pout=4,pein=2,peout=2,gr_i=[],id="",in_implicit=[],out_implicit="E"),model=scicos_model(sim=list("fromws_c",4),in1=[],in2=[],intyp=1,out=-1,out2=-2,outtyp=-1,evtin=1,evtout=1,state=[],dstate=[],odstate=list(),rpar=[],ipar=[1,-31,1,1,0],opar=list(),blocktype="d",firing=0,dep_ut=[false,true],label="",nzcross=0,nmode=0,equations=list()),doc=list()); scs_m_1.objs[2-1]=scicos_link(xx=[295.37067,295.37067,233.23733,233.23733,295.37067,295.37067],yy=[255.86971,223.45067,223.45067,337.85067,337.85067,307.29829],id="drawlink",thick=[0,0],ct=[5,-1],from=[1,1,0],to=[1,1,1]); scs_m_1.objs[3-1]=scicos_block(gui="OUT_f",graphics=scicos_graphics(orig=[358.9421,271.584],sz=[20,20],flip=true,theta=0,exprs="1",pin=4,pout=[],pein=[],peout=[],gr_i=[],id="",in_implicit="E",out_implicit=[]),model=scicos_model(sim="output",in1=-1,in2=-2,intyp=-1,out=[],out2=[],outtyp=1,evtin=[],evtout=[],state=[],dstate=[],odstate=list(),rpar=[],ipar=1,opar=list(),blocktype="c",firing=[],dep_ut=[false,false],label="",nzcross=0,nmode=0,equations=list()),doc=list()); scs_m_1.objs[4-1]=scicos_link(xx=[338.9421,358.9421],yy=[281.584,281.584],id="drawlink",thick=[0,0],ct=[1,1],from=[1,1,0],to=[3,1,1]); model=scicos_model(sim="csuper",in1=[],in2=[],intyp=1,out=-1,out2=-2,outtyp=1,evtin=[],evtout=[],state=[],dstate=[],odstate=list(),rpar=scs_m_1,ipar=[],opar=list(),blocktype="h",firing=[],dep_ut=[false,false],label="",nzcross=0,nmode=0,equations=list()); gr_i=[]; x=standard_define([5,2],model,[],gr_i); } FROMWSB.prototype.details = function FROMWSB() { } FROMWSB.prototype.get = function FROMWSB() { } FROMWSB.prototype.set = function FROMWSB() { for (i=1;i<=length(arg1.model.rpar.objs);i+=1) { o=arg1.model.rpar.objs(i); if (typeof(o)=="Block"&&o.gui=="FROMWS_c") { ppath=list(i); break } } newpar=list(); y=0; for (path in ppath) { np=size(path,"*"); spath=list(); for (k=1;k<=np;k+=1) { spath[$+1-1]="model"; spath[$+1-1]="rpar"; spath[$+1-1]="objs"; spath[$+1-1]=path(k); } xx=arg1(spath); execstr("xxn="+xx.gui+"(\'set\',xx)"); if (!isequalbitwise(xxn,xx)) { model=xx.model; model_n=xxn.model; if (!is_modelica_block(xx)) { modified=or(model.sim!=model_n.sim)||!isequal(model.state,model_n.state)||!isequal(model.dstate,model_n.dstate)||!isequal(model.odstate,model_n.odstate)||!isequal(model.rpar,model_n.rpar)||!isequal(model.ipar,model_n.ipar)||!isequal(model.opar,model_n.opar)||!isequal(model.label,model_n.label); if (or(model.in1!=model_n.in1)||or(model.out!=model_n.out)||or(model.in2!=model_n.in2)||or(model.out2!=model_n.out2)||or(model.outtyp!=model_n.outtyp)||or(model.intyp!=model_n.intyp)) { needcompile=1; } if (or(model.firing!=model_n.firing)) { needcompile=2; } if ((size(model.in1,"*")!=size(model_n.in1,"*"))||(size(model.out,"*")!=size(model_n.out,"*"))) { needcompile=4; } if (model.sim=="input"||model.sim=="output") { if (model.ipar!=model_n.ipar) { needcompile=4; } } if (or(model.blocktype!=model_n.blocktype)||or(model.dep_ut!=model_n.dep_ut)) { needcompile=4; } if ((model.nzcross!=model_n.nzcross)||(model.nmode!=model_n.nmode)) { needcompile=4; } if (prod(size(model_n.sim))>1) { if (model_n.sim(2)>1000) { if (model.sim(1)!=model_n.sim(1)) { needcompile=4; } } } } else { modified=or(model_n!=model); eq=model.equations; eqn=model_n.equations; if (or(eq.model!=eqn.model)||or(eq.inputs!=eqn.inputs)||or(eq.outputs!=eqn.outputs)) { needcompile=4; } } arg1[spath-1]=xxn; newpar[size(newpar)+1-1]=path; y=max(y,needcompile); } } x=arg1; typ=newpar; } } /* autogenerated from "macros/Sources/GENSIN_f.sci" */ function GENSIN_f() { GENSIN_f.prototype.define = function GENSIN_f() { rpar=[1,1,0]; model=scicos_model(); model.sim="gensin"; model.in1=[]; model.out=1; model.out2=1; model.outtyp=1; model.rpar=[1,1,0]; model.blocktype="c"; model.dep_ut=[false,true]; exprs=[string(rpar(1)),string(rpar(2)),string(rpar(3))]; gr_i=[]; x=standard_define([3,2],model,exprs,gr_i); } GENSIN_f.prototype.details = function GENSIN_f() { } GENSIN_f.prototype.get = function GENSIN_f() { } GENSIN_f.prototype.set = function GENSIN_f() { x=arg1; graphics=arg1.graphics; exprs=graphics.exprs; model=arg1.model; while (true) { [ok,M,F,P,exprs]=scicos_getvalue([msprintf(gettext("Set %s block parameters"),"GENSIN_f")," ",gettext("Sine wave generator")," "],[gettext("Magnitude"),gettext("Frequency (rad/s)"),gettext("Phase (rad)")],list("vec",1,"vec",1,"vec",1),exprs); if (!ok) { break } if (F<0) { block_parameter_error(msprintf(gettext("Wrong value for \'Frequency\' parameter: %e."),F),gettext("Strictly positive integer expected.")); ok=false; } if (ok) { [model,graphics,ok]=check_io(model,graphics,[],1,[],[]); model.rpar=[M,F,P]; model.out2=1; model.outtyp=1; graphics.exprs=exprs; x.graphics=graphics; x.model=model; break } } } } /* autogenerated from "macros/MatrixOp/MATMUL.sci" */ function MATMUL() { MATMUL.prototype.define = function MATMUL() { model=scicos_model(); model.sim=list("matmul_m",4); model.in1=[-1,-2]; model.in2=[-2,-3]; model.out=-1; model.out2=-3; model.dep_ut=[true,false]; model.ipar=1; label=[sci2exp(model.ipar)]; gr_i=[]; x=standard_define([3,2],model,label,gr_i); } MATMUL.prototype.details = function MATMUL() { } MATMUL.prototype.get = function MATMUL() { } MATMUL.prototype.set = function MATMUL() { x=arg1; graphics=x.graphics; label=graphics.exprs; model=x.model; if (model.ipar==[]) { model.ipar=1; } if (size(label,"*")==1) { label[2-1]=sci2exp(1); } if (size(label,"*")==2) { label[3-1]=sci2exp(1); } while (true) { [ok,dtype,rule,np,exprs]=scicos_getvalue(["Set MATMUL parameter","For the Multipication rule:"," 1= Matrix by Matrix"," 2= Matrix by Matrix element wise "," 3= Matrix by Scalar","In the third case the second input will be the scalar"],["Datatype(1=real double 2=Complex 3=int32 ...)","Multiplication rule","Do on Overflow(0=Nothing 1=Saturate 2=Error)"],list("vec",1,"vec",1,"vec",1),label); if (!ok) { break } rule=int(rule); if ((dtype<1||dtype>8)) { message("type is not supported"); ok=false; } if ((rule<1||rule>3)) { message("Multiplication rule must be only 1,2 or 3"); ok=false; } if ((dtype==1||dtype==2)) { np=0; } TABMIN=[0,0,-(2^31),-(2^15),-(2^7),0,0,0]; TABMAX=[0,0,(2^31)-1,(2^15)-1,(2^7)-1,(2^32)-1,(2^16)-1,(2^8)-1]; if (rule==2) { if (np==0) { model.sim=list("matmul2_m",4); } else if (np==1) { model.sim=list("matmul2_s",4); } else { model.sim=list("matmul2_e",4); } } else if (rule==3) { if (np==0) { model.sim=list("matbyscal",4); } else if (np==1) { model.sim=list("matbyscal_s",4); } else { model.sim=list("matbyscal_e",4); } } else { if ((dtype==1)) { model.sim=list("matmul_m",4); } else if ((dtype==2)) { model.sim=list("matzmul_m",4); } else if (dtype==3) { if (np==0) { model.sim=list("matmul_i32n",4); } else if (np==1) { model.sim=list("matmul_i32s",4); } else { model.sim=list("matmul_i32e",4); } } else if (dtype==4) { if (np==0) { model.sim=list("matmul_i16n",4); } else if (np==1) { model.sim=list("matmul_i16s",4); } else { model.sim=list("matmul_i16e",4); } } else if (dtype==5) { if (np==0) { model.sim=list("matmul_i8n",4); } else if (np==1) { model.sim=list("matmul_i8s",4); } else { model.sim=list("matmul_i8e",4); } } else if (dtype==6) { if (np==0) { model.sim=list("matmul_ui32n",4); } else if (np==1) { model.sim=list("matmul_ui32s",4); } else { model.sim=list("matmul_ui32e",4); } } else if (dtype==7) { if (np==0) { model.sim=list("matmul_ui16n",4); } else if (np==1) { model.sim=list("matmul_ui16s",4); } else { model.sim=list("matmul_ui16e",4); } } else if (dtype==8) { if (np==0) { model.sim=list("matmul_ui8n",4); } else if (np==1) { model.sim=list("matmul_ui8s",4); } else { model.sim=list("matmul_ui8e",4); } } } kmin=TABMIN(dtype); kmax=TABMAX(dtype); it=dtype*ones(1,2); ot=dtype; if (rule==1) { in1=[-1,-2,-2,-3]; out=[-1,-3]; } else if (rule==2) { in1=[-1,-2,-1,-2]; out=[-1,-2]; } else { in1=[-1,-2,1,1]; out=[-1,-2]; } [model,graphics,ok]=set_io(model,graphics,list(in1,it),list(out,ot),[],[]); if (ok) { label=exprs; model.ipar=rule; model.rpar=[kmin,kmax]; graphics.exprs=label; x.graphics=graphics; x.model=model; arg1=x; break } } } } /* autogenerated from "macros/MatrixOp/MATMAGPHI.sci" */ function MATMAGPHI() { MATMAGPHI.prototype.define = function MATMAGPHI() { model=scicos_model(); function_name="matz_abs"; funtyp=4; model.sim=list(function_name,funtyp); model.in1=-1; model.in2=-2; model.intyp=2; model.out=[-1,-1]; model.out2=[-2,-2]; model.outtyp=[1,1]; model.evtin=[]; model.evtout=[]; model.state=[]; model.dstate=[]; model.rpar=[]; model.ipar=[]; model.blocktype="c"; model.firing=[]; model.dep_ut=[true,false]; label=[sci2exp(1)]; gr_i=[]; x=standard_define([3,2],model,label,gr_i); } MATMAGPHI.prototype.details = function MATMAGPHI() { } MATMAGPHI.prototype.get = function MATMAGPHI() { } MATMAGPHI.prototype.set = function MATMAGPHI() { x=arg1; model=arg1.model; graphics=arg1.graphics; label=graphics.exprs; if (size(label,"*")==14) { label[9-1]=[]; } while (true) { [ok,decomptyp,lab]=scicos_getvalue("Set MATMAGPHI block parameters",["decomposition type (1=Complex2MAG&PHI 2=MAG&PHI2Complex)"],list("vec",1),label); if (!ok) { break } label=lab; if ((decomptyp==1)) { function_name="matz_abs"; in1=[-1,-2]; it=2; out=[-1,-2,-1,-2]; ot=[1,1]; } else if ((decomptyp==2)) { function_name="matz_absc"; in1=[-1,-2,-1,-2]; it=[1,1]; out=[-1,-2]; ot=2; } else { message("decomposition type is not supported"); ok=false; } funtyp=4; if (ok) { [model,graphics,ok]=set_io(model,graphics,list(in1,it),list(out,ot),[],[]); } if (ok) { model.sim=list(function_name,funtyp); arg1.model=model; graphics.exprs=label; arg1.graphics=graphics; x=arg1; break } } } } /* autogenerated from "macros/MatrixOp/SQRT.sci" */ function SQRT() { SQRT.prototype.define = function SQRT() { model=scicos_model(); model.sim=list("mat_sqrt",4); model.in1=-1; model.in2=-2; model.intyp=1; model.outtyp=1; model.out=-1; model.out2=-2; model.dep_ut=[true,false]; label=[sci2exp(1)]; gr_i=[]; x=standard_define([2,2],model,label,gr_i); } SQRT.prototype.details = function SQRT() { } SQRT.prototype.get = function SQRT() { } SQRT.prototype.set = function SQRT() { x=arg1; graphics=arg1.graphics; label=graphics.exprs; model=arg1.model; while (true) { [ok,typ,exprs]=scicos_getvalue("Set SQRT Block",["Datatype(1=real double 2=Complex)"],list("vec",1),label); if (!ok) { break } if ((typ==1)) { function_name="mat_sqrt"; } else if ((typ==2)) { function_name="matz_sqrt"; } else { message("type is not supported"); ok=false; } it=typ; ot=typ; in1=[model.in1,model.in2]; out=[model.out,model.out2]; funtyp=4; if (ok) { label=exprs; [model,graphics,ok]=set_io(model,graphics,list(in1,it),list(out,ot),[],[]); model.sim=list(function_name,funtyp); graphics.exprs=label; arg1.graphics=graphics; arg1.model=model; x=arg1; break } } } } /* autogenerated from "macros/MatrixOp/MATEXPM.sci" */ function MATEXPM() { MATEXPM.prototype.define = function MATEXPM() { model=scicos_model(); function_name="mat_expm"; funtyp=4; model.sim=list(function_name,funtyp); model.in1=-1; model.in2=-1; model.intyp=1; model.out=-1; model.out2=-1; model.outtyp=1; model.evtin=[]; model.evtout=[]; model.state=[]; model.dstate=[]; model.rpar=[]; model.ipar=[]; model.blocktype="c"; model.firing=[]; model.dep_ut=[true,false]; label=[sci2exp(1)]; gr_i=[]; x=standard_define([2,2],model,label,gr_i); } MATEXPM.prototype.details = function MATEXPM() { } MATEXPM.prototype.get = function MATEXPM() { } MATEXPM.prototype.set = function MATEXPM() { x=arg1; graphics=arg1.graphics; label=graphics.exprs; model=arg1.model; if (size(label,"*")==14) { label[9-1]=[]; } while (true) { [ok,typ,exprs]=scicos_getvalue("Set EXPM Block",["Datatype(1=real double 2=Complex)"],list("vec",1),label); if (!ok) { break } if ((typ==1)) { function_name="mat_expm"; ot=1; it=1; } else if ((typ==2)) { function_name="matz_expm"; ot=2; it=2; } else { message("Datatype is not supported"); ok=false; } in1=[model.in1,model.in2]; out=[model.out,model.out2]; funtyp=4; if (ok) { label=exprs; [model,graphics,ok]=set_io(model,graphics,list(in1,it),list(out,ot),[],[]); model.sim=list(function_name,funtyp); graphics.exprs=label; arg1.graphics=graphics; arg1.model=model; x=arg1; break } } } } /* autogenerated from "macros/MatrixOp/MATPINV.sci" */ function MATPINV() { MATPINV.prototype.define = function MATPINV() { model=scicos_model(); function_name="mat_pinv"; funtyp=4; model.sim=list(function_name,funtyp); model.in1=-1; model.in2=-2; model.intyp=1; model.out=-2; model.out2=-1; model.outtyp=1; model.evtin=[]; model.evtout=[]; model.state=[]; model.dstate=[]; model.rpar=[]; model.ipar=[]; model.blocktype="c"; model.firing=[]; model.dep_ut=[true,false]; label=[sci2exp(1)]; gr_i=[]; x=standard_define([2,2],model,label,gr_i); } MATPINV.prototype.details = function MATPINV() { } MATPINV.prototype.get = function MATPINV() { } MATPINV.prototype.set = function MATPINV() { x=arg1; graphics=arg1.graphics; label=graphics.exprs; model=arg1.model; if (size(label,"*")==14) { label[9-1]=[]; } while (true) { [ok,typ,exprs]=scicos_getvalue("Set MATPINV Block",["Datatype(1=real double 2=Complex)"],list("vec",1),label); if (!ok) { break } if ((typ==1)) { function_name="mat_pinv"; ot=1; it=1; } else if ((typ==2)) { function_name="matz_pinv"; ot=2; it=2; } else { message("Datatype is not supported"); ok=false; } in1=[model.in1,model.in2]; out=[model.out,model.out2]; funtyp=4; if (ok) { label=exprs; [model,graphics,ok]=set_io(model,graphics,list(in1,it),list(out,ot),[],[]); model.sim=list(function_name,funtyp); graphics.exprs=label; arg1.graphics=graphics; arg1.model=model; x=arg1; break } } } } /* autogenerated from "macros/MatrixOp/MATDIAG.sci" */ function MATDIAG() { MATDIAG.prototype.define = function MATDIAG() { model=scicos_model(); function_name="mat_diag"; funtyp=4; model.sim=list(function_name,funtyp); model.in1=-1; model.in2=1; model.intyp=1; model.out=-1; model.out2=-1; model.outtyp=1; model.evtin=[]; model.evtout=[]; model.state=[]; model.dstate=[]; model.rpar=[]; model.ipar=[]; model.blocktype="c"; model.firing=[]; model.dep_ut=[true,false]; label=[sci2exp(1)]; gr_i=[]; x=standard_define([2,2],model,label,gr_i); } MATDIAG.prototype.details = function MATDIAG() { } MATDIAG.prototype.get = function MATDIAG() { } MATDIAG.prototype.set = function MATDIAG() { x=arg1; graphics=arg1.graphics; label=graphics.exprs; model=arg1.model; if (size(label,"*")==14) { label[9-1]=[]; } while (true) { [ok,typ,exprs]=scicos_getvalue("Set MATDIAG Block",["Datatype (1=real double 2=Complex)"],list("vec",1),label); if (!ok) { break } if ((typ==1)) { function_name="mat_diag"; ot=1; it=1; } else if ((typ==2)) { function_name="matz_diag"; ot=2; it=2; } else { message("Datatype is not supported"); ok=false; } in1=[model.in1,model.in2]; out=[model.out,model.out2]; funtyp=4; if (ok) { label=exprs; [model,graphics,ok]=set_io(model,graphics,list(in1,it),list(out,ot),[],[]); model.sim=list(function_name,funtyp); graphics.exprs=label; arg1.graphics=graphics; arg1.model=model; x=arg1; break } } } } /* autogenerated from "macros/MatrixOp/MATZCONJ.sci" */ function MATZCONJ() { MATZCONJ.prototype.define = function MATZCONJ() { model=scicos_model(); function_name="matz_conj"; funtyp=4; model.sim=list(function_name,funtyp); model.in1=-1; model.in2=-2; model.intyp=2; model.out=-1; model.out2=-2; model.outtyp=2; model.evtin=[]; model.evtout=[]; model.state=[]; model.dstate=[]; model.rpar=[]; model.ipar=[]; model.blocktype="c"; model.firing=[]; model.dep_ut=[true,false]; label=[]; gr_i=[]; x=standard_define([2,2],model,label,gr_i); } MATZCONJ.prototype.details = function MATZCONJ() { } MATZCONJ.prototype.get = function MATZCONJ() { } MATZCONJ.prototype.set = function MATZCONJ() { x=arg1; } } /* autogenerated from "macros/MatrixOp/MATINV.sci" */ function MATINV() { MATINV.prototype.define = function MATINV() { model=scicos_model(); function_name="mat_inv"; funtyp=4; model.sim=list(function_name,funtyp); model.in1=-1; model.in2=-1; model.intyp=1; model.out=-1; model.out2=-1; model.outtyp=1; model.evtin=[]; model.evtout=[]; model.state=[]; model.dstate=[]; model.rpar=[]; model.ipar=[]; model.blocktype="c"; model.firing=[]; model.dep_ut=[true,false]; label=[sci2exp(1)]; gr_i=[]; x=standard_define([2,2],model,label,gr_i); } MATINV.prototype.details = function MATINV() { } MATINV.prototype.get = function MATINV() { } MATINV.prototype.set = function MATINV() { x=arg1; graphics=arg1.graphics; label=graphics.exprs; model=arg1.model; if (size(label,"*")==14) { label[9-1]=[]; } while (true) { [ok,typ,exprs]=scicos_getvalue("Set MATINV Block",["Datatype(1=real double 2=Complex)"],list("vec",1),label); if (!ok) { break } if ((typ==1)) { function_name="mat_inv"; ot=1; it=1; } else if ((typ==2)) { function_name="matz_inv"; ot=2; it=2; } else { message("Datatype is not supported"); ok=false; } in1=[model.in1,model.in2]; out=[model.out,model.out2]; funtyp=4; if (ok) { label=exprs; [model,graphics,ok]=set_io(model,graphics,list(in1,it),list(out,ot),[],[]); model.sim=list(function_name,funtyp); graphics.exprs=label; arg1.graphics=graphics; arg1.model=model; x=arg1; break } } } } /* autogenerated from "macros/MatrixOp/MATLU.sci" */ function MATLU() { MATLU.prototype.define = function MATLU() { model=scicos_model(); function_name="mat_lu"; funtyp=4; model.sim=list(function_name,funtyp); model.in1=-1; model.in2=-1; model.intyp=1; model.out=[-1,-1]; model.out2=[-1,-1]; model.outtyp=[1,1]; model.evtin=[]; model.evtout=[]; model.state=[]; model.dstate=[]; model.rpar=[]; model.ipar=[]; model.blocktype="c"; model.firing=[]; model.dep_ut=[true,false]; label=sci2exp(1); gr_i=[]; x=standard_define([2,2],model,label,gr_i); } MATLU.prototype.details = function MATLU() { } MATLU.prototype.get = function MATLU() { } MATLU.prototype.set = function MATLU() { x=arg1; model=arg1.model; graphics=arg1.graphics; label=graphics.exprs; if (size(label,"*")==14) { label[9-1]=[]; } while (true) { [ok,typ,lab]=scicos_getvalue("Set MATLU block parameters",["Datatype(1=real double 2=Complex)"],list("vec",1),label); if (!ok) { break } if ((typ==1)) { function_name="mat_lu"; ot=[1,1]; it=1; } else if ((typ==2)) { function_name="matz_lu"; ot=[2,2]; it=2; } else { message("Datatype is not supported"); ok=false; } if (ok) { [model,graphics,ok]=set_io(model,graphics,list([model.in1,model.in2],it),list([model.out,model.out2],ot),[],[]); } if (ok) { funtyp=4; model.sim=list(function_name,funtyp); graphics.exprs=lab; x.graphics=graphics; x.model=model; break } } } } /* autogenerated from "macros/MatrixOp/MATSUM.sci" */ function MATSUM() { MATSUM.prototype.define = function MATSUM() { model=scicos_model(); function_name="mat_sum"; funtyp=4; model.sim=list(function_name,funtyp); model.in1=-1; model.in2=-2; model.intyp=1; model.out=1; model.out2=1; model.outtyp=1; model.evtin=[]; model.evtout=[]; model.state=[]; model.dstate=[]; model.rpar=[]; model.ipar=[]; model.blocktype="c"; model.firing=[]; model.dep_ut=[true,false]; label=[sci2exp(1),sci2exp(0)]; gr_i=[]; x=standard_define([3,2],model,label,gr_i); } MATSUM.prototype.details = function MATSUM() { } MATSUM.prototype.get = function MATSUM() { } MATSUM.prototype.set = function MATSUM() { x=arg1; model=arg1.model; graphics=arg1.graphics; label=graphics.exprs; if (size(label,"*")==14) { label[9-1]=[]; } while (true) { [ok,typ,decomptyp,lab]=scicos_getvalue("Set MATSUM block parameters",["Datatype(1=real double 2=Complex)","Sum along (0=all 1=lines 2=Columns)"],list("vec",1,"vec",1),label); if (!ok) { break } label=lab; if ((typ==1)) { if ((decomptyp==0)) { function_name="mat_sum"; out=[1,1]; } else if ((decomptyp==2)) { function_name="mat_suml"; out=[-1,1]; } else if ((decomptyp==1)) { function_name="mat_sumc"; out=[1,-2]; } else { message("decomposition type is not supported"); ok=false; } it=1; ot=1; } else if ((typ==2)) { if ((decomptyp==0)) { function_name="matz_sum"; out=[1,1]; } else if ((decomptyp==2)) { function_name="matz_suml"; out=[-1,1]; } else if ((decomptyp==1)) { function_name="matz_sumc"; out=[1,-2]; } else { message("decomposition type is not supported"); ok=false; } it=2; ot=2; } else { message("Datatype is not supported"); ok=false; } in1=[model.in1,model.in2]; funtyp=4; if (ok) { [model,graphics,ok]=set_io(model,graphics,list(in1,it),list(out,ot),[],[]); } if (ok) { model.sim=list(function_name,funtyp); arg1.model=model; graphics.exprs=label; arg1.graphics=graphics; x=arg1; break } } } } /* autogenerated from "macros/MatrixOp/MATBKSL.sci" */ function MATBKSL() { MATBKSL.prototype.define = function MATBKSL() { model=scicos_model(); function_name="mat_bksl"; funtyp=4; model.sim=list(function_name,funtyp); model.in1=[-1,-1]; model.in2=[-2,-3]; model.intyp=[1,1]; model.out=-2; model.out2=-3; model.outtyp=1; model.evtin=[]; model.evtout=[]; model.state=[]; model.dstate=[]; model.rpar=[]; model.ipar=[]; model.blocktype="c"; model.firing=[]; model.dep_ut=[true,false]; label=[sci2exp(1)]; gr_i=[]; x=standard_define([2,2],model,label,gr_i); } MATBKSL.prototype.details = function MATBKSL() { } MATBKSL.prototype.get = function MATBKSL() { } MATBKSL.prototype.set = function MATBKSL() { x=arg1; graphics=arg1.graphics; label=graphics.exprs; model=arg1.model; if (size(label,"*")==14) { label[9-1]=[]; } while (true) { [ok,typ,exprs]=scicos_getvalue("Set MATBKSL Block",["Datatype (1=real double 2=Complex)"],list("vec",1),label); if (!ok) { break } if ((typ==1)) { function_name="mat_bksl"; ot=1; it=[1,1]; } else if ((typ==2)) { function_name="matz_bksl"; ot=2; it=[2,2]; } else { message("Datatype is not supported"); ok=false; } in1=[model.in1,model.in2]; out=[model.out,model.out2]; funtyp=4; if (ok) { label=exprs; [model,graphics,ok]=set_io(model,graphics,list(in1,it),list(out,ot),[],[]); model.sim=list(function_name,funtyp); graphics.exprs=label; arg1.graphics=graphics; arg1.model=model; x=arg1; break } } } } /* autogenerated from "macros/MatrixOp/MATRESH.sci" */ function MATRESH() { MATRESH.prototype.define = function MATRESH() { model=scicos_model(); function_name="mat_reshape"; funtyp=4; model.sim=list(function_name,funtyp); model.in1=-1; model.in2=-2; model.intyp=1; model.out=-1; model.out2=-2; model.outtyp=1; model.evtin=[]; model.evtout=[]; model.state=[]; model.dstate=[]; model.rpar=[]; model.ipar=[]; model.blocktype="c"; model.firing=[]; model.dep_ut=[true,false]; label=[sci2exp(1),sci2exp([1,1]),sci2exp([1,1])]; gr_i=[]; x=standard_define([3,2],model,label,gr_i); } MATRESH.prototype.details = function MATRESH() { } MATRESH.prototype.get = function MATRESH() { } MATRESH.prototype.set = function MATRESH() { x=arg1; model=arg1.model; graphics=arg1.graphics; label=graphics.exprs; if (size(label,"*")==14) { label[9-1]=[]; } while (true) { [ok,typ,l1,out,lab]=scicos_getvalue("Set MATRESH block parameters",["Datatype(1=real double 2=Complex)","input size","output size desired"],list("vec",-1,"vec",-1,"vec",-1),label); if (!ok) { break } nout=size(out); nin=size(l1); if (nout==0) { message("output must have at least one element"); ok=false; } if (nin==0) { message("input must have at least one element"); ok=false; } if (ok) { if (((out(1)>(l1(1)*l1(2))))) { message("the first dimension of the output is too big"); ok=false; } if (((out(2)>(l1(1)*l1(2))))) { message("the second dimension of the output is too big"); ok=false; } if ((((out(2)*out(1))>(l1(1)*l1(2))))) { message("the dimensions of the output are too big"); ok=false; } } if ((typ==1)) { function_name="mat_reshape"; ot=1; it=1; } else if ((typ==2)) { function_name="matz_reshape"; ot=2; it=2; } else { message("Datatype is not supported"); ok=false; } if (ok) { label=lab; [model,graphics,ok]=set_io(model,graphics,list(l1,it),list(out,ot),[],[]); } if (ok) { funtyp=4; model.sim=list(function_name,funtyp); graphics.exprs=label; arg1.graphics=graphics; arg1.model=model; x=arg1; break } } needcompile=resume(needcompile) } } /* autogenerated from "macros/MatrixOp/MATCATV.sci" */ function MATCATV() { MATCATV.prototype.define = function MATCATV() { l1=[2,2]; model=scicos_model(); function_name="mat_catv"; funtyp=4; model.sim=list(function_name,funtyp); model.in2=[-1,-1]; model.in1=[-2,-3]; model.intyp=[-1,-1]; model.out=0; model.out2=-1; model.outtyp=-1; model.evtin=[]; model.evtout=[]; model.state=[]; model.dstate=[]; model.rpar=[]; model.ipar=[]; model.blocktype="c"; model.firing=[]; model.dep_ut=[true,false]; label=[sci2exp(2)]; gr_i=[]; x=standard_define([2,3],model,label,gr_i); } MATCATV.prototype.details = function MATCATV() { } MATCATV.prototype.get = function MATCATV() { } MATCATV.prototype.set = function MATCATV() { x=arg1; model=arg1.model; graphics=arg1.graphics; label=graphics.exprs; if (size(label,"*")>1) { label="size(evstr("+label(2)+"),\'*\')"; } while (true) { [ok,nin,lab]=scicos_getvalue("Set MATCATV block parameters",["Number od inputs"],list("vec",1),label); if (!ok) { break } label=lab; in1=[-(transpose([2:nin+1])),-ones(nin,1)]; it=-ones(nin,1); ot=-1; out=[0,-1]; [model,graphics,ok]=set_io(model,graphics,list(in1,it),list(out,ot),[],[]); if (ok) { funtyp=4; model.sim=list("mat_catv",funtyp); graphics.exprs=label; arg1.graphics=graphics; arg1.model=model; x=arg1; break } } } } /* autogenerated from "macros/MatrixOp/MATTRAN.sci" */ function MATTRAN() { MATTRAN.prototype.define = function MATTRAN() { model=scicos_model(); model.sim=list("mattran_m",4); model.in1=-1; model.in2=-2; model.out=-2; model.out2=-1; model.dep_ut=[true,false]; label=[sci2exp(1)]; gr_i=[]; x=standard_define([3,2],model,label,gr_i); } MATTRAN.prototype.details = function MATTRAN() { } MATTRAN.prototype.get = function MATTRAN() { } MATTRAN.prototype.set = function MATTRAN() { x=arg1; graphics=arg1.graphics; label=graphics.exprs; model=arg1.model; if (size(label,"*")==1) { label[2-1]=sci2exp(1); } while (true) { [ok,typ,rule,exprs]=scicos_getvalue("Set MATTRAN Block",["Datatype(1=real double 2=Complex)","rule (1=.\' 2=\')"],list("vec",1,"vec",1),label); if (!ok) { break } if ((typ==1)) { function_name="mattran_m"; ot=1; it=1; } else if ((typ==2)) { if (rule==1) { function_name="matztran_m"; } else { function_name="mathermit_m"; } ot=2; it=2; } else { message("Datatype is not supported"); ok=false; } in1=[model.in1,model.in2]; out=[model.out,model.out2]; funtyp=4; if (ok) { label=exprs; [model,graphics,ok]=set_io(model,graphics,list(in1,it),list(out,ot),[],[]); model.sim=list(function_name,funtyp); graphics.exprs=label; arg1.graphics=graphics; arg1.model=model; x=arg1; break } } } } /* autogenerated from "macros/MatrixOp/RICC.sci" */ function RICC() { RICC.prototype.define = function RICC() { model=scicos_model(); function_name="ricc_m"; funtyp=4; model.sim=list(function_name,funtyp); model.in1=[-1,-1,-1]; model.in2=[-1,-1,-1]; model.intyp=[1,1,1]; model.out=-1; model.out2=-1; model.outtyp=1; model.evtin=[]; model.evtout=[]; model.state=[]; model.dstate=[]; model.rpar=[]; model.ipar=[1,1]; model.blocktype="c"; model.firing=[]; model.dep_ut=[true,false]; label=[sci2exp(1),sci2exp(1)]; gr_i=[]; x=standard_define([2,2],model,label,gr_i); } RICC.prototype.details = function RICC() { } RICC.prototype.get = function RICC() { } RICC.prototype.set = function RICC() { x=arg1; graphics=arg1.graphics; label=graphics.exprs; model=arg1.model; if (size(label,"*")==14) { label[9-1]=[]; } while (true) { [ok,tpe,mod,exprs]=scicos_getvalue("Set RICC Block",["Type (1=Cont 2=Disc)","Model(1=Schr 2=sign(cont) inv(disc))"],list("vec",1,"vec",1),label); if (!ok) { break } in1=[model.in1,model.in2]; out=[model.out,model.out2]; it=[1,1,1]; ot=1; label=exprs; [model,graphics,ok]=set_io(model,graphics,list(in1,it),list(out,ot),[],[]); if (ok) { model.ipar=[tpe,mod]; graphics.exprs=label; arg1.graphics=graphics; arg1.model=model; x=arg1; break } } } } /* autogenerated from "macros/MatrixOp/MATZREIM.sci" */ function MATZREIM() { MATZREIM.prototype.define = function MATZREIM() { model=scicos_model(); function_name="matz_reim"; funtyp=4; model.sim=list(function_name,funtyp); model.in1=-1; model.in2=-2; model.intyp=2; model.out=[-1,-1]; model.out2=[-2,-2]; model.outtyp=[1,1]; model.evtin=[]; model.evtout=[]; model.state=[]; model.dstate=[]; model.rpar=[]; model.ipar=[]; model.blocktype="c"; model.firing=[]; model.dep_ut=[true,false]; label=sci2exp(1); gr_i=[]; x=standard_define([3,2],model,label,gr_i); } MATZREIM.prototype.details = function MATZREIM() { } MATZREIM.prototype.get = function MATZREIM() { } MATZREIM.prototype.set = function MATZREIM() { x=arg1; model=arg1.model; graphics=arg1.graphics; label=graphics.exprs; if (size(label,"*")==14) { label[9-1]=[]; } while (true) { [ok,decomptyp,lab]=scicos_getvalue("Set MATZREIM block parameters",["decomposition type (1=Complex2Real&Imag 2=Real&Imag2Complex)"],list("vec",1),label); if (!ok) { break } label=lab; if ((decomptyp==1)) { function_name="matz_reim"; in1=[-1,-2]; it=2; out=[-1,-2,-1,-2]; ot=[1,1]; } else if ((decomptyp==2)) { function_name="matz_reimc"; in1=[-1,-2,-1,-2]; it=[1,1]; out=[-1,-2]; ot=2; } else { message("decomposition type is not supported"); ok=false; } funtyp=4; if (ok) { [model,graphics,ok]=set_io(model,graphics,list(in1,it),list(out,ot),[],[]); } if (ok) { model.sim=list(function_name,funtyp); arg1.model=model; graphics.exprs=label; arg1.graphics=graphics; x=arg1; break } } } } /* autogenerated from "macros/MatrixOp/MATCATH.sci" */ function MATCATH() { MATCATH.prototype.define = function MATCATH() { model=scicos_model(); function_name="mat_cath"; funtyp=4; model.sim=list(function_name,funtyp); model.in1=[-1,-1]; model.in2=[-2,-3]; model.intyp=[1,1]; model.out=-1; model.out2=0; model.outtyp=-1; model.evtin=[]; model.evtout=[]; model.state=[]; model.dstate=[]; model.rpar=[]; model.ipar=[]; model.blocktype="c"; model.firing=[]; model.dep_ut=[true,false]; label=[sci2exp(2)]; gr_i=[]; x=standard_define([2,3],model,label,gr_i); } MATCATH.prototype.details = function MATCATH() { } MATCATH.prototype.get = function MATCATH() { } MATCATH.prototype.set = function MATCATH() { x=arg1; model=arg1.model; graphics=arg1.graphics; label=graphics.exprs; if (size(label,"*")>1) { label="size(evstr("+label(2)+"),\'*\')"; } while (true) { [ok,nin,lab]=scicos_getvalue("Set MATCATH block parameters",["Number of input"],list("vec",1),label); if (!ok) { break } label=lab; in1=[-1*(ones(nin,1)),-(transpose([2:nin+1]))]; out=[-1,0]; it=-1*(ones(nin,1)); ot=-1; [model,graphics,ok]=set_io(model,graphics,list(in1,it),list(out,ot),[],[]); if (ok) { funtyp=4; model.sim=list("mat_cath",funtyp); graphics.exprs=label; arg1.graphics=graphics; arg1.model=model; x=arg1; break } } } } /* autogenerated from "macros/MatrixOp/MATSING.sci" */ function MATSING() { MATSING.prototype.define = function MATSING() { model=scicos_model(); function_name="mat_sing"; funtyp=4; model.sim=list(function_name,funtyp); model.in1=-1; model.in2=-2; model.intyp=1; model.out=-1; model.out2=1; model.outtyp=1; model.evtin=[]; model.evtout=[]; model.state=[]; model.dstate=[]; model.rpar=[]; model.ipar=[]; model.blocktype="c"; model.firing=[]; model.dep_ut=[true,false]; label=[sci2exp(1),sci2exp(1)]; gr_i=[]; x=standard_define([2,2],model,label,gr_i); } MATSING.prototype.details = function MATSING() { } MATSING.prototype.get = function MATSING() { } MATSING.prototype.set = function MATSING() { x=arg1; model=arg1.model; graphics=arg1.graphics; label=graphics.exprs; if (size(label,"*")==14) { label[9-1]=[]; } while (true) { [ok,typ,decomptyp,lab]=scicos_getvalue("Set MATSVD block parameters",["Datatype(1=real double 2=Complex)","decomposition type (1=singular values 2=sing values+matrix U & V)"],list("vec",1,"vec",1),label); if (!ok) { break } label=lab; if ((typ==1)) { if ((decomptyp==1)) { function_name="mat_sing"; in1=[-1,-2]; out=[-1,1]; ot=1; } else if ((decomptyp==2)) { function_name="mat_svd"; in1=[-1,-2]; out=[-1,-1,-1,-2,-2,-2]; ot=[1,1,1]; } else { message("decomposition type is not supported"); ok=false; } it=1; } else if ((typ==2)) { if ((decomptyp==1)) { function_name="matz_sing"; in1=[-1,-2]; out=[-1,1]; ot=1; } else if ((decomptyp==2)) { function_name="matz_svd"; in1=[-1,-2]; out=[-1,-1,-1,-2,-2,-2]; ot=[2,1,2]; } else { message("decomposition type is not supported"); ok=false; } it=2; } else { message("Datatype is not supported"); ok=false; } funtyp=4; if (ok) { [model,graphics,ok]=set_io(model,graphics,list(in1,it),list(out,ot),[],[]); } if (ok) { model.sim=list(function_name,funtyp); arg1.model=model; graphics.exprs=label; arg1.graphics=graphics; x=arg1; break } } } } /* autogenerated from "macros/MatrixOp/MATDET.sci" */ function MATDET() { MATDET.prototype.define = function MATDET() { model=scicos_model(); function_name="mat_det"; funtyp=4; model.sim=list(function_name,funtyp); model.in1=-1; model.in2=-1; model.intyp=1; model.out=1; model.out2=1; model.outtyp=1; model.evtin=[]; model.evtout=[]; model.state=[]; model.dstate=[]; model.rpar=[]; model.ipar=[]; model.blocktype="c"; model.firing=[]; model.dep_ut=[true,false]; label=[sci2exp(1)]; gr_i=[]; x=standard_define([2,2],model,label,gr_i); } MATDET.prototype.details = function MATDET() { } MATDET.prototype.get = function MATDET() { } MATDET.prototype.set = function MATDET() { x=arg1; graphics=arg1.graphics; label=graphics.exprs; model=arg1.model; if (size(label,"*")==14) { label[9-1]=[]; } while (true) { [ok,typ,exprs]=scicos_getvalue("Set MATDET Block",["Datatype(1=real double 2=Complex)"],list("vec",1),label); if (!ok) { break } if ((typ==1)) { function_name="mat_det"; ot=1; it=1; } else if ((typ==2)) { function_name="matz_det"; ot=2; it=2; } else { message("Datatype is not supported"); ok=false; } in1=[model.in1,model.in2]; out=[model.out,model.out2]; funtyp=4; if (ok) { label=exprs; [model,graphics,ok]=set_io(model,graphics,list(in1,it),list(out,ot),[],[]); model.sim=list(function_name,funtyp); graphics.exprs=label; arg1.graphics=graphics; arg1.model=model; x=arg1; break } } } } /* autogenerated from "macros/MatrixOp/SUBMAT.sci" */ function SUBMAT() { SUBMAT.prototype.define = function SUBMAT() { model=scicos_model(); function_name="submat"; funtyp=4; model.sim=list(function_name,funtyp); model.in1=-1; model.in2=-2; model.intyp=1; model.out=-1; model.out2=-2; model.outtyp=1; model.evtin=[]; model.evtout=[]; model.state=[]; model.dstate=[]; model.rpar=[]; model.ipar=[1,1,1,1]; model.blocktype="c"; model.firing=[]; model.dep_ut=[true,false]; label=[sci2exp(1),sci2exp(1),sci2exp(1),sci2exp(1),sci2exp(1)]; gr_i=[]; x=standard_define([2.5,2],model,label,gr_i); } SUBMAT.prototype.details = function SUBMAT() { } SUBMAT.prototype.get = function SUBMAT() { } SUBMAT.prototype.set = function SUBMAT() { x=arg1; graphics=arg1.graphics; label=graphics.exprs; model=arg1.model; if (size(label,"*")==5) { label[6-1]=sci2exp([1,1]); } while (true) { [ok,typ,a,b,c,d,inp,exprs]=scicos_getvalue("Set SUBMAT Block",["Datatype (1=real double 2=Complex)","Starting Row Index","Ending Row Index","Starting Column Index","Ending Column Index","Input Dimensions"],list("vec",1,"vec",1,"vec",1,"vec",1,"vec",1,"vec",2),label); if (!ok) { break } if ((typ==1)) { function_name="submat"; ot=1; it=1; } else if ((typ==2)) { function_name="submatz"; ot=2; it=2; } else { message("Datatype is not supported"); ok=false; } if ((a<=0)||(b<=0)||(c<=0)||(d<=0)) { message("invalid index"); ok=false; } if (binp(1)) { message("index of ending row is out of range"); ok=false; } if (d>inp(2)) { message("index of ending column is out of range"); ok=false; } model.ipar=[a,b,c,d]; in1=[inp(1),inp(2)]; out=[(b-a)+1,(d-c)+1]; funtyp=4; label=exprs; if (ok) { [model,graphics,ok]=set_io(model,graphics,list(in1,it),list(out,ot),[],[]); model.sim=list(function_name,funtyp); graphics.exprs=label; arg1.graphics=graphics; arg1.model=model; x=arg1; break } } } } /* autogenerated from "macros/MatrixOp/ROOTCOEF.sci" */ function ROOTCOEF() { ROOTCOEF.prototype.define = function ROOTCOEF() { model=scicos_model(); function_name="root_coef"; funtyp=4; model.sim=list(function_name,funtyp); model.in1=-1; model.in2=1; model.intyp=1; model.out=-2; model.out2=1; model.outtyp=1; model.evtin=[]; model.evtout=[]; model.state=[]; model.dstate=[]; model.rpar=[]; model.ipar=[]; model.blocktype="c"; model.firing=[]; model.dep_ut=[true,false]; label=[sci2exp(1),sci2exp(1)]; gr_i=[]; x=standard_define([3,2],model,label,gr_i); } ROOTCOEF.prototype.details = function ROOTCOEF() { } ROOTCOEF.prototype.get = function ROOTCOEF() { } ROOTCOEF.prototype.set = function ROOTCOEF() { x=arg1; graphics=arg1.graphics; label=graphics.exprs; model=arg1.model; if (size(label,"*")==14) { label[9-1]=[]; } while (true) { [ok,typ,inp,exprs]=scicos_getvalue("Set ROOTCOEF Block",["Datatype(1=real double 2=Complex)","input row size"],list("vec",1,"vec",1),label); if (!ok) { break } if ((typ==1)) { function_name="root_coef"; ot=1; it=1; } else if ((typ==2)) { function_name="rootz_coef"; ot=2; it=2; } else { message("Datatype is not supported"); ok=false; } in1=[inp,model.in2]; out=[inp+1,model.out2]; funtyp=4; if (ok) { label=exprs; [model,graphics,ok]=set_io(model,graphics,list(in1,it),list(out,ot),[],[]); model.sim=list(function_name,funtyp); graphics.exprs=label; arg1.graphics=graphics; arg1.model=model; x=arg1; break } } } } /* autogenerated from "macros/MatrixOp/EXTRACT.sci" */ function EXTRACT() { EXTRACT.prototype.define = function EXTRACT() { model=scicos_model(); function_name="extract"; funtyp=4; model.sim=list(function_name,funtyp); model.in1=-1; model.in2=-2; model.intyp=1; model.out=1; model.out2=1; model.outtyp=1; model.evtin=[]; model.evtout=[]; model.state=[]; model.dstate=[]; model.rpar=[]; model.ipar=[1,1,1,1]; model.blocktype="c"; model.firing=[]; model.dep_ut=[true,false]; label=[sci2exp(1),sci2exp([1]),sci2exp([1])]; gr_i=[]; x=standard_define([3,2],model,label,gr_i); } EXTRACT.prototype.details = function EXTRACT() { } EXTRACT.prototype.get = function EXTRACT() { } EXTRACT.prototype.set = function EXTRACT() { x=arg1; graphics=arg1.graphics; label=graphics.exprs; model=arg1.model; if (size(label,"*")==14) { label[9-1]=[]; } while (true) { [ok,typ,a,b,exprs]=scicos_getvalue("Set EXTRACT Block",["Datatype (1=real double 2=Complex)","Lines to extract","Columns to extract"],list("vec",1,"mat",[1,-1],"mat",[1,-1]),label); a=a.slice(); b=b.slice(); if (!ok) { break } if ((typ==1)) { function_name="extract"; ot=1; it=1; } else if ((typ==2)) { function_name="extractz"; ot=2; it=2; } else { message("Datatype is not supported"); ok=false; } ma=size(a,1); mb=size(b,1); if ((ma==0||mb==0)) { message("empty field"); ok=false; } for (i=1;i<=ma;i+=1) { if ((a[i-1]<=0)) { message("invalid index"); ok=false; } } for (j=1;j<=mb;j+=1) { if ((b[j-1]<=0)) { message("invalid index"); ok=false; } } model.ipar=[a,b,ma,mb]; in1=[model.in1,model.in2]; out=[ma,mb]; funtyp=4; if (ok) { label=exprs; [model,graphics,ok]=set_io(model,graphics,list(in1,it),list(out,ot),[],[]); model.sim=list(function_name,funtyp); graphics.exprs=label; arg1.graphics=graphics; arg1.model=model; x=arg1; break } } } } /* autogenerated from "macros/MatrixOp/MATEIG.sci" */ function MATEIG() { MATEIG.prototype.define = function MATEIG() { model=scicos_model(); function_name="mat_vps"; funtyp=4; model.sim=list(function_name,funtyp); model.in1=-1; model.in2=-1; model.intyp=1; model.out=-1; model.out2=1; model.outtyp=2; model.evtin=[]; model.evtout=[]; model.state=[]; model.dstate=[]; model.rpar=[]; model.ipar=[]; model.blocktype="c"; model.firing=[]; model.dep_ut=[true,false]; label=[sci2exp(1),sci2exp(1)]; gr_i=[]; x=standard_define([2,2],model,label,gr_i); } MATEIG.prototype.details = function MATEIG() { } MATEIG.prototype.get = function MATEIG() { } MATEIG.prototype.set = function MATEIG() { x=arg1; model=arg1.model; graphics=arg1.graphics; label=graphics.exprs; if (size(label,"*")==14) { label[9-1]=[]; } while (true) { [ok,typ,decomptyp,lab]=scicos_getvalue("Set MATEIG block parameters",["Datatype(1=real double 2=Complex)","decomposition type (1=eig values 2=eig values+eig vectors"],list("vec",1,"vec",1),label); if (!ok) { break } label=lab; if ((typ==1)) { if ((decomptyp==1)) { function_name="mat_vps"; out=[-1,1]; ot=2; } else if ((decomptyp==2)) { function_name="mat_vpv"; out=[-1,-1,-1,-1]; ot=[2,2]; } else { message("decomposition type is not supported"); ok=false; } it=1; } else if ((typ==2)) { if ((decomptyp==1)) { function_name="matz_vps"; out=[-1,1]; ot=2; } else if ((decomptyp==2)) { function_name="matz_vpv"; out=[-1,-1,-1,-1]; ot=[2,2]; } else { message("decomposition type is not supported"); ok=false; } it=2; } else { message("Datatype is not supported"); ok=false; } in1=[-1,-1]; funtyp=4; if (ok) { [model,graphics,ok]=set_io(model,graphics,list(in1,it),list(out,ot),[],[]); } if (ok) { model.sim=list(function_name,funtyp); arg1.model=model; graphics.exprs=label; arg1.graphics=graphics; x=arg1; break } } } } /* autogenerated from "macros/MatrixOp/CUMSUM.sci" */ function CUMSUM() { CUMSUM.prototype.define = function CUMSUM() { model=scicos_model(); function_name="cumsum_m"; funtyp=4; model.sim=list(function_name,funtyp); model.in1=-1; model.in2=-2; model.intyp=1; model.out=-1; model.out2=-2; model.outtyp=1; model.evtin=[]; model.evtout=[]; model.state=[]; model.dstate=[]; model.rpar=[]; model.ipar=[]; model.blocktype="c"; model.firing=[]; model.dep_ut=[true,false]; label=[sci2exp(1),sci2exp(0)]; gr_i=[]; x=standard_define([3,2],model,label,gr_i); } CUMSUM.prototype.details = function CUMSUM() { } CUMSUM.prototype.get = function CUMSUM() { } CUMSUM.prototype.set = function CUMSUM() { x=arg1; model=arg1.model; graphics=arg1.graphics; label=graphics.exprs; if (size(label,"*")==14) { label[9-1]=[]; } while (true) { [ok,typ,decomptyp,lab]=scicos_getvalue("Set CUMSUM block parameters",["Datatype(1=real double 2=Complex)","Sum along (0=the first non singleton dimension 1=Rows 2=Columns)"],list("vec",1,"vec",1),label); if (!ok) { break } label=lab; if ((typ==1)) { if ((decomptyp==0)) { function_name="cumsum_m"; out=[-1,-2]; } else if ((decomptyp==1)) { function_name="cumsum_r"; out=[-1,1]; } else if ((decomptyp==2)) { function_name="cumsum_c"; out=[1,-2]; } else { message("decomposition type is not supported"); ok=false; } it=1; ot=1; } else if ((typ==2)) { if ((decomptyp==0)) { function_name="cumsumz_m"; } else if ((decomptyp==1)) { function_name="cumsumz_r"; } else if ((decomptyp==2)) { function_name="cumsumz_c"; } else { message("decomposition type is not supported"); ok=false; } it=2; ot=2; } else { message("Datatype is not supported"); ok=false; } in1=[model.in1,model.in2]; out=[model.out,model.out2]; funtyp=4; if (ok) { [model,graphics,ok]=set_io(model,graphics,list(in1,it),list(out,ot),[],[]); } if (ok) { model.sim=list(function_name,funtyp); arg1.model=model; graphics.exprs=label; arg1.graphics=graphics; x=arg1; break } } } } /* autogenerated from "macros/MatrixOp/MATDIV.sci" */ function MATDIV() { MATDIV.prototype.define = function MATDIV() { model=scicos_model(); function_name="mat_div"; funtyp=4; model.sim=list(function_name,funtyp); model.in1=[-1,-2]; model.in2=[-3,-3]; model.intyp=[1,1]; model.out=-1; model.out2=-2; model.outtyp=1; model.evtin=[]; model.evtout=[]; model.state=[]; model.dstate=[]; model.rpar=[]; model.ipar=[]; model.blocktype="c"; model.firing=[]; model.dep_ut=[true,false]; label=[sci2exp(1)]; gr_i=[]; x=standard_define([2,2],model,label,gr_i); } MATDIV.prototype.details = function MATDIV() { } MATDIV.prototype.get = function MATDIV() { } MATDIV.prototype.set = function MATDIV() { x=arg1; graphics=arg1.graphics; label=graphics.exprs; model=arg1.model; if (size(label,"*")==14) { label[9-1]=[]; } while (true) { [ok,typ,exprs]=scicos_getvalue("Set MATDIV Block",["Datatype(1=real double 2=Complex)"],list("vec",1),label); if (!ok) { break } if ((typ==1)) { function_name="mat_div"; ot=1; it=[1,1]; } else if ((typ==2)) { function_name="matz_div"; ot=2; it=[2,2]; } else { message("Datatype is not supported"); ok=false; } in1=[model.in1,model.in2]; out=[model.out,model.out2]; funtyp=4; if (ok) { label=exprs; [model,graphics,ok]=set_io(model,graphics,list(in1,it),list(out,ot),[],[]); model.sim=list(function_name,funtyp); graphics.exprs=label; arg1.graphics=graphics; arg1.model=model; x=arg1; break } } } } /* autogenerated from "macros/MatrixOp/EXTTRI.sci" */ function EXTTRI() { EXTTRI.prototype.define = function EXTTRI() { model=scicos_model(); function_name="extrilz"; funtyp=4; model.sim=list(function_name,funtyp); model.in1=-1; model.in2=-2; model.intyp=1; model.out=-1; model.out2=-2; model.outtyp=1; model.evtin=[]; model.evtout=[]; model.state=[]; model.dstate=[]; model.rpar=[]; model.ipar=[]; model.blocktype="c"; model.firing=[]; model.dep_ut=[true,false]; label=[sci2exp(1),sci2exp(1)]; gr_i=[]; x=standard_define([3,2],model,label,gr_i); } EXTTRI.prototype.details = function EXTTRI() { } EXTTRI.prototype.get = function EXTTRI() { } EXTTRI.prototype.set = function EXTTRI() { x=arg1; model=arg1.model; graphics=arg1.graphics; label=graphics.exprs; if (size(label,"*")==14) { label[9-1]=[]; } while (true) { [ok,typ,decomptyp,lab]=scicos_getvalue("Set EXTTRI block parameters",["Datatype(1=real double 2=Complex)","extraction type (1=lower 2=upper 3=diagonal)"],list("vec",1,"vec",1),label); if (!ok) { break } label=lab; if ((typ==1)) { if ((decomptyp==1)) { function_name="exttril"; } else if ((decomptyp==2)) { function_name="exttriu"; } else if ((decomptyp==3)) { function_name="extdiag"; } else { message("decomposition type is not supported"); ok=false; } it=1; ot=1; } else if ((typ==2)) { if ((decomptyp==1)) { function_name="exttrilz"; } else if ((decomptyp==2)) { function_name="exttriuz"; } else if ((decomptyp==3)) { function_name="extdiagz"; } else { message("decomposition type is not supported"); ok=false; } it=2; ot=2; } else { message("Datatype is not supported"); ok=false; } in1=[model.in1,model.in2]; out=[model.out,model.out2]; funtyp=4; if (ok) { [model,graphics,ok]=set_io(model,graphics,list(in1,it),list(out,ot),[],[]); } if (ok) { model.sim=list(function_name,funtyp); arg1.model=model; graphics.exprs=label; arg1.graphics=graphics; x=arg1; break } } } } /* autogenerated from "macros/Threshold/NEGTOPOS_f.sci" */ function NEGTOPOS_f() { NEGTOPOS_f.prototype.define = function NEGTOPOS_f() { model=scicos_model(); model.sim=list("zcross",1); model.nzcross=1; model.in1=1; model.evtout=1; model.rpar=[-1,-1,0,-1]; model.blocktype="z"; model.firing=-1; model.dep_ut=[true,false]; gr_i=[]; x=standard_define([2,2],model,[],gr_i); } NEGTOPOS_f.prototype.details = function NEGTOPOS_f() { } NEGTOPOS_f.prototype.get = function NEGTOPOS_f() { } NEGTOPOS_f.prototype.set = function NEGTOPOS_f() { x=arg1; x.model.firing=-1; } } /* autogenerated from "macros/Threshold/ZCROSS_f.sci" */ function ZCROSS_f() { ZCROSS_f.prototype.define = function ZCROSS_f() { rpar=[-1,-1,0,0]; in1=1; model=scicos_model(); model.sim=list("zcross",1); model.in1=in1; model.nzcross=in1; model.evtout=1; model.rpar=[-1,-1,0,0]; model.blocktype="z"; model.firing=-1; model.dep_ut=[true,false]; exprs=strcat(sci2exp(in1)); gr_i=[]; x=standard_define([2,2],model,exprs,gr_i); } ZCROSS_f.prototype.details = function ZCROSS_f() { } ZCROSS_f.prototype.get = function ZCROSS_f() { } ZCROSS_f.prototype.set = function ZCROSS_f() { x=arg1; graphics=arg1.graphics; exprs=graphics.exprs; model=arg1.model; while (true) { [ok,in1,exprs]=scicos_getvalue(["Set Zero-Crossing parameters","All surfaces must cross together"],"Input size",list("vec",1),exprs); if (!ok) { break } in1=int(in1); if (in1<=0) { message("Block must have at least one input"); } else { kk=0; for (jj=1;jj<=in1;jj+=1) { kk=kk+2^(in1+jj-1); } model.rpar=[-ones(kk,1),zeros(2^(2*in1)-kk,1)]; graphics.exprs=exprs; model.in1=in1; model.nzcross=in1; model.firing=-1; x.graphics=graphics; x.model=model; break } } } } /* autogenerated from "macros/Threshold/POSTONEG_f.sci" */ function POSTONEG_f() { POSTONEG_f.prototype.define = function POSTONEG_f() { rpar=[-1,-1,-1,0]; model=scicos_model(); model.sim=list("zcross",1); model.nzcross=1; model.in1=1; model.evtout=1; model.rpar=[-1,-1,-1,0]; model.blocktype="z"; model.dep_ut=[true,false]; model.firing=[-1]; gr_i=[]; x=standard_define([2,2],model,[],gr_i); } POSTONEG_f.prototype.details = function POSTONEG_f() { } POSTONEG_f.prototype.get = function POSTONEG_f() { } POSTONEG_f.prototype.set = function POSTONEG_f() { x=arg1; x.model.firing=[-1]; } } /* autogenerated from "macros/Electrical/PotentialSensor.sci" */ function PotentialSensor() { PotentialSensor.prototype.define = function PotentialSensor() { model=scicos_model(); model.in1=[1]; model.out=[1]; model.rpar=[]; model.sim="PotentialSensor"; model.blocktype="c"; model.dep_ut=[true,false]; mo=modelica(); mo.model="PotentialSensor"; mo.inputs="p"; mo.outputs=["v"]; model.equations=mo; gr_i=[]; x=standard_define([2,2],model,"",list(gr_i,0)); x.graphics.in_implicit=["I"]; x.graphics.out_implicit=["E"]; } PotentialSensor.prototype.details = function PotentialSensor() { } PotentialSensor.prototype.get = function PotentialSensor() { } PotentialSensor.prototype.set = function PotentialSensor() { x=arg1; } } /* autogenerated from "macros/Electrical/SineVoltage.sci" */ function SineVoltage() { SineVoltage.prototype.define = function SineVoltage() { model=scicos_model(); model.in1=[1]; model.out=[1]; V=1; ph=0; frq=1; offset=0; start=0; model.rpar=[V,ph,frq,offset,start]; model.sim="SineVoltage"; model.blocktype="c"; model.dep_ut=[true,false]; mo=modelica(); mo.model="SineVoltage"; mo.inputs="p"; mo.outputs="n"; mo.parameters=list(["V","phase","freqHz","offset","startTime"],list(V,ph,frq,offset,start)); model.equations=mo; exprs=[string(V),string(ph),string(frq),string(offset),string(start)]; gr_i=[]; x=standard_define([2,2],model,exprs,gr_i); x.graphics.in_implicit=["I"]; x.graphics.out_implicit=["I"]; } SineVoltage.prototype.details = function SineVoltage() { } SineVoltage.prototype.get = function SineVoltage() { } SineVoltage.prototype.set = function SineVoltage() { x=arg1; graphics=arg1.graphics; exprs=graphics.exprs; model=arg1.model; while (true) { [ok,V,ph,frq,offset,start,exprs]=scicos_getvalue("Set voltage source parameter",["Amplitude (Volt)","phase (rad)","Frequency (Hz)","Voltageoffset (V)","Timeoffset (s)"],list("vec",1,"vec",1,"vec",1,"vec",1,"vec",1),exprs); if (!ok) { break } model.rpar=[V,ph,frq,offset,start]; model.equations.parameters[2-1]=list(V,ph,frq,offset,start); graphics.exprs=exprs; x.graphics=graphics; x.model=model; break } } } /* autogenerated from "macros/Electrical/CCS.sci" */ function CCS() { CCS.prototype.define = function CCS() { ModelName="CCS"; PrametersValue=[]; ParametersName=[]; model=scicos_model(); Typein=[]; Typeout=[]; MI=[]; MO=[]; P=[2,50,1,0,70,98,2,0,70,2,-2,0]; PortName=["Iin","p","n"]; for (i=1;i<=size(P,"r");i+=1) { if (P(i,3)==1) { Typein=[Typein,"E"]; MI=[MI,PortName(i)]; } if (P(i,3)==2) { Typein=[Typein,"I"]; MI=[MI,PortName(i)]; } if (P(i,3)==-1) { Typeout=[Typeout,"E"]; MO=[MO,PortName(i)]; } if (P(i,3)==-2) { Typeout=[Typeout,"I"]; MO=[MO,PortName(i)]; } } model=scicos_model(); mo=modelica(); model.sim=ModelName; mo.inputs=MI; mo.outputs=MO; model.rpar=PrametersValue; mo.parameters=list(ParametersName,PrametersValue,zeros(ParametersName)); exprs=[]; gr_i=[]; model.blocktype="c"; model.dep_ut=[false,true]; mo.model=ModelName; model.equations=mo; model.in1=ones(size(MI,"*"),1); model.out=ones(size(MO,"*"),1); x=standard_define([2.1,3],model,exprs,list(gr_i,0)); x.graphics.in_implicit=Typein; x.graphics.out_implicit=Typeout; } CCS.prototype.details = function CCS() { } CCS.prototype.get = function CCS() { } CCS.prototype.set = function CCS() { x=arg1; graphics=arg1.graphics; exprs=graphics.exprs; model=arg1.model; x=arg1; } } /* autogenerated from "macros/Electrical/PMOS.sci" */ function PMOS() { PMOS.prototype.define = function PMOS() { model=scicos_model(); W=50.0e-6; L=6.0e-6; Beta=0.0105e-3; Vt=-1; K2=0.41; K5=0.839; dW=-2.5e-6; dL=-2.1e-6; RDS=1.e+7; model.sim="PMOS"; model.blocktype="c"; model.dep_ut=[true,false]; mo=modelica(); mo.model="PMOS"; mo.outputs=["D","B","S"]; mo.inputs="G"; mo.parameters=list(["W","L","Beta","Vt","K2","K5","dW","dL","RDS"],[W,L,Beta,Vt,K2,K5,dW,dL,RDS]); model.equations=mo; model.in1=ones(size(mo.inputs,"*"),1); model.out=ones(size(mo.outputs,"*"),1); exprs=[string(W),string(L),string(Beta),string(Vt),string(K2),string(K5),string(dW),string(dL),string(RDS)]; gr_i=[]; x=standard_define([2,2],model,exprs,gr_i); x.graphics.in_implicit=["I"]; x.graphics.out_implicit=["I","I","I"]; } PMOS.prototype.details = function PMOS() { } PMOS.prototype.get = function PMOS() { } PMOS.prototype.set = function PMOS() { x=arg1; graphics=arg1.graphics; exprs=graphics.exprs; model=arg1.model; while (true) { [ok,W,L,Beta,Vt,K2,K5,dW,dL,RDS,exprs]=scicos_getvalue("Set PMOS Transistor parameters",["Width [m]","Length [m]","Transconductance parameter [A/(V*V)]","Zero bias threshold voltage [V]","Bulk threshold parameter","Reduction of pinch-off region","Narrowing of channel [m]","Shortening of channel [m]","Drain-Source-Resistance [Ohm]"],list("vec",-1,"vec",-1,"vec",-1,"vec",-1,"vec",-1,"vec",-1,"vec",-1,"vec",-1,"vec",-1),exprs); if (!ok) { break } model.equations.parameters[2-1]=list(W,L,Beta,Vt,K2,K5,dW,dL,RDS); graphics.exprs=exprs; x.graphics=graphics; x.model=model; break } } } /* autogenerated from "macros/Electrical/Inductor.sci" */ function Inductor() { Inductor.prototype.define = function Inductor() { model=scicos_model(); model.in1=[1]; model.out=[1]; L=1.e-5; model.rpar=L; model.sim="Inductor"; model.blocktype="c"; model.dep_ut=[true,false]; mo=modelica(); mo.model="Inductor"; mo.inputs="p"; mo.outputs="n"; mo.parameters=list("L",list(L)); model.equations=mo; exprs=string(L); gr_i=[]; x=standard_define([2,0.9],model,exprs,list(gr_i,0)); x.graphics.in_implicit=["I"]; x.graphics.out_implicit=["I"]; } Inductor.prototype.details = function Inductor() { } Inductor.prototype.get = function Inductor() { } Inductor.prototype.set = function Inductor() { x=arg1; graphics=arg1.graphics; exprs=graphics.exprs; model=arg1.model; while (true) { [ok,L,exprs]=scicos_getvalue("Set Inductor block parameter","L (H)",list("vec",1),exprs); if (!ok) { break } model.rpar=L; model.equations.parameters[2-1]=list(L); graphics.exprs=exprs; x.graphics=graphics; x.model=model; break } } } /* autogenerated from "macros/Electrical/Diode.sci" */ function Diode() { Diode.prototype.define = function Diode() { Ids=1.e-6; Vt=0.04; Maxexp=15; R=1.e8; model=scicos_model(); model.rpar=[Ids,Vt,Maxexp,R]; model.in1=1; model.out=1; model.sim="Diode"; model.blocktype="c"; model.dep_ut=[true,false]; mo=modelica(); mo.model="Diode"; mo.inputs="p"; mo.outputs="n"; mo.parameters=list(["Ids","Vt","Maxexp","R"],list(Ids,Vt,Maxexp,R)); model.equations=mo; exprs=string([Ids,Vt,Maxexp,R]); gr_i=[]; x=standard_define([2,1],model,exprs,list(gr_i,0)); x.graphics.in_implicit=["I"]; x.graphics.out_implicit=["I"]; } Diode.prototype.details = function Diode() { } Diode.prototype.get = function Diode() { } Diode.prototype.set = function Diode() { x=arg1; graphics=arg1.graphics; exprs=graphics.exprs; model=arg1.model; while (true) { [ok,Ids,Vt,Maxexp,R,exprs]=scicos_getvalue("Set Diode block parameter",["Saturation cuurent (A)","Voltage equivalent to temperature (Volt)","Max exponent for linear continuation","R (ohm)"],list("vec",1,"vec",1,"vec",1,"vec",1),exprs); if (!ok) { break } model.rpar=[Ids,Vt,Maxexp,R]; model.equations.parameters=list(["Ids","Vt","Maxexp","R"],list(Ids,Vt,Maxexp,R)); graphics.exprs=exprs; x.graphics=graphics; x.model=model; break } } } /* autogenerated from "macros/Electrical/IdealTransformer.sci" */ function IdealTransformer() { IdealTransformer.prototype.define = function IdealTransformer() { ModelName="IdealTransformer"; PrametersValue=[1]; ParametersName=["N"]; model=scicos_model(); Typein=[]; Typeout=[]; MI=[]; MO=[]; P=[2.5,90,2,0,2.5,10,2,0,97.5,90,-2,0,97.5,10,-2,0]; PortName=["p1","n1","p2","n2"]; for (i=1;i<=size(P,"r");i+=1) { if (P(i,3)==1) { Typein=[Typein,"E"]; MI=[MI,PortName(i)]; } if (P(i,3)==2) { Typein=[Typein,"I"]; MI=[MI,PortName(i)]; } if (P(i,3)==-1) { Typeout=[Typeout,"E"]; MO=[MO,PortName(i)]; } if (P(i,3)==-2) { Typeout=[Typeout,"I"]; MO=[MO,PortName(i)]; } } model=scicos_model(); mo=modelica(); model.sim=ModelName; mo.inputs=MI; mo.outputs=MO; model.rpar=PrametersValue; mo.parameters=list(ParametersName,PrametersValue,zeros(ParametersName)); exprs=["1"]; gr_i=[]; model.blocktype="c"; model.dep_ut=[false,true]; mo.model=ModelName; model.equations=mo; model.in1=ones(size(MI,"*"),1); model.out=ones(size(MO,"*"),1); x=standard_define([2,2],model,exprs,list(gr_i,0)); x.graphics.in_implicit=Typein; x.graphics.out_implicit=Typeout; } IdealTransformer.prototype.details = function IdealTransformer() { } IdealTransformer.prototype.get = function IdealTransformer() { } IdealTransformer.prototype.set = function IdealTransformer() { x=arg1; graphics=arg1.graphics; exprs=graphics.exprs; model=arg1.model; x=arg1; exprs=x.graphics.exprs; while (true) { [ok,N,exprs]=scicos_getvalue(["Set Transformer block parameters:","","N:"+" Turn ratio (N1/N2)"],["N"],list("vec",1),exprs); if (!ok) { break } x.model.equations.parameters[2-1]=list(N); x.graphics.exprs=exprs; break } } } /* autogenerated from "macros/Electrical/Ground.sci" */ function Ground() { Ground.prototype.define = function Ground() { model=scicos_model(); model.in1=[1]; model.out=[]; model.sim="Ground"; model.blocktype="c"; model.dep_ut=[true,false]; mo=modelica(); mo.model="Ground"; mo.inputs="p"; model.equations=mo; exprs=""; gr_i=[]; x=standard_define([1,1],model,exprs,list(gr_i,0)); x.graphics.in_implicit=["I"]; x.graphics.out_implicit=["I"]; } Ground.prototype.details = function Ground() { } Ground.prototype.get = function Ground() { } Ground.prototype.set = function Ground() { x=arg1; } } /* autogenerated from "macros/Electrical/CVS.sci" */ function CVS() { CVS.prototype.define = function CVS() { ModelName="CVS"; PrametersValue=[]; ParametersName=[]; model=scicos_model(); Typein=[]; Typeout=[]; MI=[]; MO=[]; P=[2,50,1,0,70,98,2,0,70,2,-2,0]; PortName=["vin","p","n"]; for (i=1;i<=size(P,"r");i+=1) { if (P(i,3)==1) { Typein=[Typein,"E"]; MI=[MI,PortName(i)]; } if (P(i,3)==2) { Typein=[Typein,"I"]; MI=[MI,PortName(i)]; } if (P(i,3)==-1) { Typeout=[Typeout,"E"]; MO=[MO,PortName(i)]; } if (P(i,3)==-2) { Typeout=[Typeout,"I"]; MO=[MO,PortName(i)]; } } model=scicos_model(); mo=modelica(); model.sim=ModelName; mo.inputs=MI; mo.outputs=MO; model.rpar=PrametersValue; mo.parameters=list(ParametersName,PrametersValue,zeros(ParametersName)); exprs=[]; gr_i=[]; model.blocktype="c"; model.dep_ut=[false,true]; mo.model=ModelName; model.equations=mo; model.in1=ones(size(MI,"*"),1); model.out=ones(size(MO,"*"),1); x=standard_define([2.1,3],model,exprs,list(gr_i,0)); x.graphics.in_implicit=Typein; x.graphics.out_implicit=Typeout; } CVS.prototype.details = function CVS() { } CVS.prototype.get = function CVS() { } CVS.prototype.set = function CVS() { x=arg1; graphics=arg1.graphics; exprs=graphics.exprs; model=arg1.model; x=arg1; } } /* autogenerated from "macros/Electrical/Resistor.sci" */ function Resistor() { Resistor.prototype.define = function Resistor() { model=scicos_model(); R=0.01; model.rpar=R; model.sim="resistor"; model.blocktype="c"; model.dep_ut=[true,false]; mo=modelica(); mo.model="Resistor"; mo.inputs="p"; mo.outputs="n"; mo.parameters=list("R",list(R)); model.equations=mo; model.in1=ones(size(mo.inputs,"*"),1); model.out=ones(size(mo.outputs,"*"),1); exprs=string(R); gr_i=[]; x=standard_define([2,1],model,exprs,list(gr_i,0)); x.graphics.in_implicit=["I"]; x.graphics.out_implicit=["I"]; } Resistor.prototype.details = function Resistor() { } Resistor.prototype.get = function Resistor() { } Resistor.prototype.set = function Resistor() { x=arg1; graphics=arg1.graphics; exprs=graphics.exprs; model=arg1.model; while (true) { [ok,R,exprs]=scicos_getvalue("Set Resistor block parameter","R (ohm)",list("vec",1),exprs); if (!ok) { break } model.rpar=R; model.equations.parameters[2-1]=list(R); graphics.exprs=exprs; x.graphics=graphics; x.model=model; break } } } /* autogenerated from "macros/Electrical/PNP.sci" */ function PNP() { PNP.prototype.define = function PNP() { ModelName="PNP"; PrametersValue=[50,0.1,0,0.02,1.200e-10,5.000e-09,1.000e-12,4.000e-13,5.000e-13,0.8,0.4,0.8,0.333,1.000e-15,1.000e-15,0.02585,40]; ParametersName=["Bf","Br","Is","Vak","Tauf","Taur","Ccs","Cje","Cjc","Phie","Me","Phic","Mc","Gbc","Gbe","Vt","EMinMax"]; model=scicos_model(); Typein=[]; Typeout=[]; MI=[]; MO=[]; P=[100,90,-2,0,0,50,2,0,100,10,-2,0]; PortName=["C","B","E"]; for (i=1;i<=size(P,"r");i+=1) { if (P(i,3)==1) { Typein=[Typein,"E"]; MI=[MI,PortName(i)]; } if (P(i,3)==2) { Typein=[Typein,"I"]; MI=[MI,PortName(i)]; } if (P(i,3)==-1) { Typeout=[Typeout,"E"]; MO=[MO,PortName(i)]; } if (P(i,3)==-2) { Typeout=[Typeout,"I"]; MO=[MO,PortName(i)]; } } model=scicos_model(); mo=modelica(); model.sim=ModelName; mo.inputs=MI; mo.outputs=MO; model.rpar=PrametersValue; mo.parameters=list(ParametersName,PrametersValue,zeros(ParametersName)); exprs=["50","0.1","1.e-16","0.02","0.12e-9","5e-9","1e-12","0.4e-12","0.5e-12","0.8","0.4","0.8","0.333","1e-15","1e-15","0.02585","40"]; gr_i=[]; model.blocktype="c"; model.dep_ut=[false,true]; mo.model=ModelName; model.equations=mo; model.in1=ones(size(MI,"*"),1); model.out=ones(size(MO,"*"),1); x=standard_define([2,2],model,exprs,list(gr_i,0)); x.graphics.in_implicit=Typein; x.graphics.out_implicit=Typeout; } PNP.prototype.details = function PNP() { } PNP.prototype.get = function PNP() { } PNP.prototype.set = function PNP() { x=arg1; graphics=arg1.graphics; exprs=graphics.exprs; model=arg1.model; x=arg1; exprs=x.graphics.exprs; while (true) { [ok,Bf,Br,Is,Vak,Tauf,Taur,Ccs,Cje,Cjc,Phie,Me,Phic,Mc,Gbc,Gbe,Vt,EMinMax,exprs]=scicos_getvalue(["Set PNP block parameters:",""],["Bf : Forward beta","Br : Reverse beta","Is : Transport saturation current","Vak : Early voltage (inverse), 1/Volt","Tauf: Ideal forward transit time","Taur: Ideal reverse transit time","Ccs : Collector-substrat(ground) cap.","Cje : Base-emitter zero bias depletion cap.","Cjc : Base-coll. zero bias depletion cap.","Phie: Base-emitter diffusion voltage","Me : Base-emitter gradation exponent","Phic: Base-collector diffusion voltage","Mc : Base-collector gradation exponent","Gbc : Base-collector conductance","Gbe : Base-emitter conductance","Vt : Voltage equivalent of temperature","EMinMax: if x > EMinMax, the exp(x) function is linearized"],list("vec",1,"vec",1,"vec",1,"vec",1,"vec",1,"vec",1,"vec",1,"vec",1,"vec",1,"vec",1,"vec",1,"vec",1,"vec",1,"vec",1,"vec",1,"vec",1,"vec",1),exprs); if (!ok) { break } x.model.equations.parameters[2-1]=list(Bf,Br,Is,Vak,Tauf,Taur,Ccs,Cje,Cjc,Phie,Me,Phic,Mc,Gbc,Gbe,Vt,EMinMax); x.graphics.exprs=exprs; break } } } /* autogenerated from "macros/Electrical/NPN.sci" */ function NPN() { NPN.prototype.define = function NPN() { ModelName="NPN"; PrametersValue=[50,0.1,0,0.02,1.200e-10,5.000e-09,1.000e-12,4.000e-13,5.000e-13,0.8,0.4,0.8,0.333,1.000e-15,1.000e-15,0.02585,40]; ParametersName=["Bf","Br","Is","Vak","Tauf","Taur","Ccs","Cje","Cjc","Phie","Me","Phic","Mc","Gbc","Gbe","Vt","EMinMax"]; model=scicos_model(); Typein=[]; Typeout=[]; MI=[]; MO=[]; P=[100,90,-2,0,0,50,2,0,100,10,-2,0]; PortName=["C","B","E"]; for (i=1;i<=size(P,"r");i+=1) { if (P(i,3)==1) { Typein=[Typein,"E"]; MI=[MI,PortName(i)]; } if (P(i,3)==2) { Typein=[Typein,"I"]; MI=[MI,PortName(i)]; } if (P(i,3)==-1) { Typeout=[Typeout,"E"]; MO=[MO,PortName(i)]; } if (P(i,3)==-2) { Typeout=[Typeout,"I"]; MO=[MO,PortName(i)]; } } model=scicos_model(); mo=modelica(); model.sim=ModelName; mo.inputs=MI; mo.outputs=MO; model.rpar=PrametersValue; mo.parameters=list(ParametersName,PrametersValue,zeros(ParametersName)); exprs=["50","0.1","1.e-16","0.02","0.12e-9","5e-9","1e-12","0.4e-12","0.5e-12","0.8","0.4","0.8","0.333","1e-15","1e-15","0.02585","40"]; gr_i=[]; model.blocktype="c"; model.dep_ut=[false,true]; mo.model=ModelName; model.equations=mo; model.in1=ones(size(MI,"*"),1); model.out=ones(size(MO,"*"),1); x=standard_define([2,2],model,exprs,list(gr_i,0)); x.graphics.in_implicit=Typein; x.graphics.out_implicit=Typeout; } NPN.prototype.details = function NPN() { } NPN.prototype.get = function NPN() { } NPN.prototype.set = function NPN() { x=arg1; graphics=arg1.graphics; exprs=graphics.exprs; model=arg1.model; x=arg1; exprs=x.graphics.exprs; while (true) { [ok,Bf,Br,Is,Vak,Tauf,Taur,Ccs,Cje,Cjc,Phie,Me,Phic,Mc,Gbc,Gbe,Vt,EMinMax,exprs]=scicos_getvalue(["Set NPN block parameters:",""],["Bf : Forward beta","Br : Reverse beta","Is : Transport saturation current","Vak : Early voltage (inverse), 1/Volt","Tauf: Ideal forward transit time","Taur: Ideal reverse transit time","Ccs : Collector-substrat(ground) cap.","Cje : Base-emitter zero bias depletion cap.","Cjc : Base-coll. zero bias depletion cap.","Phie: Base-emitter diffusion voltage","Me : Base-emitter gradation exponent","Phic: Base-collector diffusion voltage","Mc : Base-collector gradation exponent","Gbc : Base-collector conductance","Gbe : Base-emitter conductance","Vt : Voltage equivalent of temperature","EMinmax: if x > EMinMax, the exp(x) is linearized"],list("vec",1,"vec",1,"vec",1,"vec",1,"vec",1,"vec",1,"vec",1,"vec",1,"vec",1,"vec",1,"vec",1,"vec",1,"vec",1,"vec",1,"vec",1,"vec",1,"vec",1),exprs); if (!ok) { break } x.model.equations.parameters[2-1]=list(Bf,Br,Is,Vak,Tauf,Taur,Ccs,Cje,Cjc,Phie,Me,Phic,Mc,Gbc,Gbe,Vt,EMinMax); x.graphics.exprs=exprs; break } } } /* autogenerated from "macros/Electrical/CurrentSensor.sci" */ function CurrentSensor() { CurrentSensor.prototype.define = function CurrentSensor() { model=scicos_model(); model.in1=1; model.out=[1,1]; model.sim="CurrentSensor"; model.blocktype="c"; model.dep_ut=[true,false]; mo=modelica(); mo.model="CurrentSensor"; mo.inputs="p"; mo.outputs=["n","i"]; model.equations=mo; exprs=[]; gr_i=[]; x=standard_define([2,2],model,exprs,list(gr_i,0)); x.graphics.in_implicit=["I"]; x.graphics.out_implicit=["I","E"]; } CurrentSensor.prototype.details = function CurrentSensor() { } CurrentSensor.prototype.get = function CurrentSensor() { } CurrentSensor.prototype.set = function CurrentSensor() { x=arg1; } } /* autogenerated from "macros/Electrical/ConstantVoltage.sci" */ function ConstantVoltage() { ConstantVoltage.prototype.define = function ConstantVoltage() { V=0.01; model=scicos_model(); model.rpar=V; model.in1=1; model.out=1; model.sim="ConstantVoltage"; model.blocktype="c"; model.dep_ut=[false,false]; mo=modelica(); mo.model="ConstantVoltage"; mo.inputs="p"; mo.outputs="n"; mo.parameters=list("V",list(V)); model.equations=mo; exprs=string(V); gr_i=[]; x=standard_define([1.5,1.1],model,exprs,list(gr_i,0)); x.graphics.in_implicit=["I"]; x.graphics.out_implicit=["I"]; } ConstantVoltage.prototype.details = function ConstantVoltage() { } ConstantVoltage.prototype.get = function ConstantVoltage() { } ConstantVoltage.prototype.set = function ConstantVoltage() { x=arg1; graphics=arg1.graphics; exprs=graphics.exprs; model=arg1.model; while (true) { [ok,V,exprs]=scicos_getvalue("Set ConstantVoltage block parameter","V (volt)",list("vec",1),exprs); if (!ok) { break } model.rpar=V; model.equations.parameters[2-1]=list(V); graphics.exprs=exprs; x.graphics=graphics; x.model=model; break } } } /* autogenerated from "macros/Electrical/VVsourceAC.sci" */ function VVsourceAC() { VVsourceAC.prototype.define = function VVsourceAC() { model=scicos_model(); model.in1=[1,1]; model.out=[1]; VA=220; FR=50; model.rpar=[FR]; model.sim="VVsourceAC"; model.blocktype="c"; model.dep_ut=[true,false]; mo=modelica(); mo.model="VVsourceAC"; mo.inputs=["p","VA"]; mo.outputs="n"; mo.parameters=list(["f"],list(FR)); model.equations=mo; exprs=[string(FR)]; gr_i=[]; x=standard_define([2,2],model,exprs,list(gr_i,0)); x.graphics.in_implicit=["I","E"]; x.graphics.out_implicit=["I"]; } VVsourceAC.prototype.details = function VVsourceAC() { } VVsourceAC.prototype.get = function VVsourceAC() { } VVsourceAC.prototype.set = function VVsourceAC() { x=arg1; graphics=arg1.graphics; exprs=graphics.exprs; model=arg1.model; while (true) { [ok,FR,exprs]=scicos_getvalue("Set voltage source parameter",["Frequency (Hz)"],list("vec",-1),exprs); if (!ok) { break } model.rpar=[FR]; model.equations.parameters[2-1]=list(FR); graphics.exprs=exprs; x.graphics=graphics; x.model=model; break } } } /* autogenerated from "macros/Electrical/VoltageSensor.sci" */ function VoltageSensor() { VoltageSensor.prototype.define = function VoltageSensor() { model=scicos_model(); model.in1=1; model.out=[1,1]; model.sim="VoltageSensor"; model.blocktype="c"; model.dep_ut=[true,false]; mo=modelica(); mo.model="VoltageSensor"; mo.inputs="p"; mo.outputs=["n","v"]; model.equations=mo; exprs=[]; gr_i=[]; x=standard_define([2,2],model,exprs,list(gr_i,0)); x.graphics.in_implicit=["I"]; x.graphics.out_implicit=["I","E"]; } VoltageSensor.prototype.details = function VoltageSensor() { } VoltageSensor.prototype.get = function VoltageSensor() { } VoltageSensor.prototype.set = function VoltageSensor() { x=arg1; } } /* autogenerated from "macros/Electrical/VariableResistor.sci" */ function VariableResistor() { VariableResistor.prototype.define = function VariableResistor() { model=scicos_model(); model.sim="VariableResistor"; model.blocktype="c"; model.dep_ut=[true,false]; mo=modelica(); mo.model="VariableResistor"; mo.inputs=["p","R"]; mo.outputs="n"; model.equations=mo; model.in1=ones(size(mo.inputs,"*"),1); model.out=ones(size(mo.outputs,"*"),1); exprs=[]; gr_i=[]; x=standard_define([2,2],model,exprs,list(gr_i,0)); x.graphics.in_implicit=["I","E"]; x.graphics.out_implicit=["I"]; } VariableResistor.prototype.details = function VariableResistor() { } VariableResistor.prototype.get = function VariableResistor() { } VariableResistor.prototype.set = function VariableResistor() { x=arg1; } } /* autogenerated from "macros/Electrical/Switch.sci" */ function Switch() { Switch.prototype.define = function Switch() { model=scicos_model(); Ron=0.01; Roff=1e5; S=["Ron","Roff"]; Z=eval(S); model.sim="Switch"; model.blocktype="c"; model.dep_ut=[true,false]; mo=modelica(); mo.model=model.sim; mo.inputs=["p","inp"]; mo.outputs="n"; mo.parameters=list(S,Z); model.equations=mo; model.in1=ones(size(mo.inputs,"*"),1); model.out=ones(size(mo.outputs,"*"),1); model.rpar=Z; exprs=string(Z); gr_i=[]; x=standard_define([2,2],model,exprs,list(gr_i,0)); x.graphics.in_implicit=["I","E"]; x.graphics.out_implicit=["I"]; } Switch.prototype.details = function Switch() { } Switch.prototype.get = function Switch() { } Switch.prototype.set = function Switch() { x=arg1; graphics=arg1.graphics; exprs=graphics.exprs; model=arg1.model; while (true) { [ok,Ron,Roff,exprs]=scicos_getvalue("Set non-ideal electrical switch parameters",["Resistance in On state (Ohm)","Resistance in Off state (Ohm)"],list("vec",1,"vec",1),exprs); if (!ok) { break } model.equations.parameters[2-1]=list(Ron,Roff); graphics.exprs=exprs; x.graphics=graphics; x.model=model; break } } } /* autogenerated from "macros/Electrical/MOTOR.sci" */ function MOTOR() { MOTOR.prototype.define = function MOTOR() { model=scicos_model(); model.out=[1,1]; model.in1=[1]; model.sim="motor"; model.blocktype="c"; model.dep_ut=[true,false]; gr_i=[]; exprs=""; x=standard_define([2,2],model,exprs,gr_i); x.graphics.out_implicit=["I","I"]; x.graphics.in_implicit=["I"]; } MOTOR.prototype.details = function MOTOR() { } MOTOR.prototype.get = function MOTOR() { } MOTOR.prototype.set = function MOTOR() { x=arg1; } } /* autogenerated from "macros/Electrical/NMOS.sci" */ function NMOS() { NMOS.prototype.define = function NMOS() { model=scicos_model(); W=20.e-6; L=6.e-6; Beta=0.041e-3; Vt=0.8; K2=1.144; K5=0.7311; dW=-2.5e-6; dL=-1.5e-6; RDS=1.e+7; model.sim="NMOS"; model.blocktype="c"; model.dep_ut=[true,false]; mo=modelica(); mo.model="NMOS"; mo.outputs=["D","B","S"]; mo.inputs="G"; mo.parameters=list(["W","L","Beta","Vt","K2","K5","dW","dL","RDS"],[W,L,Beta,Vt,K2,K5,dW,dL,RDS]); model.equations=mo; model.in1=ones(size(mo.inputs,"*"),1); model.out=ones(size(mo.outputs,"*"),1); exprs=[string(W),string(L),string(Beta),string(Vt),string(K2),string(K5),string(dW),string(dL),string(RDS)]; gr_i=[]; x=standard_define([2,2],model,exprs,gr_i); x.graphics.in_implicit=["I"]; x.graphics.out_implicit=["I","I","I"]; } NMOS.prototype.details = function NMOS() { } NMOS.prototype.get = function NMOS() { } NMOS.prototype.set = function NMOS() { x=arg1; graphics=arg1.graphics; exprs=graphics.exprs; model=arg1.model; while (true) { [ok,W,L,Beta,Vt,K2,K5,dW,dL,RDS,exprs]=scicos_getvalue("Set NMOS Transistor block parameters",["Width [m]","Length [m]","Transconductance parameter [A/(V*V)]","Zero bias threshold voltage [V]","Bulk threshold parameter","Reduction of pinch-off region","Narrowing of channel [m]","Shortening of channel [m]","Drain-Source-Resistance [Ohm]"],list("vec",-1,"vec",-1,"vec",-1,"vec",-1,"vec",-1,"vec",-1,"vec",-1,"vec",-1,"vec",-1),exprs); if (!ok) { break } model.equations.parameters[2-1]=list(W,L,Beta,Vt,K2,K5,dW,dL,RDS); graphics.exprs=exprs; x.graphics=graphics; x.model=model; break } } } /* autogenerated from "macros/Electrical/VsourceAC.sci" */ function VsourceAC() { VsourceAC.prototype.define = function VsourceAC() { model=scicos_model(); model.in1=[1]; model.out=[1]; VA=220; FR=50; model.rpar=[VA,FR]; model.sim="VsourceAC"; model.blocktype="c"; model.dep_ut=[true,false]; mo=modelica(); mo.model="VsourceAC"; mo.inputs="p"; mo.outputs="n"; mo.parameters=list(["VA","f"],list(VA,FR)); model.equations=mo; exprs=[string(VA),string(FR)]; gr_i=[]; x=standard_define([2,2],model,exprs,list(gr_i,0)); x.graphics.in_implicit=["I"]; x.graphics.out_implicit=["I"]; } VsourceAC.prototype.details = function VsourceAC() { } VsourceAC.prototype.get = function VsourceAC() { } VsourceAC.prototype.set = function VsourceAC() { x=arg1; graphics=arg1.graphics; exprs=graphics.exprs; model=arg1.model; while (true) { [ok,VA,FR,exprs]=scicos_getvalue("Set voltage source parameter",["Amplitude (Volt)","Frequency (Hz)"],list("vec",-1,"vec",-1),exprs); if (!ok) { break } model.rpar=[VA,FR]; model.equations.parameters[2-1]=list(VA,FR); graphics.exprs=exprs; x.graphics=graphics; x.model=model; break } } } /* autogenerated from "macros/Electrical/OpAmp.sci" */ function OpAmp() { OpAmp.prototype.define = function OpAmp() { S=[]; Z=[]; model=scicos_model(); model.sim="OpAmp"; model.blocktype="c"; model.dep_ut=[true,false]; mo=modelica(); mo.model=model.sim; mo.inputs=["in_p","in_n"]; mo.outputs=["out"]; mo.parameters=list(S,Z); model.equations=mo; model.in1=ones(size(mo.inputs,"*"),1); model.out=ones(size(mo.outputs,"*"),1); model.rpar=Z; exprs=string(Z); gr_i=[]; x=standard_define([3,5],model,exprs,gr_i); x.graphics.in_implicit=["I","I"]; x.graphics.out_implicit=["I"]; } OpAmp.prototype.details = function OpAmp() { } OpAmp.prototype.get = function OpAmp() { } OpAmp.prototype.set = function OpAmp() { x=arg1; graphics=arg1.graphics; exprs=graphics.exprs; model=arg1.model; while (false) { [ok,OLGain,SatH,SatL,exprs]=scicos_getvalue("Set the Operational Amplifier parameters",["Open Loop Gain","Positive saturation voltage","Negative saturation voltage"],list("vec",1,"vec",1,"vec",1),exprs); if (!ok) { break } model.equations.parameters[2-1]=list(OLGain,SatH,SatL); graphics.exprs=exprs; x.graphics=graphics; x.model=model; break } } } /* autogenerated from "macros/Electrical/Capacitor.sci" */ function Capacitor() { Capacitor.prototype.define = function Capacitor() { model=scicos_model(); C=0.01; v=0; model.rpar=[C,v]; model.sim="Capacitor"; model.blocktype="c"; model.dep_ut=[true,false]; mo=modelica(); mo.model="Capacitor"; mo.inputs="p"; mo.outputs="n"; mo.parameters=list(["C","v"],list(C,v),[0,1]); model.equations=mo; model.in1=ones(size(mo.inputs,"*"),1); model.out=ones(size(mo.outputs,"*"),1); exprs=string([C,v]); gr_i=[]; x=standard_define([2,1.1],model,exprs,list(gr_i,0)); x.graphics.in_implicit=["I"]; x.graphics.out_implicit=["I"]; } Capacitor.prototype.details = function Capacitor() { } Capacitor.prototype.get = function Capacitor() { } Capacitor.prototype.set = function Capacitor() { x=arg1; graphics=arg1.graphics; exprs=graphics.exprs; model=arg1.model; while (true) { [ok,C,v,exprs]=scicos_getvalue("Set Capacitor block parameter",["C (F)","Initial Voltage"],list("vec",1,"vec",1),exprs); if (!ok) { break } model.rpar=C; model.equations.parameters[2-1]=list(C,v); graphics.exprs=exprs; x.graphics=graphics; x.model=model; break } } } /* autogenerated from "macros/Electrical/Gyrator.sci" */ function Gyrator() { Gyrator.prototype.define = function Gyrator() { ModelName="Gyrator"; PrametersValue=[1,1]; ParametersName=["G1","G2"]; model=scicos_model(); Typein=[]; Typeout=[]; MI=[]; MO=[]; P=[2.5,90,2,0,2.5,10,2,0,97.5,90,-2,0,97.5,10,-2,0]; PortName=["p1","n1","p2","n2"]; for (i=1;i<=size(P,"r");i+=1) { if (P(i,3)==1) { Typein=[Typein,"E"]; MI=[MI,PortName(i)]; } if (P(i,3)==2) { Typein=[Typein,"I"]; MI=[MI,PortName(i)]; } if (P(i,3)==-1) { Typeout=[Typeout,"E"]; MO=[MO,PortName(i)]; } if (P(i,3)==-2) { Typeout=[Typeout,"I"]; MO=[MO,PortName(i)]; } } model=scicos_model(); mo=modelica(); model.sim=ModelName; mo.inputs=MI; mo.outputs=MO; model.rpar=PrametersValue; mo.parameters=list(ParametersName,PrametersValue,zeros(ParametersName)); exprs=["1","1"]; gr_i=[]; model.blocktype="c"; model.dep_ut=[false,true]; mo.model=ModelName; model.equations=mo; model.in1=ones(size(MI,"*"),1); model.out=ones(size(MO,"*"),1); x=standard_define([2,2],model,exprs,list(gr_i,0)); x.graphics.in_implicit=Typein; x.graphics.out_implicit=Typeout; } Gyrator.prototype.details = function Gyrator() { } Gyrator.prototype.get = function Gyrator() { } Gyrator.prototype.set = function Gyrator() { x=arg1; graphics=arg1.graphics; exprs=graphics.exprs; model=arg1.model; x=arg1; exprs=x.graphics.exprs; while (true) { [ok,G1,G2,exprs]=scicos_getvalue(["Set Gyrator block parameters:","","G1: Gyration conductance","G2: Gyration conductance"],["G1","G2"],list("vec",1,"vec",1),exprs); if (!ok) { break } x.model.equations.parameters[2-1]=list(G1,G2); x.graphics.exprs=exprs; break } } } /* autogenerated from "macros/Misc/DEADBAND.sci" */ function DEADBAND() { DEADBAND.prototype.define = function DEADBAND() { minp=-.5; maxp=.5; rpar=[maxp,minp]; model=scicos_model(); model.sim=list("deadband",4); model.in1=1; model.nzcross=2; model.nmode=1; model.out=1; model.rpar=rpar; model.blocktype="c"; model.dep_ut=[true,false]; exprs=[string(maxp),string(minp),string(model.nmode)]; gr_i=[]; x=standard_define([2,2],model,exprs,gr_i); } DEADBAND.prototype.details = function DEADBAND() { } DEADBAND.prototype.get = function DEADBAND() { } DEADBAND.prototype.set = function DEADBAND() { x=arg1; graphics=arg1.graphics; exprs=graphics.exprs; model=arg1.model; while (true) { [ok,maxp,minp,zeroc,exprs]=scicos_getvalue("Set Deadband parameters",["End of dead band","Start of dead band","zero crossing (0:no, 1:yes)"],list("vec",1,"vec",1,"vec",1),exprs); if (!ok) { break } if (maxp<=minp) { message("Upper limit must be > Lower limit"); } else { rpar=[maxp,minp]; model.rpar=rpar; if (zeroc!=0) { model.nzcross=2; model.nmode=1; } else { model.nzcross=0; model.nmode=0; } graphics.exprs=exprs; x.graphics=graphics; x.model=model; break } } } } /* autogenerated from "macros/Misc/SUPER_f.sci" */ function SUPER_f() { SUPER_f.prototype.define = function SUPER_f() { scs=scicos_diagram(); scs.props.title="Super Block"; in1=IN_f("define"); in1.graphics.orig=[40,40]; in1.graphics.sz=[20,20]; out=OUT_f("define"); out.graphics.orig=[240,40]; out.graphics.sz=[20,20]; scs.objs[1-1]=in1; scs.objs[2-1]=out; model=scicos_model(); model.sim="super"; model.in1=1; model.out=1; model.rpar=scs; model.blocktype="h"; model.dep_ut=[false,false]; gr_i=[]; x=standard_define([2,2],model,[],gr_i); } SUPER_f.prototype.details = function SUPER_f() { } SUPER_f.prototype.get = function SUPER_f() { } SUPER_f.prototype.set = function SUPER_f() { xcos(arg1.model.rpar); } } /* autogenerated from "macros/Misc/fortran_block.sci" */ function fortran_block() { fortran_block.prototype.define = function fortran_block() { model=scicos_model(); model.sim=list(" ",1001); model.in1=1; model.out=1; model.evtin=[]; model.evtout=[]; model.state=[]; model.dstate=[]; model.rpar=[]; model.ipar=0; model.blocktype="c"; model.firing=[]; model.dep_ut=[true,false]; funam="forty"; label=list([sci2exp(model.in1),sci2exp(model.out),strcat(sci2exp(model.rpar)),funam],list([])); gr_i=[]; x=standard_define([4,2],model,label,gr_i); } fortran_block.prototype.details = function fortran_block() { } fortran_block.prototype.get = function fortran_block() { } fortran_block.prototype.set = function fortran_block() { x=arg1; model=arg1.model; graphics=arg1.graphics; label=graphics.exprs; while (true) { [ok,i,o,rpar,funam,lab]=scicos_getvalue("Set fortran_block parameters",["input ports sizes","output port sizes","System parameters vector","function name"],list("vec",-1,"vec",-1,"vec",-1,"str",-1),label(1)); if (!ok) { break } if (funam==" ") { break } label[1-1]=lab; rpar=rpar.slice(); i=int(i.slice()); ni=size(i,1); o=int(o.slice()); no=size(o,1); tt=label[2-1]; if (model.sim(1)!=funam||size(model.in1,"*")!=size(i,"*")||size(model.out,"*")!=size(o,"*")) { tt=[]; } [ok,tt]=FORTR(funam,tt,i,o); if (!ok) { break } [model,graphics,ok]=check_io(model,graphics,i,o,[],[]); if (ok) { model.sim[1-1]=funam; model.rpar=rpar; label[2-1]=tt; x.model=model; graphics.exprs=label; x.graphics=graphics; break } } } } /* autogenerated from "macros/Misc/DIFF_f.sci" */ function DIFF_f() { DIFF_f.prototype.define = function DIFF_f() { x0=[0,0]; model=scicos_model(); model.sim=list("diffblk",10001); model.in1=1; model.out=1; model.state=x0; model.blocktype="c"; model.dep_ut=[false,true]; exprs=[strcat(sci2exp(x0[1-1])),strcat(sci2exp(x0[2-1]))]; gr_i=[]; x=standard_define([2,2],model,exprs,gr_i); } DIFF_f.prototype.details = function DIFF_f() { } DIFF_f.prototype.get = function DIFF_f() { } DIFF_f.prototype.set = function DIFF_f() { x=arg1; graphics=arg1.graphics; exprs=graphics.exprs; model=arg1.model; while (true) { [ok,x0,xd0,exprs]=scicos_getvalue("Set continuous linear system parameters",["Initial state","Initial Derivative"],list("vec",1,"vec",1),exprs); if (!ok) { break } graphics.exprs=exprs; model.state=[x0.slice(),xd0.slice()]; x.graphics=graphics; x.model=model; break } x.model.firing=[]; } } /* autogenerated from "macros/Misc/BOUNCE.sci" */ function BOUNCE() { BOUNCE.prototype.define = function BOUNCE() { n=2; k=1; ipar=[]; for (i=1;i<=n;i+=1) { for (j=i+1;j<=n;j+=1) { ipar[k-1]=i; k=k+1; ipar[k-1]=j; k=k+1; } } walls=[0,5,0,5]; x=[2,2.5]; xd=[0,0]; y=[3,5]; yd=[0,0]; g=9.81; C=0; rpar1=ones(n,1); rpar2=rpar1; state=[x,xd,y,yd]; state=transpose(state); model=scicos_model(); model.sim=list("bounce_ball",4); model.in1=[]; model.out=[n,n]; model.state=state.slice(); model.rpar=[rpar1,rpar2,walls,g,C]; model.ipar=ipar; model.nzcross=n*(n-1)/2+4*n; model.blocktype="c"; model.dep_ut=[false,true]; exprs=[strcat(sci2exp(rpar1)),strcat(sci2exp(rpar2)),strcat(sci2exp(walls)),strcat(sci2exp(x)),strcat(sci2exp(xd)),strcat(sci2exp(y)),strcat(sci2exp(yd))]; gr_i=[]; x=standard_define([3,2],model,exprs,gr_i); } BOUNCE.prototype.details = function BOUNCE() { } BOUNCE.prototype.get = function BOUNCE() { } BOUNCE.prototype.set = function BOUNCE() { x=arg1; graphics=arg1.graphics; exprs=graphics.exprs; model=arg1.model; if (size(exprs,"*")<9) { exprs[8-1]="9.81"; exprs[9-1]="0"; } while (true) { [ok,rpar1,rpar2,walls,xt,xd,y,yd,g,C,exprs]=scicos_getvalue(["Set Bounce Block"],["Mass","Radius","[xmin,xmax,ymin,ymax]","xpos","xdpos","ypos","ydpos","g (gravity)","C (aerodynamic coeff"],list("vec",-1,"vec",-1,"vec",-1,"vec",-1,"vec",-1,"vec",-1,"vec",-1,"vec",1,"vec",1),exprs); if (!ok) { break } xt=xt.slice(); y=y.slice(); xd=xd.slice(); yd=yd.slice(); rpar1=rpar1.slice(); rpar2=rpar2.slice(); n=size(xt,"*"); walls=walls.slice(); if (walls[1-1]>walls[2-1]) { walls=walls[[2,1]-1]; } if (walls[3-1]>walls[3-1]) { walls=walls[[3,4]-1]; } if (n!=size(y,"*")||n!=size(rpar1,"*")||n!=size(rpar2,"*")||n!=size(xd,"*")||n!=size(yd,"*")) { message("All vectors must have equal size"); ok=false; } else if (!(min([rpar1,rpar2])>0)) { message("Mass and radius must be >0"); ok=false; } if (!ok) { break } [model,graphics,ok]=check_io(model,graphics,[],[n,n],[],[]); if (ok) { k=1; ipar=[]; for (i=1;i<=n;i+=1) { for (j=i+1;j<=n;j+=1) { ipar[k-1]=i; k=k+1; ipar[k-1]=j; k=k+1; } } model.rpar=[rpar1,rpar2,walls,g,C]; model.ipar=ipar; state=[xt,xd,y,yd]; state=transpose(state); model.state=state.slice(); model.nzcross=n*(n-1)/2+4*n; graphics.exprs=exprs; x.graphics=graphics; x.model=model; break } } } } /* autogenerated from "macros/Misc/scifunc_block_m.sci" */ function scifunc_block_m() { scifunc_block_m.prototype.define = function scifunc_block_m() { in1=1; out=1; clkin=[]; clkout=[]; x0=[]; z0=[]; typ="c"; auto=[]; rpar=[]; it=1; model=scicos_model(); model.sim=list("scifunc",3); model.in1=in1; model.in2=in1; model.intyp=it; model.out=out; model.out2=out; model.outtyp=it; model.evtin=clkin; model.evtout=clkout; model.state=x0; model.dstate=z0; model.rpar=rpar; model.ipar=0; model.opar=list(); model.blocktype=typ; model.firing=auto; model.dep_ut=[true,false]; exprs=list([sci2exp([in1,in1]),sci2exp([out,out]),sci2exp(clkin),sci2exp(clkout),strcat(sci2exp(x0)),strcat(sci2exp(z0)),strcat(sci2exp(rpar)),sci2exp(auto),sci2exp(0)],list("y1=sin(u1)"," "," ","y1=sin(u1)"," "," "," ")); gr_i=[]; x=standard_define([4,2],model,exprs,gr_i); } scifunc_block_m.prototype.details = function scifunc_block_m() { } scifunc_block_m.prototype.get = function scifunc_block_m() { } scifunc_block_m.prototype.set = function scifunc_block_m() { needcompile=0; x=arg1; model=arg1.model; graphics=arg1.graphics; exprs=graphics.exprs; while (true) { [ok,i,o,ci,co,xx,z,rpar,auto0,deptime,lab]=scicos_getvalue(["Set scifunc_block parameters","only regular blocks supported"],["input ports sizes","output port sizes","input event ports sizes","output events ports sizes","initial continuous state","initial discrete state","System parameters vector","initial firing vector (<0 for no firing)","is block always active (0:no, 1:yes)"],list("mat",[-1,2],"mat",[-2,2],"vec",-1,"vec",-1,"vec",-1,"vec",-1,"vec",-1,"vec",-1,"vec",1),exprs[1-1]); if (!ok) { break } exprs[1-1]=lab; xx=xx.slice(); z=z.slice(); rpar=rpar.slice(); it=ones(1,size(i,1)); ot=ones(1,size(o,1)); nrp=prod(size(rpar)); ni=size(i,1); no=size(o,1); ci=int(ci.slice()); nci=size(ci,1); co=int(co.slice()); nco=size(co,1); [ok,tt,dep_ut]=genfunc2(exprs[2-1],i,o,nci,nco,size(xx,1),size(z,1),nrp,"c"); dep_ut[2-1]=(1==deptime); if (!ok) { break } [model,graphics,ok]=set_io(model,graphics,list(i,it),list(o,ot),ci,co); if (ok) { auto=auto0; model.state=xx; model.dstate=z; model.rpar=rpar; if (model.ipar!=0) { model.opar=model.ipar; model.ipar=0; } if (or(model.opar!=tt)) { needcompile=4; } model.opar=tt; model.firing=auto; model.dep_ut=dep_ut; x.model=model; exprs[2-1]=tt; graphics.exprs=exprs; x.graphics=graphics; break } } needcompile=resume(needcompile) } } /* autogenerated from "macros/Misc/c_block.sci" */ function c_block() { c_block.prototype.define = function c_block() { in1=1; out=1; clkin=[]; clkout=[]; x0=[]; z0=[]; typ="c"; auto=[]; rpar=[]; funam="toto"; model=scicos_model(); model.sim=list(" ",2001); model.in1=in1; model.out=out; model.evtin=clkin; model.evtout=clkout; model.state=x0; model.dstate=z0; model.rpar=rpar; model.ipar=0; model.blocktype=typ; model.firing=auto; model.dep_ut=[true,false]; label=list([sci2exp(in1),sci2exp(out),strcat(sci2exp(rpar)),funam],list([])); gr_i=[]; x=standard_define([3,2],model,label,gr_i); } c_block.prototype.details = function c_block() { } c_block.prototype.get = function c_block() { } c_block.prototype.set = function c_block() { x=arg1; model=arg1.model; graphics=arg1.graphics; label=graphics.exprs; while (true) { [ok,i,o,rpar,funam,lab]=scicos_getvalue("Set C_block parameters",["input ports sizes","output port sizes","System parameters vector","function name"],list("vec",-1,"vec",-1,"vec",-1,"str",-1),label(1)); if (!ok) { break } if (funam==" ") { break } label[1-1]=lab; rpar=rpar.slice(); i=int(i.slice()); ni=size(i,1); o=int(o.slice()); no=size(o,1); tt=label[2-1]; if (model.sim(1)!=funam||size(model.in1,"*")!=size(i,"*")||size(model.out,"*")!=size(o,"*")) { tt=[]; } [ok,tt]=CFORTR(funam,tt,i,o); if (!ok) { break } [model,graphics,ok]=check_io(model,graphics,i,o,[],[]); if (ok) { model.sim[1-1]=funam; model.rpar=rpar; label[2-1]=tt; x.model=model; graphics.exprs=label; x.graphics=graphics; break } } } } /* autogenerated from "macros/Misc/CONSTRAINT2_c.sci" */ function CONSTRAINT2_c() { CONSTRAINT2_c.prototype.define = function CONSTRAINT2_c() { x0=[0]; xd0=[0]; id=[0]; model=scicos_model(); model.sim=list("constraint_c",10004); model.in1=1; model.out=[1,1]; model.state=[x0,xd0]; model.ipar=id; model.blocktype="c"; model.dep_ut=[false,true]; exprs=list(strcat(sci2exp(x0)),strcat(sci2exp(xd0)),strcat(sci2exp(id))); gr_i=[]; x=standard_define([3,2],model,exprs,gr_i); } CONSTRAINT2_c.prototype.details = function CONSTRAINT2_c() { } CONSTRAINT2_c.prototype.get = function CONSTRAINT2_c() { } CONSTRAINT2_c.prototype.set = function CONSTRAINT2_c() { x=arg1; graphics=arg1.graphics; exprs=graphics.exprs; model=arg1.model; while (true) { ask_again=false; [ok,x0,xd0,id,exprs]=scicos_getvalue("Set Constraint block parameters",["Initial guess values of states x","Initial guess values of derivative x\'","Id(i)=1: if x\'(i) is present in the feedback, else Id(i)=0"],list("vec",-1,"vec",-1,"vec",-1),exprs); if (!ok) { break } x0=x0.slice(); N=size(x0,"*"); xd0=xd0.slice(); Nxd=size(xd0,"*"); id=id.slice(); Nid=size(id,"*"); if ((N!=Nxd)||(N!=Nid)) { message("incompatible sizes, states, their derivatives, and ID should be the same size "); ask_again=true; } if ((N<=0&&!ask_again)) { x_message("number of states (constraints) must be > 0 "); ask_again=true; } if ((!ask_again)) { for (i=1;i<=N;i+=1) { if (!((id[i-1]==0)||(id[i-1]==1))) { ask_again=true; x_message(["Id(i) must be either","0 when x\'(i) is not present in the feedback","1: when x\'(i) is present in the feedback"]); break } if ((id[i-1]==0)) { id[i-1]=-1; } } } if (!ask_again) { graphics.exprs=exprs; model.state=[x0,xd0]; model.out=[N,N]; model.in1=N; model.ipar=id; x.graphics=graphics; x.model=model; break } } } } /* autogenerated from "macros/Misc/generic_block.sci" */ function generic_block() { generic_block.prototype.define = function generic_block() { model=scicos_model(); function_name="sinblk"; funtyp=1; model.sim=list(function_name,funtyp); model.in1=1; model.out=1; model.evtin=[]; model.evtout=[]; model.state=[]; model.dstate=[]; model.rpar=[]; model.ipar=[]; model.blocktype="c"; model.firing=[]; model.dep_ut=[true,false]; label=[function_name,sci2exp(funtyp),sci2exp(model.in1),sci2exp(model.out),sci2exp(model.evtin),sci2exp(model.evtout),sci2exp(model.state),sci2exp(model.dstate),sci2exp(model.rpar),sci2exp(model.ipar),sci2exp(model.firing),"y","n"]; gr_i=[]; x=standard_define([2,2],model,label,gr_i); } generic_block.prototype.details = function generic_block() { } generic_block.prototype.get = function generic_block() { } generic_block.prototype.set = function generic_block() { x=arg1; model=arg1.model; graphics=arg1.graphics; label=graphics.exprs; if (size(label,"*")==14) { label[9-1]=[]; } while (true) { [ok,function_name,funtyp,i,o,ci,co,xx,z,rpar,ipar,auto0,depu,dept,lab]=scicos_getvalue("Set GENERIC block parameters",["simulation function","function type (0,1,2,..)","input ports sizes","output port sizes","input event ports sizes","output events ports sizes","initial continuous state","initial discrete state","Real parameters vector","Integer parameters vector","initial firing vector (<0 for no firing)","direct feedthrough (y or n)","time dependence (y or n)"],list("str",1,"vec",1,"vec",-1,"vec",-1,"vec",-1,"vec",-1,"vec",-1,"vec",-1,"vec",-1,"vec",-1,"vec","sum(%6)","str",1,"str",1),label); if (!ok) { break } label=lab; function_name=stripblanks(function_name); xx=xx.slice(); z=z.slice(); rpar=rpar.slice(); ipar=int(ipar.slice()); i=int(i.slice()); o=int(o.slice()); ci=int(ci.slice()); co=int(co.slice()); funtyp=int(funtyp); if (funtyp<0) { message("function type cannot be negative"); ok=false; } if ([ci,co]!=[]) { if (max([ci,co])>1) { message("vector event links not supported"); ok=false; } } depu=stripblanks(depu); if (part(depu,1)=="y") { depu=true; } else { depu=false; } dept=stripblanks(dept); if (part(dept,1)=="y") { dept=true; } else { dept=false; } dep_ut=[depu,dept]; if (ok) { [model,graphics,ok]=check_io(model,graphics,i,o,ci,co); } if (ok) { if (funtyp==3) { needcompile=4; } model.sim=list(function_name,funtyp); model.state=xx; model.dstate=z; model.rpar=rpar; model.ipar=ipar; model.firing=auto0; model.dep_ut=dep_ut; arg1.model=model; graphics.exprs=label; arg1.graphics=graphics; x=arg1; break } } needcompile=resume(needcompile) } } /* autogenerated from "macros/Misc/RATELIMITER.sci" */ function RATELIMITER() { RATELIMITER.prototype.define = function RATELIMITER() { minp=-1; maxp=1; rpar=[maxp,minp]; model=scicos_model(); model.sim=list("ratelimiter",4); model.in1=1; model.out=1; model.rpar=rpar; model.blocktype="c"; model.dep_ut=[true,false]; exprs=[string(maxp),string(minp)]; gr_i=[]; x=standard_define([3.5,2],model,exprs,gr_i); } RATELIMITER.prototype.details = function RATELIMITER() { } RATELIMITER.prototype.get = function RATELIMITER() { } RATELIMITER.prototype.set = function RATELIMITER() { x=arg1; graphics=arg1.graphics; exprs=graphics.exprs; model=arg1.model; while (true) { [ok,maxp,minp,exprs]=scicos_getvalue("Set rate limiter parameters",["max slope","min slope"],list("vec",1,"vec",1),exprs); if (!ok) { break } if (maxp<=minp||maxp<=0||minp>=0) { message("We must have max_slope> 0 > min_slope."); } else { rpar=[maxp,minp]; model.rpar=rpar; graphics.exprs=exprs; x.graphics=graphics; x.model=model; break } } } } /* autogenerated from "macros/Misc/DEBUG.sci" */ function DEBUG() { DEBUG.prototype.define = function DEBUG() { model=scicos_model(); model.sim=list("%debug_scicos",99); model.blocktype="d"; exprs=list("","xcos_debug_gui(flag,block);"); gr_i=[]; x=standard_define([8,2],model,exprs,gr_i); } DEBUG.prototype.details = function DEBUG() { } DEBUG.prototype.get = function DEBUG() { } DEBUG.prototype.set = function DEBUG() { x=arg1; graphics=arg1.graphics; exprs=graphics.exprs; textmp=exprs[2-1]; ok=true; while (1==1) { [txt]=dialog(["Enter scilab instructions for debugging."," Inputs are block and flag, output is block"],textmp); if (txt!=[]) { tt=["block=debug_scicos(block,flag)"]; if (execstr("deff(tt,txt)","errcatch")==0) { warnMode=warning("query"); warning("off"); save(TMPDIR+"/debug_scicos",debug_scicos); warning(warnMode); exprs[2-1]=txt; if ((scicos_debug()!=2&&scicos_debug()!=3)) { scicos_debug(2); } break } else { message(["Error in the instructions",lasterror()]); } } else { ok=false; break } } if (ok) { graphics.exprs=exprs; x.graphics=graphics; } } } /* autogenerated from "macros/Misc/RELATIONALOP.sci" */ function RELATIONALOP() { RELATIONALOP.prototype.define = function RELATIONALOP() { ipar=[2]; label="<"; model=scicos_model(); model.sim=list("relationalop",4); model.in1=[1,1]; model.out=1; model.ipar=ipar; model.blocktype="c"; model.dep_ut=[true,false]; exprs=[string(ipar),string(0)]; gr_i=[]; x=standard_define([2,2],model,exprs,gr_i); x.graphics.style=["fontSize=13;fontStyle=1;displayedLabel="+label]; } RELATIONALOP.prototype.details = function RELATIONALOP() { } RELATIONALOP.prototype.get = function RELATIONALOP() { } RELATIONALOP.prototype.set = function RELATIONALOP() { x=arg1; graphics=arg1.graphics; exprs=graphics.exprs; model=arg1.model; if (size(exprs,1)==2) { exprs=[exprs,sci2exp(1)]; } while (true) { [ok,rule,zcr,Datatype,exprs]=scicos_getvalue("Set parameters",["Operator: == (0), ~= (1), < (2), <= (3), > (4), >= (5)","Use zero crossing (no: 0), (yes: 1)","Datatype (1=double 3=int32 ...)"],list("vec",1,"vec",1,"vec",1),exprs); if (!ok) { break } rule=int(rule); if (zcr!=0) { zcr=1; } if ((rule<0)||(rule>5)) { message("Incorrect operator "+string(rule)+" ; must be 0 to 5."); ok=false; } if ((Datatype==1)) { model.sim=list("relational_op",4); } else if ((Datatype==3||Datatype==9)) { model.sim=list("relational_op_i32",4); } else if ((Datatype==4)) { model.sim=list("relational_op_i16",4); } else if ((Datatype==5)) { model.sim=list("relational_op_i8",4); } else if ((Datatype==6)) { model.sim=list("relational_op_ui32",4); } else if ((Datatype==7)) { model.sim=list("relational_op_ui16",4); } else if ((Datatype==8)) { model.sim=list("relational_op_ui8",4); } else { message("Datatype is not supported"); ok=false; } if (ok) { it=Datatype*ones(1,2); ot=Datatype; in1=[-1,-2,-1,-2]; out=[-1,-2]; [model,graphics,ok]=set_io(model,graphics,list(in1,it),list(out,ot),[],[]); } if (ok) { if (rule==0) { label="=="; } else if (rule==1) { label="~="; } else if (rule==2) { label="<"; } else if (rule==3) { label="≤"; } else if (rule==4) { label=">"; } else if (rule==5) { label="≥"; } graphics.exprs=exprs; graphics.style=["fontSize=13;fontStyle=1;displayedLabel="+label]; model.ipar=[rule]; model.nzcross=zcr; model.nmode=zcr; x.graphics=graphics; x.model=model; break } } } } /* autogenerated from "macros/Misc/CONSTRAINT_c.sci" */ function CONSTRAINT_c() { CONSTRAINT_c.prototype.define = function CONSTRAINT_c() { x0=[0,0]; model=scicos_model(); model.sim=list("constraint_c",10004); model.in1=1; model.out=1; model.ipar=0; model.state=x0; model.blocktype="c"; model.dep_ut=[false,true]; exprs="0"; gr_i=[]; x=standard_define([3,2],model,exprs,gr_i); } CONSTRAINT_c.prototype.details = function CONSTRAINT_c() { } CONSTRAINT_c.prototype.get = function CONSTRAINT_c() { } CONSTRAINT_c.prototype.set = function CONSTRAINT_c() { x=arg1; graphics=arg1.graphics; exprs=graphics.exprs; model=arg1.model; while (true) { [ok,x0,exprs]=scicos_getvalue("Set solver block parameters","Initial guess values",list("vec",-1),exprs); if (!ok) { break } x0=x0.slice(); N=size(x0,"*"); if (N<=0) { message("number of states (constraints) must be > 0 "); } else { [model,graphics,ok]=check_io(model,graphics,N,N,[],[]); if (ok) { graphics.exprs=exprs; model.state=[x0,zeros(N,1)]; model.out=N; model.in1=N; model.ipar=-1*ones(N,1); x.graphics=graphics; x.model=model; break } } } } } /* autogenerated from "macros/Misc/IMPSPLIT_f.sci" */ function IMPSPLIT_f() { IMPSPLIT_f.prototype.define = function IMPSPLIT_f() { model=scicos_model(); model.sim="limpsplit"; mo=modelica(); mo.model="limpsplit"; mo.inputs="n"; mo.outputs=["n","n"]; model.equations=mo; model.in1=ones(size(mo.inputs,"*"),1); model.out=ones(size(mo.outputs,"*"),1); x=standard_define([1,1]/3,model,[],[]); x.graphics.in_implicit=["I"]; x.graphics.out_implicit=["I","I"]; } IMPSPLIT_f.prototype.details = function IMPSPLIT_f() { } IMPSPLIT_f.prototype.get = function IMPSPLIT_f() { } IMPSPLIT_f.prototype.set = function IMPSPLIT_f() { x=arg1; } } /* autogenerated from "macros/Misc/generic_block2.sci" */ function generic_block2() { generic_block2.prototype.define = function generic_block2() { model=scicos_model(); function_name="sinblk"; funtyp=1; model.sim=list(function_name,funtyp); model.in1=1; model.out=1; model.evtin=[]; model.evtout=[]; model.state=[]; model.dstate=[]; model.rpar=[]; model.ipar=[]; model.blocktype="c"; model.firing=[]; model.dep_ut=[true,false]; label=[function_name,sci2exp(funtyp),sci2exp(model.in1),sci2exp(model.out),sci2exp(model.evtin),sci2exp(model.evtout),sci2exp(model.state),sci2exp(model.dstate),sci2exp(model.rpar),sci2exp(model.ipar),sci2exp(model.nmode),sci2exp(model.nzcross),sci2exp(model.firing),"y","n"]; gr_i=[]; x=standard_define([2,2],model,label,gr_i); } generic_block2.prototype.details = function generic_block2() { } generic_block2.prototype.get = function generic_block2() { } generic_block2.prototype.set = function generic_block2() { x=arg1; model=arg1.model; graphics=arg1.graphics; label=graphics.exprs; if (size(label,"*")==14) { label[9-1]=[]; } while (true) { [ok,function_name,funtyp,i,o,ci,co,xx,z,rpar,ipar,nmode,nzcr,auto0,depu,dept,lab]=scicos_getvalue("Set GENERIC block parameters",["simulation function","function type (0,1,2,..)","input ports sizes","output port sizes","input event ports sizes","output events ports sizes","initial continuous state","initial discrete state","Real parameters vector","Integer parameters vector","number of modes","number of zero_crossings","initial firing vector (<0 for no firing)","direct feedthrough (y or n)","time dependence (y or n)"],list("str",1,"vec",1,"vec",-1,"vec",-1,"vec",-1,"vec",-1,"vec",-1,"vec",-1,"vec",-1,"vec",-1,"vec",1,"vec",1,"vec","sum(%6)","str",1,"str",1),label); if (!ok) { break } label=lab; function_name=stripblanks(function_name); xx=xx.slice(); z=z.slice(); rpar=rpar.slice(); ipar=int(ipar.slice()); i=int(i.slice()); o=int(o.slice()); ci=int(ci.slice()); co=int(co.slice()); funtyp=int(funtyp); if (funtyp<0) { message("function type cannot be negative"); ok=false; } if ([ci,co]!=[]) { if (max([ci,co])>1) { message("vector event links not supported"); ok=false; } } depu=stripblanks(depu); if (part(depu,1)=="y") { depu=true; } else { depu=false; } dept=stripblanks(dept); if (part(dept,1)=="y") { dept=true; } else { dept=false; } dep_ut=[depu,dept]; if (ok) { [model,graphics,ok]=check_io(model,graphics,i,o,ci,co); } if (ok) { if (funtyp==3) { needcompile=4; } model.sim=list(function_name,funtyp); model.state=xx; model.dstate=z; model.rpar=rpar; model.ipar=ipar; model.firing=auto0; model.nzcross=nzcr; model.nmode=nmode; model.dep_ut=dep_ut; arg1.model=model; graphics.exprs=label; arg1.graphics=graphics; x=arg1; break } } needcompile=resume(needcompile) } } /* autogenerated from "macros/Misc/generic_block3.sci" */ function generic_block3() { generic_block3.prototype.define = function generic_block3() { model=scicos_model(); function_name="sinblk"; funtyp=4; model.sim=list(function_name,funtyp); model.in1=1; model.in2=1; model.intyp=1; model.out=1; model.out2=1; model.outtyp=1; model.dep_ut=[true,false]; label=[function_name,sci2exp(funtyp),sci2exp([model.in1,model.in2]),sci2exp(model.intyp),sci2exp([model.out,model.out2]),sci2exp(model.outtyp),sci2exp(model.evtin),sci2exp(model.evtout),sci2exp(model.state),sci2exp(model.dstate),sci2exp(model.odstate),sci2exp(model.rpar),sci2exp(model.ipar),sci2exp(model.opar),sci2exp(model.nmode),sci2exp(model.nzcross),sci2exp(model.firing),"y","n"]; gr_i=[]; x=standard_define([4,2],model,label,gr_i); } generic_block3.prototype.details = function generic_block3() { } generic_block3.prototype.get = function generic_block3() { } generic_block3.prototype.set = function generic_block3() { x=arg1; model=arg1.model; graphics=arg1.graphics; label=graphics.exprs; if (size(label,"*")==14) { label[9-1]=[]; } while (true) { [ok,function_name,funtyp,in1,it,out,ot,ci,co,xx,z,oz,rpar,ipar,opar,nmode,nzcr,auto0,depu,dept,lab]=scicos_getvalue("Set GENERIC block parameters",["Simulation function","Function type (0,1,2,..)","Input ports sizes","Input ports type","Output port sizes","Output ports type","Input event ports sizes","Output events ports sizes","Initial continuous state","Initial discrete state","Initial object state","Real parameters vector","Integer parameters vector","Object parameters list","Number of modes","Number of zero crossings","Initial firing vector (<0 for no firing)","Direct feedthrough (y or n)","Time dependence (y or n)"],list("str",1,"vec",1,"mat",[-1,2],"vec",-1,"mat",[-1,2],"vec",-1,"vec",-1,"vec",-1,"vec",-1,"vec",-1,"lis",-1,"vec",-1,"vec",-1,"lis",-1,"vec",1,"vec",1,"vec","sum(%8)","str",1,"str",1),label); if (!ok) { break } label=lab; function_name=stripblanks(function_name); xx=xx.slice(); z=z.slice(); rpar=rpar.slice(); ipar=int(ipar.slice()); ci=int(ci.slice()); co=int(co.slice()); funtyp=funtyp; if (funtyp<0) { message("function type cannot be negative"); ok=false; } if ([ci,co]!=[]) { if (max([ci,co])>1) { message("vector event links not supported"); ok=false; } } if (type(opar)!=15) { message("object parameter must be a list"); ok=false; } if (type(oz)!=15) { message("discrete object state must be a list"); ok=false; } depu=stripblanks(depu); if (part(depu,1)=="y") { depu=true; } else { depu=false; } dept=stripblanks(dept); if (part(dept,1)=="y") { dept=true; } else { dept=false; } dep_ut=[depu,dept]; if (ok) { [model,graphics,ok]=set_io(model,graphics,list(in1,it),list(out,ot),ci,co); } if (ok) { if (funtyp==3) { needcompile=4; } model.sim=list(function_name,funtyp); model.state=xx; model.dstate=z; model.odstate=oz; model.rpar=rpar; model.ipar=ipar; model.opar=opar; model.firing=auto0; model.nzcross=nzcr; model.nmode=nmode; model.dep_ut=dep_ut; arg1.model=model; graphics.exprs=label; arg1.graphics=graphics; x=arg1; break } } needcompile=resume(needcompile) } } /* autogenerated from "macros/Misc/DEBUG_SCICOS.sci" */ function DEBUG_SCICOS() { DEBUG_SCICOS.prototype.define = function DEBUG_SCICOS() { x=DEBUG("define"); } DEBUG_SCICOS.prototype.details = function DEBUG_SCICOS() { } DEBUG_SCICOS.prototype.get = function DEBUG_SCICOS() { } DEBUG_SCICOS.prototype.set = function DEBUG_SCICOS() { arg1.gui="DEBUG"; [x,y,typ]=DEBUG("set",arg1); } } /* autogenerated from "macros/Misc/EDGETRIGGER.sci" */ function EDGETRIGGER() { EDGETRIGGER.prototype.define = function EDGETRIGGER() { edge=1; model=scicos_model(); model.sim=list("edgetrig",4); model.in1=1; model.out=1; model.dstate=0; model.nzcross=1; model.ipar=sign(edge); model.blocktype="c"; model.dep_ut=[true,false]; exprs=[string(edge)]; gr_i=[]; x=standard_define([3,2],model,exprs,gr_i); } EDGETRIGGER.prototype.details = function EDGETRIGGER() { } EDGETRIGGER.prototype.get = function EDGETRIGGER() { } EDGETRIGGER.prototype.set = function EDGETRIGGER() { x=arg1; graphics=arg1.graphics; exprs=graphics.exprs; model=arg1.model; while (true) { [ok,edge,exprs]=scicos_getvalue("Set edge trigger block parameters",["rising (1), falling (-1), both (0)"],list("vec",1),exprs); if (!ok) { break } model.ipar=sign(edge); graphics.exprs=exprs; x.graphics=graphics; x.model=model; break } } } /* autogenerated from "macros/Misc/TEXT_f.sci" */ function TEXT_f() { TEXT_f.prototype.define = function TEXT_f() { font=2; siz=1; model=scicos_model(); model.sim="text"; model.rpar="Text"; model.ipar=[font,siz]; exprs=["Text",string(font),string(siz)]; graphics=scicos_graphics(); graphics.orig=[0,0]; graphics.sz=[2,1]; graphics.exprs=exprs; x=mlist(["Text","graphics","model","void","gui"],graphics,model," ","TEXT_f"); } TEXT_f.prototype.details = function TEXT_f() { } TEXT_f.prototype.get = function TEXT_f() { } TEXT_f.prototype.set = function TEXT_f() { x=arg1; graphics=arg1.graphics; orig=graphics.orig; exprs=graphics.exprs; model=arg1.model; if (size(exprs,"*")==1) { exprs=[exprs,"3","1"]; } while (true) { [ok,txt,font,siz,exprs]=scicos_getvalue("Set Text block parameters",["Text","Font number","Font size"],list("str",-1,"vec",1,"vec",1),exprs); if (!ok) { break } if (font<=0||font>6) { message("Font number must be greater than 0 and less than 7"); ok=false; } if (siz<0) { message("Font size must be positive"); ok=false; } if (ok) { graphics.exprs=exprs; gh_winpal=gca(); default_font_style=gh_winpal.font_style; default_font_size=gh_winpal.font_size; default_font_color=gh_winpal.font_color; gh_winpal.font_style=font; gh_winpal.font_size=siz; r=xstringl(0,0,exprs[1-1],evstr(exprs[2-1]),evstr(exprs[3-1])); gh_winpal.font_style=default_font_style; gh_winpal.font_size=default_font_size; gh_winpal.font_color=default_font_color; sz=r.slice(3-1,4); graphics.sz=sz; x.graphics=graphics; ipar=[font,siz]; model.rpar=txt; model.ipar=ipar; x.model=model; break } } } } /* autogenerated from "macros/Misc/HYSTHERESIS.sci" */ function HYSTHERESIS() { HYSTHERESIS.prototype.define = function HYSTHERESIS() { in1=1; ipar=[0]; nzz=2; rpar=[1,0,1,0]; model=scicos_model(); model.sim=list("hystheresis",4); model.in1=in1; model.out=1; model.rpar=rpar; model.nzcross=nzz; model.nmode=1; model.blocktype="c"; model.dep_ut=[true,false]; exprs=[string(rpar),string(sign(nzz))]; gr_i=[]; x=standard_define([2,2],model,exprs,gr_i); } HYSTHERESIS.prototype.details = function HYSTHERESIS() { } HYSTHERESIS.prototype.get = function HYSTHERESIS() { } HYSTHERESIS.prototype.set = function HYSTHERESIS() { x=arg1; graphics=arg1.graphics; exprs=graphics.exprs; model=arg1.model; while (true) { [ok,high_lim,low_lim,out_high,out_low,nzz,exprs]=scicos_getvalue("Set parameters",["switch on at","switch off at","output when on","output when off","use zero crossing: yes (1), no (0)"],list("vec",1,"vec",1,"vec",1,"vec",1,"vec",1),exprs); if (!ok) { break } if (low_lim>high_lim) { message("switch on value must be larger than switch off value"); } else { graphics.exprs=exprs; model.rpar=transpose([high_lim,low_lim,out_high,out_low]); if (nzz>0) { nzz=2; } model.nzcross=nzz; x.graphics=graphics; x.model=model; break } } } } /* autogenerated from "macros/Misc/CBLOCK.sci" */ function CBLOCK() { CBLOCK.prototype.define = function CBLOCK() { in1=1; out=1; clkin=[]; clkout=[]; x0=[]; z0=[]; typ="c"; auto=[]; rpar=[]; ipar=[]; funam="toto"; ng=0; model=scicos_model(); model.sim=list(" ",2004); model.in1=in1; model.out=out; model.evtin=clkin; model.evtout=clkout; model.state=x0; model.dstate=z0; model.rpar=rpar; model.ipar=ipar; model.blocktype=typ; model.firing=auto; model.dep_ut=[true,false]; model.nzcross=ng; label=list(transpose([funam,"n",sci2exp(in1),sci2exp(out),sci2exp(clkin),sci2exp(clkout),sci2exp(x0),sci2exp(0),sci2exp(z0),sci2exp(rpar),sci2exp(ipar),sci2exp(auto),"y","n"]),[]); gr_i=[]; x=standard_define([4,2],model,label,gr_i); } CBLOCK.prototype.details = function CBLOCK() { } CBLOCK.prototype.get = function CBLOCK() { } CBLOCK.prototype.set = function CBLOCK() { x=arg1; model=arg1.model; graphics=arg1.graphics; label=graphics.exprs; while (true) { [ok,function_name,impli,i,o,ci,co,xx,ng,z,rpar,ipar,auto0,depu,dept,lab]=scicos_getvalue("Set C-Block2 block parameters",["simulation function","is block implicit? (y,n)","input ports sizes","output ports sizes","input event ports sizes","output events ports sizes","initial continuous state","number of zero crossing surfaces","initial discrete state","Real parameters vector","Integer parameters vector","initial firing vector (<0 for no firing)","direct feedthrough (y or n)","time dependence (y or n)"],list("str",1,"str",1,"vec",-1,"vec",-1,"vec",-1,"vec",-1,"vec",-1,"vec",1,"vec",-1,"vec",-1,"vec",-1,"vec","sum(%6)","str",1,"str",1),label(1)); if (!ok) { break } label[1-1]=lab; funam=stripblanks(function_name); xx=xx.slice(); z=z.slice(); rpar=rpar.slice(); ipar=int(ipar.slice()); nx=size(xx,1); nz=size(z,1); i=int(i.slice()); o=int(o.slice()); nout=size(o,1); ci=int(ci.slice()); nevin=size(ci,1); co=int(co.slice()); nevout=size(co,1); if (part(impli,1)=="y") { funtyp=12004; } else { funtyp=2004; } if ([ci,co]!=[]) { if (max([ci,co])>1) { message("vector event links not supported"); ok=false; } } depu=stripblanks(depu); if (part(depu,1)=="y") { depu=true; } else { depu=false; } dept=stripblanks(dept); if (part(dept,1)=="y") { dept=true; } else { dept=false; } dep_ut=[depu,dept]; if (funam==" ") { break } if (model.sim(1)!=funam||sign(size(model.state,"*"))!=sign(nx)||sign(size(model.dstate,"*"))!=sign(nz)||model.nzcross!=ng||sign(size(model.evtout,"*"))!=sign(nevout)) { tt=[]; } tt=label[2-1]; while (true) { [ok,tt,cancel]=CFORTR2(funam,tt); if (!ok) { if (cancel) { break } } else { [model,graphics,ok]=check_io(model,graphics,i,o,ci,co); if (ok) { model.sim=list(funam,funtyp); model.in1=i; model.out=o; model.evtin=ci; model.evtout=co; model.state=xx; model.dstate=z; model.rpar=rpar; model.ipar=ipar; model.firing=auto0; model.dep_ut=dep_ut; model.nzcross=ng; label[2-1]=tt; x.model=model; graphics.exprs=label; x.graphics=graphics; break } } } if (ok||cancel) { break } } } } /* autogenerated from "macros/Misc/CBLOCK4.sci" */ function CBLOCK4() { CBLOCK4.prototype.define = function CBLOCK4() { funam="toto"; model=scicos_model(); model.sim=list(" ",2004); model.in1=1; model.in2=1; model.intyp=1; model.out=1; model.out2=1; model.outtyp=1; model.dep_ut=[true,false]; label=list([funam,"n",sci2exp([model.in1,model.in2]),sci2exp(model.intyp),sci2exp([model.out,model.out2]),sci2exp(model.outtyp),sci2exp(model.evtin),sci2exp(model.evtout),sci2exp(model.state),sci2exp(model.dstate),sci2exp(model.odstate),sci2exp(model.rpar),sci2exp(model.ipar),sci2exp(model.opar),sci2exp(model.nmode),sci2exp(model.nzcross),sci2exp(model.firing),"y","n"],[]); gr_i=[]; x=standard_define([4,2],model,label,gr_i); } CBLOCK4.prototype.details = function CBLOCK4() { } CBLOCK4.prototype.get = function CBLOCK4() { } CBLOCK4.prototype.set = function CBLOCK4() { x=arg1; model=arg1.model; graphics=arg1.graphics; label=graphics.exprs; while (true) { [ok,function_name,impli,in1,it,out,ot,ci,co,xx,z,oz,rpar,ipar,opar,nmode,nzcr,auto0,depu,dept,lab]=scicos_getvalue("Set C-Block4 block parameters",["Simulation function","Is block implicit? (y,n)","Input ports sizes","Input ports type","Output port sizes","Output ports type","Input event ports sizes","Output events ports sizes","Initial continuous state","Initial discrete state","Initial object state","Real parameters vector","Integer parameters vector","Object parameters list","Number of modes","Number of zero crossings","Initial firing vector (<0 for no firing)","Direct feedthrough (y or n)","Time dependence (y or n)"],list("str",1,"str",1,"mat",[-1,2],"vec",-1,"mat",[-1,2],"vec",-1,"vec",-1,"vec",-1,"vec",-1,"vec",-1,"lis",-1,"vec",-1,"vec",-1,"lis",-1,"vec",1,"vec",1,"vec","sum(%8)","str",1,"str",1),label(1)); if (!ok) { break } label[1-1]=lab; funam=stripblanks(function_name); xx=xx.slice(); z=z.slice(); rpar=rpar.slice(); ipar=int(ipar.slice()); nx=size(xx,1); nz=size(z,1); ci=int(ci.slice()); nevin=size(ci,1); co=int(co.slice()); nevout=size(co,1); if (part(impli,1)=="y") { funtyp=12004; } else { funtyp=2004; } if ([ci,co]!=[]) { if (max([ci,co])>1) { message("vector event links not supported"); ok=false; } } if (ok) { depu=stripblanks(depu); if (part(depu,1)=="y") { depu=true; } else { depu=false; } dept=stripblanks(dept); if (part(dept,1)=="y") { dept=true; } else { dept=false; } dep_ut=[depu,dept]; if (funam==" ") { break } if (model.sim(1)!=funam||sign(size(model.state,"*"))!=sign(nx)||sign(size(model.dstate,"*"))!=sign(nz)||model.nzcross!=nzcr||sign(size(model.evtout,"*"))!=sign(nevout)) { tt=[]; } tt=label[2-1]; [model,graphics,ok]=set_io(model,graphics,list(in1,it),list(out,ot),ci,co); } if (ok) { while (true) { [ok,tt,cancel]=CC4(funam,tt); if (!ok) { if (cancel) { break } } else { model.sim=list(funam,funtyp); model.state=xx; model.dstate=z; model.odstate=oz; model.rpar=rpar; model.ipar=ipar; model.opar=opar; model.firing=auto0; model.nzcross=nzcr; model.nmode=nmode; model.dep_ut=dep_ut; label[2-1]=tt; x.model=model; graphics.exprs=label; x.graphics=graphics; break } } if (ok||cancel) { break } } } } } /* autogenerated from "macros/Misc/BOUNCEXY.sci" */ function BOUNCEXY() { BOUNCEXY.prototype.define = function BOUNCEXY() { win=-1; imode=1; clrs=[1,2]; siz=[1,1]; xmin=-5; xmax=5; ymin=0; ymax=15; model=scicos_model(); model.sim=list("bouncexy",4); model.in1=[-1,-1]; model.in2=[1,1]; model.intyp=[1,1]; model.evtin=1; z=[]; for (i=1;i<=size(clrs,"*");i+=1) { z[6*(i-1)+1-1]=0; z[6*(i-1)+2-1]=0; z[6*(i-1)+3-1]=2*siz(i); z[6*(i-1)+4-1]=2*siz(i); z[6*(i-1)+5-1]=0.000; z[6*(i-1)+6-1]=64.0*360.000; } model.dstate=z; model.rpar=[xmin,xmax,ymin,ymax]; model.ipar=[win,imode,clrs.slice()]; model.blocktype="d"; model.firing=[]; model.dep_ut=[false,false]; exprs=[strcat(sci2exp(clrs)),strcat(sci2exp(siz)),strcat(sci2exp(win)),strcat(sci2exp(1)),strcat(sci2exp(xmin)),strcat(sci2exp(xmax)),strcat(sci2exp(ymin)),strcat(sci2exp(ymax))]; gr_i=[]; x=standard_define([2,2],model,exprs,gr_i); } BOUNCEXY.prototype.details = function BOUNCEXY() { } BOUNCEXY.prototype.get = function BOUNCEXY() { } BOUNCEXY.prototype.set = function BOUNCEXY() { x=arg1; graphics=arg1.graphics; exprs=graphics.exprs; model=arg1.model; dstate=model.dstate; while (true) { [ok,clrs,siz,win,imode,xmin,xmax,ymin,ymax,exprs]=scicos_getvalue("Set Scope parameters",["colors","radii","window number (-1 for automatic)","animation mode (0,1)","Xmin","Xmax","Ymin","Ymax"],list("vec",-1,"vec",-1,"vec",1,"vec",1,"vec",1,"vec",1,"vec",1,"vec",1),exprs); if (!ok) { break } mess=[]; if (size(clrs,"*")!=size(siz,"*")) { mess=[mess,"colors and radii must have equal size (number of balls)"," "]; ok=false; } if (win<-1) { mess=[mess,"Window number cannot be inferior than -1"," "]; ok=false; } if (ymin>=ymax) { mess=[mess,"Ymax must be greater than Ymin"," "]; ok=false; } if (xmin>=xmax) { mess=[mess,"Xmax must be greater than Xmin"," "]; ok=false; } if (!ok) { message(mess); } else { rpar=[xmin,xmax,ymin,ymax]; ipar=[win,imode,clrs.slice()]; z=[]; for (i=1;i<=size(clrs,"*");i+=1) { z[6*(i-1)+1-1]=0; z[6*(i-1)+2-1]=0; z[6*(i-1)+3-1]=2*siz(i); z[6*(i-1)+4-1]=2*siz(i); z[6*(i-1)+5-1]=0.000; z[6*(i-1)+6-1]=64.0*360.000; } model.dstate=z; model.rpar=rpar; model.ipar=ipar; graphics.exprs=exprs; x.graphics=graphics; x.model=model; break } } } } /* autogenerated from "macros/Misc/BACKLASH.sci" */ function BACKLASH() { BACKLASH.prototype.define = function BACKLASH() { exprs=["0","1","1"]; model=scicos_model(); model.sim=list("backlash",4); model.in1=1; model.out=1; model.rpar=[0,1]; model.nzcross=2; model.blocktype="c"; model.dep_ut=[true,false]; gr_i=[]; x=standard_define([3,2],model,exprs,gr_i); } BACKLASH.prototype.details = function BACKLASH() { } BACKLASH.prototype.get = function BACKLASH() { } BACKLASH.prototype.set = function BACKLASH() { x=arg1; graphics=arg1.graphics; exprs=graphics.exprs; model=arg1.model; rpar=model.rpar; while (true) { [ok,ini,gap,zcr,exprs]=scicos_getvalue("Set backlash parameters",["initial output","gap","use zero-crossing (0:no, 1:yes)"],list("vec",1,"vec",1,"vec",1),exprs); if (!ok) { break } if (ok) { graphics.exprs=exprs; rpar[1-1]=ini; rpar[2-1]=gap; if (zcr!=0) { model.nzcross=2; } else { model.nzcross=0; } model.rpar=rpar; x.graphics=graphics; x.model=model; break } } } } /* autogenerated from "macros/Misc/BPLATFORM.sci" */ function BPLATFORM() { BPLATFORM.prototype.define = function BPLATFORM() { plen=2; csiz=2; phi=0; xmin=-5; xmax=5; ymin=0; ymax=15; model=scicos_model(); model.sim=list("bplatform2",5); model.in1=[1,1]; model.evtin=1; model.dstate=0; model.rpar=[plen,csiz,phi,xmin,xmax,ymin,ymax]; model.blocktype="d"; model.dep_ut=[false,false]; exprs=string(model.rpar); gr_i=[]; x=standard_define([2,2],model,exprs,gr_i); } BPLATFORM.prototype.details = function BPLATFORM() { } BPLATFORM.prototype.get = function BPLATFORM() { } BPLATFORM.prototype.set = function BPLATFORM() { x=arg1; graphics=arg1.graphics; exprs=graphics.exprs; model=arg1.model; dstate=model.dstate; while (true) { [ok,plen,csiz,phi,xmin,xmax,ymin,ymax,exprs]=scicos_getvalue("Set Scope parameters",["pendulum length","cart size (square side)","slope","Xmin","Xmax","Ymin","Ymax"],list("vec",1,"vec",1,"vec",1,"vec",1,"vec",1,"vec",1,"vec",1),exprs); if (!ok) { break } mess=[]; if (plen<=0||csiz<=0) { mess=[mess,"Pendulum length and cart size must be positive."," "]; ok=false; } if (ymin>=ymax) { mess=[mess,"Ymax must be greater than Ymin"," "]; ok=false; } if (xmin>=xmax) { mess=[mess,"Xmax must be greater than Xmin"," "]; ok=false; } if (!ok) { message(mess); } else { rpar=[plen,csiz,phi,xmin,xmax,ymin,ymax]; model.rpar=rpar; graphics.exprs=exprs; x.graphics=graphics; x.model=model; break } } } } /* autogenerated from "macros/Misc/func_block.sci" */ function func_block() { func_block.prototype.define = function func_block() { model=scicos_model(); model.sim=" "; model.in1=1; model.out=1; model.blocktype="c"; model.dep_ut=[true,false]; exprs="v=sin(u);y=u*v"; gr_i=[]; x=standard_define([2,2],model,exprs,gr_i); } func_block.prototype.details = function func_block() { } func_block.prototype.get = function func_block() { } func_block.prototype.set = function func_block() { model=arg1.model; graphics=arg1.graphics; exprs=graphics.exprs; x=arg1; model=x.model; [ok,mac,exprs]=genfunc(exprs); if (ok) { model.sim=mac; graphics.exprs=exprs; x.model=model; x.graphics=graphics; } } } /* autogenerated from "macros/Misc/SPLIT_f.sci" */ function SPLIT_f() { SPLIT_f.prototype.define = function SPLIT_f() { model=scicos_model(); model.sim="lsplit"; model.in1=-1; model.out=[-1,-1,-1]; model.blocktype="c"; model.dep_ut=[true,false]; x=standard_define([1,1]/3,model,[],[]); } SPLIT_f.prototype.details = function SPLIT_f() { } SPLIT_f.prototype.get = function SPLIT_f() { } SPLIT_f.prototype.set = function SPLIT_f() { x=arg1; } } /* autogenerated from "macros/Misc/PENDULUM_ANIM.sci" */ function PENDULUM_ANIM() { PENDULUM_ANIM.prototype.define = function PENDULUM_ANIM() { plen=2; csiz=2; phi=0; xmin=-5; xmax=5; ymin=-5; ymax=5; model=scicos_model(); model.sim=list("anim_pen",5); model.in1=[1,1]; model.evtin=1; model.dstate=0; model.rpar=[plen,csiz,phi,xmin,xmax,ymin,ymax]; model.blocktype="d"; model.dep_ut=[false,false]; exprs=string(model.rpar); gr_i=[]; x=standard_define([3,3],model,exprs,gr_i); } PENDULUM_ANIM.prototype.details = function PENDULUM_ANIM() { } PENDULUM_ANIM.prototype.get = function PENDULUM_ANIM() { } PENDULUM_ANIM.prototype.set = function PENDULUM_ANIM() { x=arg1; graphics=arg1.graphics; exprs=graphics.exprs; model=arg1.model; dstate=model.dstate; while (true) { [ok,plen,csiz,phi,xmin,xmax,ymin,ymax,exprs]=scicos_getvalue("Set Scope parameters",["pendulum length","cart size (square side)","slope","Xmin","Xmax","Ymin","Ymax"],list("vec",1,"vec",1,"vec",1,"vec",1,"vec",1,"vec",1,"vec",1),exprs); if (!ok) { break } mess=[]; if (plen<=0||csiz<=0) { mess=[mess,"Pendulum length and cart size must be positive."," "]; ok=false; } if (ymin>=ymax) { mess=[mess,"Ymax must be greater than Ymin"," "]; ok=false; } if (xmin>=xmax) { mess=[mess,"Xmax must be greater than Xmin"," "]; ok=false; } if (!ok) { message(mess); } else { rpar=[plen,csiz,phi,xmin,xmax,ymin,ymax]; model.rpar=rpar; graphics.exprs=exprs; x.graphics=graphics; x.model=model; break } } } } /* autogenerated from "macros/Misc/LOGICAL_OP.sci" */ function LOGICAL_OP() { LOGICAL_OP.prototype.define = function LOGICAL_OP() { in1=[-1,-1]; ipar=[0]; nin=2; model=scicos_model(); model.sim=list("logicalop",4); model.in1=in1; model.out=-1; model.ipar=ipar; model.blocktype="c"; model.dep_ut=[true,false]; exprs=[string(nin),string(ipar)]; gr_i=[]; x=standard_define([2,2],model,exprs,gr_i); } LOGICAL_OP.prototype.details = function LOGICAL_OP() { } LOGICAL_OP.prototype.get = function LOGICAL_OP() { } LOGICAL_OP.prototype.set = function LOGICAL_OP() { x=arg1; graphics=arg1.graphics; exprs=graphics.exprs; model=arg1.model; if (size(exprs,1)==2) { exprs=[exprs,sci2exp(1),sci2exp(0)]; } while (true) { [ok,nin,rule,Datatype,tp,exprs]=scicos_getvalue("Set parameters",["number of inputs","Operator: AND (0), OR (1), NAND (2), NOR (3), XOR (4), NOT (5)","Datatype (1=double 3=int32 ...)","Bitwise Rule(0=No 1=yes)"],list("vec",1,"vec",1,"vec",1,"vec",1),exprs); if (!ok) { break } nin=int(nin); rule=int(rule); tp=int(tp); if (nin<1) { message("Number of inputs must be >=1 "); ok=false; } else if ((rule<0)||(rule>5)) { message("Incorrect operator "+string(rule)+" ; must be 0 to 5."); ok=false; } else if ((rule==5)&&(nin>1)) { message("Only one input allowed for NOT operation"); nin=1; } else if (((Datatype==1)&&(tp!=0))) { message("Bitwise Rule is only activated when Data type is integer"); ok=false; } if (ok) { if ((tp!=0)) { tp=1; } if (Datatype==1) { model.sim=list("logicalop",4); model.ipar=[rule]; } else { if (Datatype==3) { model.sim=list("logicalop_i32",4); } else if (Datatype==4) { model.sim=list("logicalop_i16",4); } else if (Datatype==5) { model.sim=list("logicalop_i8",4); } else if (Datatype==6) { model.sim=list("logicalop_ui32",4); } else if (Datatype==7) { model.sim=list("logicalop_ui16",4); } else if (Datatype==8) { model.sim=list("logicalop_ui8",4); } else { message("Datatype is not supported"); ok=false; } model.ipar=[rule,tp]; } if (ok) { it=Datatype*ones(nin,1); ot=Datatype; in1=[-ones(nin,1),-2*ones(nin,1)]; if ((rule!=5)&&(nin==1)) { out=[1,1]; [model,graphics,ok]=set_io(model,graphics,list(in1,it),list(out,ot),[],[]); } else { out=[-1,-2]; [model,graphics,ok]=set_io(model,graphics,list(in1,it),list(out,ot),[],[]); } } if (ok) { if (rule==0) { label="AND"; } else if (rule==1) { label="OR"; } else if (rule==2) { label="NAND"; } else if (rule==3) { label="NOR"; } else if (rule==4) { label="XOR"; } else if (rule==5) { label="NOT"; } graphics.exprs=exprs; graphics.style=["blockWithLabel;displayedLabel="+label]; x.graphics=graphics; x.model=model; break } } } } } /* autogenerated from "macros/Misc/MEMORY_f.sci" */ function MEMORY_f() { MEMORY_f.prototype.define = function MEMORY_f() { z=0; in1=1; exprs=[string(z),string(1)]; model=scicos_model(); model.sim="memo"; model.in1=in1; model.out=in1; model.evtin=1; model.dstate=0; model.rpar=z; model.blocktype="m"; model.dep_ut=[false,false]; gr_i=[]; x=standard_define([2,2],model,exprs,gr_i); } MEMORY_f.prototype.details = function MEMORY_f() { } MEMORY_f.prototype.get = function MEMORY_f() { } MEMORY_f.prototype.set = function MEMORY_f() { x=arg1; graphics=arg1.graphics; exprs=graphics.exprs; model=arg1.model; while (true) { [ok,a,inh,exprs]=scicos_getvalue("Set memory block parameters",["initial condition","Inherit (1: no, 0: yes)"],list("vec",-1,"vec",1),exprs); if (!ok) { break } if (inh==0) { inh=[]; } else { inh=1; } [model,graphics,ok]=check_io(model,graphics,-1,-1,inh,[]); out=size(a,"*"); if (out==0) { ok=false; messagebox("Initial condition empty","modal","error"); } in1=out; if (ok) { graphics.exprs=exprs; model.rpar=a; model.in1=in1; model.out=out; x.graphics=graphics; x.model=model; break } } } } /* autogenerated from "macros/Misc/ENDBLK.sci" */ function ENDBLK() { ENDBLK.prototype.define = function ENDBLK() { scs_m_1=scicos_diagram(version="scicos4.2",props=scicos_params(wpar=[-159.096,811.104,-121.216,617.984,1323,1008,331,284,630,480,0,7,1.4],Title="ENDBLK",tol=[0.0001,0.000001,1.000e-10,100001,0,0],tf=100000,context=" ",void1=[],options=tlist(["scsopt","3D","Background","Link","ID","Cmap"],list(true,33),[8,1],[1,5],list([5,1],[4,1]),[0.8,0.8,0.8]),void2=[],void3=[],doc=list())); scs_m_1.objs[1-1]=scicos_block(gui="END_c",graphics=scicos_graphics(orig=[272.104,249.11733],sz=[40,40],flip=true,theta=0,exprs="1.000E+08",pin=[],pout=[],pein=2,peout=2,gr_i=[],id="",in_implicit=[],out_implicit=[]),model=scicos_model(sim=list("scicosexit",4),in1=[],in2=[],intyp=1,out=[],out2=[],outtyp=1,evtin=1,evtout=1,state=[],dstate=[],odstate=list(),rpar=[],ipar=[],opar=list(),blocktype="d",firing=1.000e+08,dep_ut=[false,false],label="",nzcross=0,nmode=0,equations=list()),doc=list()); scs_m_1.objs[2-1]=scicos_link(xx=[292.104,292.104,261.83733,261.83733,292.104,292.104],yy=[243.40305,234.45067,234.45067,305.584,305.584,294.83162],id="drawlink",thick=[0,0],ct=[5,-1],from=[1,1,0],to=[1,1,1]); model=scicos_model(sim="csuper",in1=[],in2=[],intyp=1,out=[],out2=[],outtyp=1,evtin=[],evtout=[],state=[],dstate=[],odstate=list(),rpar=scs_m_1,ipar=[],opar=list(),blocktype="h",firing=[],dep_ut=[false,false],label="",nzcross=0,nmode=0,equations=list()); gr_i=[]; x=standard_define([2,2],model,[],gr_i); } ENDBLK.prototype.details = function ENDBLK() { } ENDBLK.prototype.get = function ENDBLK() { } ENDBLK.prototype.set = function ENDBLK() { for (i=1;i<=length(arg1.model.rpar.objs);i+=1) { o=arg1.model.rpar.objs(i); if (typeof(o)=="Block"&&o.gui=="END_c") { ppath=list(i); break } } newpar=list(); y=0; for (path in ppath) { np=size(path,"*"); spath=list(); for (k=1;k<=np;k+=1) { spath[$+1-1]="model"; spath[$+1-1]="rpar"; spath[$+1-1]="objs"; spath[$+1-1]=path(k); } xx=arg1(spath); execstr("xxn="+xx.gui+"(\'set\',xx)"); if (!isequalbitwise(xxn,xx)) { model=xx.model; model_n=xxn.model; if (!is_modelica_block(xx)) { modified=or(model.sim!=model_n.sim)||!isequal(model.state,model_n.state)||!isequal(model.dstate,model_n.dstate)||!isequal(model.odstate,model_n.odstate)||!isequal(model.rpar,model_n.rpar)||!isequal(model.ipar,model_n.ipar)||!isequal(model.opar,model_n.opar)||!isequal(model.label,model_n.label); if (or(model.in1!=model_n.in1)||or(model.out!=model_n.out)||or(model.in2!=model_n.in2)||or(model.out2!=model_n.out2)||or(model.outtyp!=model_n.outtyp)||or(model.intyp!=model_n.intyp)) { needcompile=1; } if (or(model.firing!=model_n.firing)) { needcompile=2; } if ((size(model.in1,"*")!=size(model_n.in1,"*"))||(size(model.out,"*")!=size(model_n.out,"*"))||(size(model.evtin,"*")!=size(model_n.evtin,"*"))) { needcompile=4; } if (model.sim=="input"||model.sim=="output") { if (model.ipar!=model_n.ipar) { needcompile=4; } } if (or(model.blocktype!=model_n.blocktype)||or(model.dep_ut!=model_n.dep_ut)) { needcompile=4; } if ((model.nzcross!=model_n.nzcross)||(model.nmode!=model_n.nmode)) { needcompile=4; } if (prod(size(model_n.sim))>1) { if (model_n.sim(2)>1000) { if (model.sim(1)!=model_n.sim(1)) { needcompile=4; } } } } else { modified=or(model_n!=model); eq=model.equations; eqn=model_n.equations; if (or(eq.model!=eqn.model)||or(eq.inputs!=eqn.inputs)||or(eq.outputs!=eqn.outputs)) { needcompile=4; } } arg1[spath-1]=xxn; newpar[size(newpar)+1-1]=path; y=max(y,needcompile); } } x=arg1; typ=newpar; } } /* autogenerated from "macros/IntegerOp/INTMUL.sci" */ function INTMUL() { INTMUL.prototype.define = function INTMUL() { sgn=0; model=scicos_model(); model.sim=list("matmul_i32",4); model.in1=[-1,-2]; model.out=-1; model.in2=[-2,-3]; model.out2=-3; model.intyp=[3,3]; model.outtyp=3; model.rpar=[]; model.ipar=sgn; model.blocktype="c"; model.dep_ut=[true,false]; exprs=[sci2exp(3),sci2exp(0)]; gr_i=[]; x=standard_define([2,2],model,exprs,gr_i); } INTMUL.prototype.details = function INTMUL() { } INTMUL.prototype.get = function INTMUL() { } INTMUL.prototype.set = function INTMUL() { x=arg1; graphics=arg1.graphics; model=arg1.model; exprs=graphics.exprs; while (true) { [ok,Datatype,np,exprs]=scicos_getvalue([msprintf(gettext("Set %s block parameters"),"INTMUL")," ",gettext("Integer matrix multiplication")," "],[msprintf(gettext("Data Type %s"),"(3:int32, 4:int16, 5:int8, ...)"),gettext("Do on Overflow (0:Nothing, 1:Saturate, 2:Error)")],list("vec",1,"vec",1),exprs); if (!ok) { break } it=Datatype*ones(1,2); ot=Datatype; if ((np!=0&&np!=1&&np!=2)) { block_parameter_error(msprintf(gettext("Wrong value for \'%s\' parameter: %d."),gettext("Do on Overflow"),np),msprintf(gettext("Must be in the interval %s."),"[0, 2]")); ok=false; } else if (Datatype==3) { if (np==0) { model.sim=list("matmul_i32n",4); } else if (np==1) { model.sim=list("matmul_i32s",4); } else { model.sim=list("matmul_i32e",4); } } else if (Datatype==4) { if (np==0) { model.sim=list("matmul_i16n",4); } else if (np==1) { model.sim=list("matmul_i16s",4); } else { model.sim=list("matmul_i16e",4); } } else if (Datatype==5) { if (np==0) { model.sim=list("matmul_i8n",4); } else if (np==1) { model.sim=list("matmul_i8s",4); } else { model.sim=list("matmul_i8e",4); } } else if (Datatype==6) { if (np==0) { model.sim=list("matmul_ui32n",4); } else if (np==1) { model.sim=list("matmul_ui32s",4); } else { model.sim=list("matmul_ui32e",4); } } else if (Datatype==7) { if (np==0) { model.sim=list("matmul_ui16n",4); } else if (np==1) { model.sim=list("matmul_ui16s",4); } else { model.sim=list("matmul_ui16e",4); } } else if (Datatype==8) { if (np==0) { model.sim=list("matmul_ui8n",4); } else if (np==1) { model.sim=list("matmul_ui8s",4); } else { model.sim=list("matmul_ui8e",4); } } else { block_parameter_error(msprintf(gettext("Wrong value for \'%s\' parameter: %d."),gettext("Data Type"),ot),msprintf(gettext("Must be in the interval %s."),"[3, 8]")); ok=false; } in1=[model.in1,model.in2]; out=[model.out,model.out2]; if (ok) { [model,graphics,ok]=set_io(model,graphics,list(in1,it),list(out,ot),[],[]); } if (ok) { model.ipar=np; graphics.exprs=exprs; x.graphics=graphics; x.model=model; break } } } } /* autogenerated from "macros/IntegerOp/CONVERT.sci" */ function CONVERT() { CONVERT.prototype.define = function CONVERT() { sgn=2; model=scicos_model(); model.sim=list("convert",4); model.in1=-1; model.out=-1; model.in2=-2; model.out2=-2; model.intyp=1; model.outtyp=3; model.rpar=[]; model.ipar=sgn; model.blocktype="c"; model.dep_ut=[true,false]; exprs=[sci2exp(1),sci2exp(3),sci2exp(0)]; gr_i=[]; x=standard_define([3,2],model,exprs,gr_i); } CONVERT.prototype.details = function CONVERT() { } CONVERT.prototype.get = function CONVERT() { } CONVERT.prototype.set = function CONVERT() { x=arg1; graphics=arg1.graphics; model=arg1.model; exprs=graphics.exprs; while (true) { [ok,it,ot,np,exprs]=scicos_getvalue([msprintf(gettext("Set %s block parameters"),"CONVERT")," ",gettext("Type conversion")," "],[gettext("Input Type (1:double, 3:int32, 4:int16, 5:int8, ...)"),gettext("Output Type (1:double, 3:int32, 4:int16, 5:int8, ...)"),gettext("Do on Overflow (0:Nothing, 1:Saturate, 2:Error)")],list("vec",1,"vec",1,"vec",1),exprs); if (!ok) { break } if (it==2) { it=1; } if (ot==2) { ot=1; } if ((np!=0&&np!=1&&np!=2)) { block_parameter_error(msprintf(gettext("Wrong value for \'%s\' parameter: %d."),gettext("Do on Overflow"),np),msprintf(gettext("Must be in the interval %s."),"[0, 2]")); ok=false; } else if ((it>8||it<1)) { block_parameter_error(msprintf(gettext("Wrong value for \'%s\' parameter: %d."),gettext("Input Type"),it),msprintf(gettext("Must be in the interval %s."),"[1, 8]")); ok=false; } else if ((ot>8||ot<1)) { block_parameter_error(msprintf(gettext("Wrong value for \'%s\' parameter: %d."),gettext("Output Type"),ot),msprintf(gettext("Must be in the interval %s."),"[1, 8]")); ok=false; } model.sim=list("convert",4); if ((it==ot)) { model.ipar=1; } else { if ((np==0)) { if ((it==1)) { if ((ot==3)) { model.ipar=2; } else if ((ot==4)) { model.ipar=3; } else if ((ot==5)) { model.ipar=4; } else if ((ot==6)) { model.ipar=5; } else if ((ot==7)) { model.ipar=6; } else if ((ot==8)) { model.ipar=7; } } else if ((it==3)) { if ((ot==1)) { model.ipar=8; } else if ((ot==4)) { model.ipar=9; } else if ((ot==5)) { model.ipar=10; } else if ((ot==6)) { model.ipar=1; } else if ((ot==7)) { model.ipar=11; } else if ((ot==8)) { model.ipar=12; } } else if ((it==4)) { if ((ot==1)) { model.ipar=13; } else if ((ot==3)) { model.ipar=14; } else if ((ot==5)) { model.ipar=15; } else if ((ot==6)) { model.ipar=16; } else if ((ot==7)) { model.ipar=1; } else if ((ot==8)) { model.ipar=17; } } else if ((it==5)) { if ((ot==1)) { model.ipar=18; } else if ((ot==3)) { model.ipar=19; } else if ((ot==4)) { model.ipar=20; } else if ((ot==6)) { model.ipar=21; } else if ((ot==7)) { model.ipar=22; } else if ((ot==8)) { model.ipar=1; } } else if ((it==6)) { if ((ot==1)) { model.ipar=23; } else if ((ot==3)) { model.ipar=1; } else if ((ot==4)) { model.ipar=24; } else if ((ot==5)) { model.ipar=25; } else if ((ot==7)) { model.ipar=26; } else if ((ot==8)) { model.ipar=27; } } else if ((it==7)) { if ((ot==1)) { model.ipar=28; } else if ((ot==3)) { model.ipar=29; } else if ((ot==4)) { model.ipar=1; } else if ((ot==5)) { model.ipar=30; } else if ((ot==6)) { model.ipar=31; } else if ((ot==8)) { model.ipar=32; } } else if ((it==8)) { if ((ot==1)) { model.ipar=33; } else if ((ot==3)) { model.ipar=34; } else if ((ot==4)) { model.ipar=35; } else if ((ot==5)) { model.ipar=1; } else if ((ot==6)) { model.ipar=36; } else if ((ot==7)) { model.ipar=37; } } } else if ((np==1)) { if ((it==1)) { if ((ot==3)) { model.ipar=38; } else if ((ot==4)) { model.ipar=39; } else if ((ot==5)) { model.ipar=40; } else if ((ot==6)) { model.ipar=41; } else if ((ot==7)) { model.ipar=42; } else if ((ot==8)) { model.ipar=43; } } else if ((it==3)) { if ((ot==1)) { model.ipar=8; } else if ((ot==4)) { model.ipar=44; } else if ((ot==5)) { model.ipar=45; } else if ((ot==6)) { model.ipar=46; } else if ((ot==7)) { model.ipar=47; } else if ((ot==8)) { model.ipar=48; } } else if ((it==4)) { if ((ot==1)) { model.ipar=13; } else if ((ot==3)) { model.ipar=14; } else if ((ot==5)) { model.ipar=49; } else if ((ot==6)) { model.ipar=50; } else if ((ot==7)) { model.ipar=51; } else if ((ot==8)) { model.ipar=52; } } else if ((it==5)) { if ((ot==1)) { model.ipar=18; } else if ((ot==3)) { model.ipar=19; } else if ((ot==4)) { model.ipar=20; } else if ((ot==6)) { model.ipar=53; } else if ((ot==7)) { model.ipar=54; } else if ((ot==8)) { model.ipar=55; } } else if ((it==6)) { if ((ot==1)) { model.ipar=23; } else if ((ot==3)) { model.ipar=56; } else if ((ot==4)) { model.ipar=57; } else if ((ot==5)) { model.ipar=58; } else if ((ot==7)) { model.ipar=59; } else if ((ot==8)) { model.ipar=60; } } else if ((it==7)) { if ((ot==1)) { model.ipar=28; } else if ((ot==3)) { model.ipar=29; } else if ((ot==4)) { model.ipar=61; } else if ((ot==5)) { model.ipar=62; } else if ((ot==6)) { model.ipar=31; } else if ((ot==8)) { model.ipar=63; } } else if ((it==8)) { if ((ot==1)) { model.ipar=33; } else if ((ot==3)) { model.ipar=34; } else if ((ot==4)) { model.ipar=35; } else if ((ot==5)) { model.ipar=64; } else if ((ot==6)) { model.ipar=36; } else if ((ot==7)) { model.ipar=37; } } } else if ((np==2)) { if ((it==1)) { if ((ot==3)) { model.ipar=65; } else if ((ot==4)) { model.ipar=66; } else if ((ot==5)) { model.ipar=67; } else if ((ot==6)) { model.ipar=68; } else if ((ot==7)) { model.ipar=69; } else if ((ot==8)) { model.ipar=70; } } else if ((it==3)) { if ((ot==1)) { model.ipar=8; } else if ((ot==4)) { model.ipar=71; } else if ((ot==5)) { model.ipar=72; } else if ((ot==6)) { model.ipar=73; } else if ((ot==7)) { model.ipar=74; } else if ((ot==8)) { model.ipar=75; } } else if ((it==4)) { if ((ot==1)) { model.ipar=13; } else if ((ot==3)) { model.ipar=14; } else if ((ot==5)) { model.ipar=76; } else if ((ot==6)) { model.ipar=77; } else if ((ot==7)) { model.ipar=78; } else if ((ot==8)) { model.ipar=79; } } else if ((it==5)) { if ((ot==1)) { model.ipar=18; } else if ((ot==3)) { model.ipar=19; } else if ((ot==4)) { model.ipar=20; } else if ((ot==6)) { model.ipar=80; } else if ((ot==7)) { model.ipar=81; } else if ((ot==8)) { model.ipar=82; } } else if ((it==6)) { if ((ot==1)) { model.ipar=23; } else if ((ot==3)) { model.ipar=83; } else if ((ot==4)) { model.ipar=84; } else if ((ot==5)) { model.ipar=85; } else if ((ot==7)) { model.ipar=86; } else if ((ot==8)) { model.ipar=87; } } else if ((it==7)) { if ((ot==1)) { model.ipar=28; } else if ((ot==3)) { model.ipar=29; } else if ((ot==4)) { model.ipar=88; } else if ((ot==5)) { model.ipar=89; } else if ((ot==6)) { model.ipar=31; } else if ((ot==8)) { model.ipar=90; } } else if ((it==8)) { if ((ot==1)) { model.ipar=33; } else if ((ot==3)) { model.ipar=34; } else if ((ot==4)) { model.ipar=35; } else if ((ot==5)) { model.ipar=91; } else if ((ot==6)) { model.ipar=36; } else if ((ot==7)) { model.ipar=37; } } } } in1=[model.in1,model.in2]; out=[model.out,model.out2]; if (ok) { [model,graphics,ok]=set_io(model,graphics,list(in1,it),list(out,ot),[],[]); } if (ok) { graphics.exprs=exprs; x.graphics=graphics; x.model=model; break } } } } /* autogenerated from "macros/IntegerOp/SRFLIPFLOP.sci" */ function SRFLIPFLOP() { SRFLIPFLOP.prototype.define = function SRFLIPFLOP() { scs_m=scicos_diagram(version="scicos4.2",props=scicos_params(wpar=[600,450,0,0,600,450],Title=["SRFLIPFLOP"],tol=[0.0001,0.000001,1.000e-10,100001,0,0,0],tf=60,context=" ",void1=[],options=tlist(["scsopt","3D","Background","Link","ID","Cmap"],list(true,33),[8,1],[1,5],list([5,1],[4,1]),[0.8,0.8,0.8]),void2=[],void3=[],doc=list())); scs_m.objs[1-1]=scicos_block(gui="LOGIC",graphics=scicos_graphics(orig=[298.504,201.45067],sz=[40,40],flip=true,theta=0,exprs=["[0 1;1 0;1 0;1 0;0 1;0 1;0 0;0 0]","1"],pin=[4,10,12],pout=[3,8],pein=[],peout=[],gr_i=[],id="",in_implicit=["E","E","E"],out_implicit=["E","E"]),model=scicos_model(sim=list("logic",4),in1=[1,1,1],in2=[1,1,1],intyp=[5,5,5],out=[1,1],out2=[1,1],outtyp=[5,5],evtin=[],evtout=[],state=[],dstate=[],odstate=list(),rpar=[],ipar=[],opar=list(int8([0,1,1,0,1,0,1,0,0,1,0,1,0,0,0,0])),blocktype="c",firing=false,dep_ut=[true,false],label="",nzcross=0,nmode=0,equations=list()),doc=list()); scs_m.objs[2-1]=scicos_block(gui="DOLLAR_m",graphics=scicos_graphics(orig=[299.23733,254.25067],sz=[40,40],flip=false,theta=0,exprs=["int8(0)","1"],pin=6,pout=4,pein=[],peout=[],gr_i=[],id="",in_implicit="E",out_implicit="E"),model=scicos_model(sim=list("dollar4_m",4),in1=1,in2=1,intyp=5,out=1,out2=1,outtyp=5,evtin=[],evtout=[],state=[],dstate=[],odstate=list(int8(0)),rpar=[],ipar=[],opar=list(),blocktype="d",firing=[],dep_ut=[false,false],label="",nzcross=0,nmode=0,equations=list()),doc=list()); scs_m.objs[3-1]=scicos_link(xx=[347.07543,363.03733,363.03733],yy=[228.11733,228.11733,248.584],id="drawlink",thick=[0,0],ct=[1,1],from=[1,1,0],to=[5,1,1]); scs_m.objs[4-1]=scicos_link(xx=[290.6659,272.104,272.104,289.93257],yy=[274.25067,274.25067,231.45067,231.45067],id="drawlink",thick=[0,0],ct=[1,1],from=[2,1,0],to=[1,1,1]); scs_m.objs[5-1]=scicos_block(gui="SPLIT_f",graphics=scicos_graphics(orig=[363.03733,248.584],sz=[0.3333333,0.3333333],flip=true,theta=0,exprs=[],pin=3,pout=[6,14],pein=[],peout=[],gr_i=[],id="",in_implicit="E",out_implicit=["E","E","E"]),model=scicos_model(sim="lsplit",in1=-1,in2=[],intyp=1,out=[-1,-1,-1],out2=[],outtyp=1,evtin=[],evtout=[],state=[],dstate=[],odstate=list(),rpar=[],ipar=[],opar=list(),blocktype="c",firing=[],dep_ut=[true,false],label="",nzcross=0,nmode=0,equations=list()),doc=list()); scs_m.objs[6-1]=scicos_link(xx=[363.03733,363.03733,344.95162],yy=[248.584,274.25067,274.25067],id="drawlink",thick=[0,0],ct=[1,1],from=[5,1,0],to=[2,1,1]); scs_m.objs[7-1]=scicos_block(gui="OUT_f",graphics=scicos_graphics(orig=[367.07543,204.784],sz=[20,20],flip=true,theta=0,exprs="2",pin=8,pout=[],pein=[],peout=[],gr_i=[],id="",in_implicit="E",out_implicit=[]),model=scicos_model(sim="output",in1=-1,in2=[],intyp=-1,out=[],out2=[],outtyp=1,evtin=[],evtout=[],state=[],dstate=[],odstate=list(),rpar=[],ipar=2,opar=list(),blocktype="c",firing=[],dep_ut=[false,false],label="",nzcross=0,nmode=0,equations=list()),doc=list()); scs_m.objs[8-1]=scicos_link(xx=[347.07543,367.07543],yy=[214.784,214.784],id="drawlink",thick=[0,0],ct=[1,1],from=[1,2,0],to=[7,1,1]); scs_m.objs[9-1]=scicos_block(gui="IN_f",graphics=scicos_graphics(orig=[249.93257,211.45067],sz=[20,20],flip=true,theta=0,exprs="1",pin=[],pout=10,pein=[],peout=[],gr_i=[],id="",in_implicit=[],out_implicit="E"),model=scicos_model(sim="input",in1=[],in2=[],intyp=1,out=-1,out2=[],outtyp=-1,evtin=[],evtout=[],state=[],dstate=[],odstate=list(),rpar=[],ipar=1,opar=list(),blocktype="c",firing=[],dep_ut=[false,false],label="",nzcross=0,nmode=0,equations=list()),doc=list()); scs_m.objs[10-1]=scicos_link(xx=[269.93257,289.93257],yy=[221.45067,221.45067],id="drawlink",thick=[0,0],ct=[1,1],from=[9,1,0],to=[1,2,1]); scs_m.objs[11-1]=scicos_block(gui="IN_f",graphics=scicos_graphics(orig=[249.93257,201.45067],sz=[20,20],flip=true,theta=0,exprs="2",pin=[],pout=12,pein=[],peout=[],gr_i=[],id="",in_implicit=[],out_implicit="E"),model=scicos_model(sim="input",in1=[],in2=[],intyp=1,out=-1,out2=[],outtyp=-1,evtin=[],evtout=[],state=[],dstate=[],odstate=list(),rpar=[],ipar=2,opar=list(),blocktype="c",firing=[],dep_ut=[false,false],label="",nzcross=0,nmode=0,equations=list()),doc=list()); scs_m.objs[12-1]=scicos_link(xx=[269.93257,289.93257],yy=[211.45067,211.45067],id="drawlink",thick=[0,0],ct=[1,1],from=[11,1,0],to=[1,3,1]); scs_m.objs[13-1]=scicos_block(gui="OUT_f",graphics=scicos_graphics(orig=[383.03733,238.584],sz=[20,20],flip=true,theta=0,exprs="1",pin=14,pout=[],pein=[],peout=[],gr_i=[],id="",in_implicit="E",out_implicit=[]),model=scicos_model(sim="output",in1=-1,in2=[],intyp=-1,out=[],out2=[],outtyp=1,evtin=[],evtout=[],state=[],dstate=[],odstate=list(),rpar=[],ipar=1,opar=list(),blocktype="c",firing=[],dep_ut=[false,false],label="",nzcross=0,nmode=0,equations=list()),doc=list()); scs_m.objs[14-1]=scicos_link(xx=[363.03733,383.03733],yy=[248.584,248.584],id="drawlink",thick=[0,0],ct=[1,1],from=[5,2,0],to=[13,1,1]); model=scicos_model(); model.sim="csuper"; model.in1=[1,1]; model.in2=[1,1]; model.out=[1,1]; model.out2=[1,1]; model.intyp=[5,5]; model.outtyp=[5,5]; model.blocktype="h"; model.firing=false; model.dep_ut=[true,false]; model.rpar=scs_m; gr_i=[]; x=standard_define([2,3],model,[],gr_i); } SRFLIPFLOP.prototype.details = function SRFLIPFLOP() { } SRFLIPFLOP.prototype.get = function SRFLIPFLOP() { } SRFLIPFLOP.prototype.set = function SRFLIPFLOP() { for (i=1;i<=length(arg1.model.rpar.objs);i+=1) { o=arg1.model.rpar.objs(i); if (typeof(o)=="Block"&&o.gui=="DOLLAR_m") { path=i; break } } newpar=list(); xx=arg1.model.rpar.objs(path); exprs=xx.graphics.exprs(1); model=xx.model; init_old=model.odstate(1); while (true) { [ok,init,exprs0]=scicos_getvalue([msprintf(gettext("Set %s block parameters"),"SRFLIPFLOP")," ",gettext("SR flip-flop")," ",gettext("The \'Initial Value\' must be 0 or 1 of type int8"),gettext(" - Negative values are considered as int8(0)"),gettext(" - Positive values are considered as int8(1)")," "],gettext("Initial Value"),list("vec",1),exprs); if (!ok) { break } if (init<=0) { init=int8(0); } else if (init>0) { init=int8(1); } if (ok) { xx.graphics.exprs[1-1]=exprs0; model.odstate[1-1]=init; xx.model=model; arg1.model.rpar.objs[path-1]=xx; break } } needcompile=0; if (init_old!=init) { newpar[size(newpar)+1-1]=path; needcompile=2; } x=arg1; y=needcompile; typ=newpar; } } /* autogenerated from "macros/IntegerOp/BITSET.sci" */ function BITSET() { BITSET.prototype.define = function BITSET() { model=scicos_model(); model.sim=list("bit_set_32",4); model.in1=1; model.in2=1; model.out=1; model.out2=1; model.intyp=3; model.outtyp=3; model.opar=list(uint32(0)); model.blocktype="c"; model.dep_ut=[true,false]; exprs=[sci2exp(3),sci2exp(0)]; gr_i=[]; x=standard_define([4,2],model,exprs,gr_i); } BITSET.prototype.details = function BITSET() { } BITSET.prototype.get = function BITSET() { } BITSET.prototype.set = function BITSET() { x=arg1; graphics=arg1.graphics; exprs=graphics.exprs; model=arg1.model; while (true) { [ok,Datatype,bit,exprs]=scicos_getvalue([msprintf(gettext("Set %s block parameters"),"BITSET")," ",gettext("Set a bit")," "],[msprintf(gettext("Data Type %s"),"(3:int32, 4:int16, 5:int8, ...)"),gettext("Index of Bit (0 is least significant)")],list("vec",1,"vec",1),exprs); if (!ok) { break } in1=[model.in1,model.in2]; if (floor(bit)!=bit) { block_parameter_error(msprintf(gettext("Wrong type for \'%s\' parameter: %5.1f."),gettext("Index of Bit"),bit),gettext("Must be integer.")); ok=false; } if ((Datatype==3)||(Datatype==6)) { if (bit>31||bit<0) { block_parameter_error(msprintf(gettext("Wrong value for \'%s\' parameter: %d."),gettext("Index of Bit"),bit),msprintf(gettext("Must be in the interval %s."),"[0, 31]")); ok=false; } bit=uint32(bit); n=2^bit; n=uint32(n); model.sim=list("bit_set_32",4); } else if ((Datatype==4)||(Datatype==7)) { if (bit>15||bit<0) { block_parameter_error(msprintf(gettext("Wrong value for \'%s\' parameter: %d."),gettext("Index of Bit"),bit),msprintf(gettext("Must be in the interval %s."),"[0, 15]")); ok=false; } bit=uint16(bit); n=2^bit; n=uint16(n); model.sim=list("bit_set_16",4); } else if ((Datatype==5)||(Datatype==8)) { if (bit>7||bit<0) { block_parameter_error(msprintf(gettext("Wrong value for \'%s\' parameter: %d."),gettext("Index of Bit"),bit),msprintf(gettext("Must be in the interval %s."),"[0, 7]")); ok=false; } bit=uint8(bit); n=2^bit; n=uint8(n); model.sim=list("bit_set_8",4); } else { block_parameter_error(msprintf(gettext("Wrong value for \'%s\' parameter: %d."),gettext("Data Type"),Datatype),msprintf(gettext("Must be in the interval %s."),"[3, 8]")); ok=false; } if (ok) { it=Datatype; ot=Datatype; out=[1,1]; [model,graphics,ok]=set_io(model,graphics,list(in1,it),list(out,ot),[],[]); } if (ok) { graphics.exprs=exprs; model.opar=list(n); x.graphics=graphics; x.model=model; break } } } } /* autogenerated from "macros/IntegerOp/JKFLIPFLOP.sci" */ function JKFLIPFLOP() { JKFLIPFLOP.prototype.define = function JKFLIPFLOP() { scs_m=scicos_diagram(version="scicos4.2",props=scicos_params(wpar=[600,450,0,0,600,450],Title=["JKFLIPFLOP"],tol=[0.0001,0.000001,1.000e-10,100001,0,0,0],tf=60,context=" ",void1=[],options=tlist(["scsopt","3D","Background","Link","ID","Cmap"],list(true,33),[8,1],[1,5],list([5,1],[4,1]),[0.8,0.8,0.8]),void2=[],void3=[],doc=list())); scs_m.objs[1-1]=scicos_block(gui="DOLLAR_m",graphics=scicos_graphics(orig=[299.96961,261.584],sz=[40,40],flip=false,theta=0,exprs=["int8(0)","1"],pin=7,pout=5,pein=[],peout=[],gr_i=[],id="",in_implicit="E",out_implicit="E"),model=scicos_model(sim=list("dollar4_m",4),in1=1,in2=1,intyp=5,out=1,out2=1,outtyp=5,evtin=[],evtout=[],state=[],dstate=[],odstate=list(int8(0)),rpar=[],ipar=[],opar=list(),blocktype="d",firing=[],dep_ut=[false,false],label="",nzcross=0,nmode=0,equations=list()),doc=list()); scs_m_1=scicos_diagram(version="scicos4.2",props=scicos_params(wpar=[600,450,0,0,600,450],Title=["EDGE_TRIGGER","./"],tol=[0.0001,0.000001,1.000e-10,100001,0,0,0],tf=30,context=" ",void1=[],options=tlist(["scsopt","3D","Background","Link","ID","Cmap"],list(true,33),[8,1],[1,5],list([5,1],[4,1]),[0.8,0.8,0.8]),void2=[],void3=[],doc=list())); scs_m_1.objs[1-1]=scicos_block(gui="EDGETRIGGER",graphics=scicos_graphics(orig=[288.58631,257.1131],sz=[60,40],flip=true,theta=0,exprs="-1",pin=5,pout=3,pein=[],peout=[],gr_i=[],id="",in_implicit="E",out_implicit="E"),model=scicos_model(sim=list("edgetrig",4),in1=1,in2=[],intyp=1,out=1,out2=[],outtyp=1,evtin=[],evtout=[],state=[],dstate=0,odstate=list(),rpar=[],ipar=-1,opar=list(),blocktype="c",firing=[],dep_ut=[true,false],label="",nzcross=1,nmode=0,equations=list()),doc=list()); scs_m_1.objs[2-1]=scicos_block(gui="IFTHEL_f",graphics=scicos_graphics(orig=[388.28869,247.1131],sz=[60,60],flip=true,theta=0,exprs=["0","0"],pin=3,pout=[],pein=[],peout=[7,0],gr_i=[],id="",in_implicit="E",out_implicit=[]),model=scicos_model(sim=list("ifthel",-1),in1=1,in2=[],intyp=1,out=[],out2=1,outtyp=[],evtin=[],evtout=[1,1],state=[],dstate=[],odstate=list(),rpar=[],ipar=[],opar=list(),blocktype="l",firing=[-1,-1],dep_ut=[true,false],label="",nzcross=0,nmode=0,equations=list()),doc=list()); scs_m_1.objs[3-1]=scicos_link(xx=[357.15774,362.99107,379.71726],yy=[277.1131,277.1131,277.1131],id="drawlink",thick=[0,0],ct=[1,1],from=[1,1,0],to=[2,1,1]); scs_m_1.objs[4-1]=scicos_block(gui="IN_f",graphics=scicos_graphics(orig=[240.01488,267.1131],sz=[20,20],flip=true,theta=0,exprs="1",pin=[],pout=5,pein=[],peout=[],gr_i=[],id="",in_implicit=[],out_implicit="E"),model=scicos_model(sim="input",in1=[],in2=[],intyp=1,out=-1,out2=[],outtyp=1,evtin=[],evtout=[],state=[],dstate=[],odstate=list(),rpar=[],ipar=1,opar=list(),blocktype="c",firing=[],dep_ut=[false,false],label="",nzcross=0,nmode=0,equations=list()),doc=list()); scs_m_1.objs[5-1]=scicos_link(xx=[260.01488,280.01488],yy=[277.1131,277.1131],id="drawlink",thick=[0,0],ct=[1,1],from=[4,1,0],to=[1,1,1]); scs_m_1.objs[6-1]=scicos_block(gui="CLKOUTV_f",graphics=scicos_graphics(orig=[398.28869,181.39881],sz=[20,30],flip=true,theta=0,exprs="1",pin=[],pout=[],pein=7,peout=[],gr_i=[],id="",in_implicit=[],out_implicit=[]),model=scicos_model(sim="output",in1=[],in2=[],intyp=1,out=[],out2=[],outtyp=1,evtin=1,evtout=[],state=[],dstate=[],odstate=list(),rpar=[],ipar=1,opar=list(),blocktype="d",firing=[],dep_ut=[false,false],label="",nzcross=0,nmode=0,equations=list()),doc=list()); scs_m_1.objs[7-1]=scicos_link(xx=[408.28869,408.28869],yy=[241.39881,211.39881],id="drawlink",thick=[0,0],ct=[5,-1],from=[2,1,0],to=[6,1,1]); scs_m.objs[2-1]=scicos_block(gui="EDGE_TRIGGER",graphics=scicos_graphics(orig=[292.52452,323.54888],sz=[60,40],flip=true,theta=0,exprs=[],pin=14,pout=[],pein=[],peout=8,gr_i=[],id="",in_implicit="E",out_implicit=[]),model=scicos_model(sim="csuper",in1=-1,in2=[],intyp=1,out=[],out2=[],outtyp=1,evtin=[],evtout=1,state=[],dstate=[],odstate=list(),rpar=scs_m_1,ipar=[],opar=list(),blocktype="h",firing=[],dep_ut=[false,false],label="",nzcross=0,nmode=0,equations=list()),doc=list()); scs_m.objs[3-1]=scicos_block(gui="LOGIC",graphics=scicos_graphics(orig=[302.79613,202.52782],sz=[40,40],flip=true,theta=0,exprs=["[0;1;1;1;0;0;1;0]","0"],pin=[5,16,18],pout=4,pein=8,peout=[],gr_i=[],id="",in_implicit=["E","E","E"],out_implicit="E"),model=scicos_model(sim=list("logic",4),in1=[1,1,1],in2=[1,1,1],intyp=[5,5,5],out=1,out2=1,outtyp=5,evtin=1,evtout=[],state=[],dstate=[],odstate=list(),rpar=[],ipar=[],opar=list(int8([0,1,1,1,0,0,1,0])),blocktype="c",firing=false,dep_ut=[true,false],label="",nzcross=0,nmode=0,equations=list()),doc=list()); scs_m.objs[4-1]=scicos_link(xx=[351.36756,368.82793,368.82793],yy=[222.52782,222.52782,223.06473],id="drawlink",thick=[0,0],ct=[1,1],from=[3,1,0],to=[10,1,1]); scs_m.objs[5-1]=scicos_link(xx=[291.39818,274.18235,274.18235,294.2247],yy=[281.584,281.584,232.52782,232.52782],id="drawlink",thick=[0,0],ct=[1,1],from=[1,1,0],to=[3,1,1]); scs_m.objs[6-1]=scicos_block(gui="SPLIT_f",graphics=scicos_graphics(orig=[368.82793,243.45067],sz=[0.3333333,0.3333333],flip=true,theta=0,exprs=[],pin=11,pout=[7,20],pein=[],peout=[],gr_i=[],id="",in_implicit="E",out_implicit=["E","E","E"]),model=scicos_model(sim="lsplit",in1=-1,in2=[],intyp=1,out=[-1,-1,-1],out2=[],outtyp=1,evtin=[],evtout=[],state=[],dstate=[],odstate=list(),rpar=[],ipar=[],opar=list(),blocktype="c",firing=[],dep_ut=[true,false],label="",nzcross=0,nmode=0,equations=list()),doc=list()); scs_m.objs[7-1]=scicos_link(xx=[368.82793,368.82793,345.68389],yy=[243.45067,281.584,281.584],id="drawlink",thick=[0,0],ct=[1,1],from=[6,1,0],to=[1,1,1]); scs_m.objs[8-1]=scicos_link(xx=[322.52452,374.69743,374.69743,322.79613],yy=[317.8346,317.8346,248.24211,248.24211],id="drawlink",thick=[0,0],ct=[5,-1],from=[2,1,0],to=[3,1,1]); scs_m.objs[9-1]=scicos_block(gui="LOGICAL_OP",graphics=scicos_graphics(orig=[377.63217,159.25363],sz=[60,40],flip=true,theta=0,exprs=["1","5","5","0"],pin=12,pout=22,pein=[],peout=[],gr_i=[],id="",in_implicit="E",out_implicit="E"),model=scicos_model(sim=list("logicalop_i8",4),in1=-1,in2=-2,intyp=5,out=-1,out2=-2,outtyp=5,evtin=[],evtout=[],state=[],dstate=[],odstate=list(),rpar=[],ipar=[5,0],opar=list(),blocktype="c",firing=[],dep_ut=[true,false],label="",nzcross=0,nmode=0,equations=list()),doc=list()); scs_m.objs[10-1]=scicos_block(gui="SPLIT_f",graphics=scicos_graphics(orig=[368.82793,223.06473],sz=[0.3333333,0.3333333],flip=true,theta=0,exprs=[],pin=4,pout=[11,12],pein=[],peout=[],gr_i=[],id="",in_implicit="E",out_implicit=["E","E","E"]),model=scicos_model(sim="lsplit",in1=-1,in2=[],intyp=1,out=[-1,-1,-1],out2=[],outtyp=1,evtin=[],evtout=[],state=[],dstate=[],odstate=list(),rpar=[],ipar=[],opar=list(),blocktype="c",firing=[],dep_ut=[true,false],label="",nzcross=0,nmode=0,equations=list()),doc=list()); scs_m.objs[11-1]=scicos_link(xx=[368.82793,368.82793],yy=[223.06473,243.45067],id="drawlink",thick=[0,0],ct=[1,1],from=[10,1,0],to=[6,1,1]); scs_m.objs[12-1]=scicos_link(xx=[368.82793,368.82793,369.06074],yy=[223.06473,177.7867,179.25363],id="drawlink",thick=[0,0],ct=[1,1],from=[10,2,0],to=[9,1,1]); scs_m.objs[13-1]=scicos_block(gui="IN_f",graphics=scicos_graphics(orig=[243.95309,333.54888],sz=[20,20],flip=true,theta=0,exprs="2",pin=[],pout=14,pein=[],peout=[],gr_i=[],id="",in_implicit=[],out_implicit="E"),model=scicos_model(sim="input",in1=[],in2=[],intyp=1,out=-1,out2=[],outtyp=-1,evtin=[],evtout=[],state=[],dstate=[],odstate=list(),rpar=[],ipar=2,opar=list(),blocktype="c",firing=[],dep_ut=[false,false],label="",nzcross=0,nmode=0,equations=list()),doc=list()); scs_m.objs[14-1]=scicos_link(xx=[263.95309,283.95309],yy=[343.54888,343.54888],id="drawlink",thick=[0,0],ct=[1,1],from=[13,1,0],to=[2,1,1]); scs_m.objs[15-1]=scicos_block(gui="IN_f",graphics=scicos_graphics(orig=[254.2247,212.52782],sz=[20,20],flip=true,theta=0,exprs="1",pin=[],pout=16,pein=[],peout=[],gr_i=[],id="",in_implicit=[],out_implicit="E"),model=scicos_model(sim="input",in1=[],in2=[],intyp=1,out=-1,out2=[],outtyp=-1,evtin=[],evtout=[],state=[],dstate=[],odstate=list(),rpar=[],ipar=1,opar=list(),blocktype="c",firing=[],dep_ut=[false,false],label="",nzcross=0,nmode=0,equations=list()),doc=list()); scs_m.objs[16-1]=scicos_link(xx=[274.2247,294.2247],yy=[222.52782,222.52782],id="drawlink",thick=[0,0],ct=[1,1],from=[15,1,0],to=[3,2,1]); scs_m.objs[17-1]=scicos_block(gui="IN_f",graphics=scicos_graphics(orig=[254.2247,202.52782],sz=[20,20],flip=true,theta=0,exprs="3",pin=[],pout=18,pein=[],peout=[],gr_i=[],id="",in_implicit=[],out_implicit="E"),model=scicos_model(sim="input",in1=[],in2=[],intyp=1,out=-1,out2=[],outtyp=-1,evtin=[],evtout=[],state=[],dstate=[],odstate=list(),rpar=[],ipar=3,opar=list(),blocktype="c",firing=[],dep_ut=[false,false],label="",nzcross=0,nmode=0,equations=list()),doc=list()); scs_m.objs[18-1]=scicos_link(xx=[274.2247,294.2247],yy=[212.52782,212.52782],id="drawlink",thick=[0,0],ct=[1,1],from=[17,1,0],to=[3,3,1]); scs_m.objs[19-1]=scicos_block(gui="OUT_f",graphics=scicos_graphics(orig=[388.82793,233.45067],sz=[20,20],flip=true,theta=0,exprs="1",pin=20,pout=[],pein=[],peout=[],gr_i=[],id="",in_implicit="E",out_implicit=[]),model=scicos_model(sim="output",in1=-1,in2=[],intyp=-1,out=[],out2=[],outtyp=1,evtin=[],evtout=[],state=[],dstate=[],odstate=list(),rpar=[],ipar=1,opar=list(),blocktype="c",firing=[],dep_ut=[false,false],label="",nzcross=0,nmode=0,equations=list()),doc=list()); scs_m.objs[20-1]=scicos_link(xx=[368.82793,388.82793],yy=[243.45067,243.45067],id="drawlink",thick=[0,0],ct=[1,1],from=[6,2,0],to=[19,1,1]); scs_m.objs[21-1]=scicos_block(gui="OUT_f",graphics=scicos_graphics(orig=[466.2036,169.25363],sz=[20,20],flip=true,theta=0,exprs="2",pin=22,pout=[],pein=[],peout=[],gr_i=[],id="",in_implicit="E",out_implicit=[]),model=scicos_model(sim="output",in1=-1,in2=[],intyp=-1,out=[],out2=[],outtyp=1,evtin=[],evtout=[],state=[],dstate=[],odstate=list(),rpar=[],ipar=2,opar=list(),blocktype="c",firing=[],dep_ut=[false,false],label="",nzcross=0,nmode=0,equations=list()),doc=list()); scs_m.objs[22-1]=scicos_link(xx=[446.2036,466.2036],yy=[179.25363,179.25363],id="drawlink",thick=[0,0],ct=[1,1],from=[9,1,0],to=[21,1,1]); model=scicos_model(); model.sim="csuper"; model.in1=[1,1,1]; model.in2=[1,1,1]; model.out=[1,1]; model.out2=[1,1]; model.intyp=[5,1,5]; model.outtyp=[5,5]; model.blocktype="h"; model.firing=false; model.dep_ut=[true,false]; model.rpar=scs_m; gr_i=[]; x=standard_define([2,3],model,[],gr_i); } JKFLIPFLOP.prototype.details = function JKFLIPFLOP() { } JKFLIPFLOP.prototype.get = function JKFLIPFLOP() { } JKFLIPFLOP.prototype.set = function JKFLIPFLOP() { for (i=1;i<=length(arg1.model.rpar.objs);i+=1) { o=arg1.model.rpar.objs(i); if (typeof(o)=="Block"&&o.gui=="DOLLAR_m") { path=i; break } } newpar=list(); xx=arg1.model.rpar.objs(path); exprs=xx.graphics.exprs(1); model=xx.model; init_old=model.odstate(1); while (true) { [ok,init,exprs0]=scicos_getvalue([msprintf(gettext("Set %s block parameters"),"JKFLIPFLOP")," ",gettext("JK flip-flop")," ",gettext("The \'Initial Value\' must be 0 or 1 of type int8"),gettext(" - Negative values are considered as int8(0)"),gettext(" - Positive values are considered as int8(1)")," "],gettext("Initial Value"),list("vec",1),exprs); if (!ok) { break } if (init<=0) { init=int8(0); } else if (init>0) { init=int8(1); } if (ok) { xx.graphics.exprs[1-1]=exprs0; model.odstate[1-1]=init; xx.model=model; arg1.model.rpar.objs[path-1]=xx; break } } needcompile=0; if (init_old!=init) { newpar[size(newpar)+1-1]=1; needcompile=2; } x=arg1; y=needcompile; typ=newpar; } } /* autogenerated from "macros/IntegerOp/DLATCH.sci" */ function DLATCH() { DLATCH.prototype.define = function DLATCH() { scs_m=scicos_diagram(version="scicos4.2",props=scicos_params(wpar=[600,450,0,0,600,450],Title=["DLATCH"],tol=[0.0001,0.000001,1.000e-10,100001,0,0],tf=100000,context=" ",void1=[],options=tlist(["scsopt","3D","Background","Link","ID","Cmap"],list(true,33),[8,1],[1,5],list([5,1],[4,1]),[0.8,0.8,0.8]),void2=[],void3=[],doc=list())); scs_m.objs[1-1]=scicos_block(gui="CONST_m",graphics=scicos_graphics(orig=[109.62561,263.44465],sz=[20,20],flip=true,theta=0,exprs="int8(0)",pin=[],pout=7,pein=[],peout=[],gr_i=[],id="",in_implicit=[],out_implicit="E"),model=scicos_model(sim=list("cstblk4_m",4),in1=[],in2=[],intyp=1,out=1,out2=1,outtyp=5,evtin=[],evtout=[],state=[],dstate=[],odstate=list(),rpar=[],ipar=[],opar=list(int8(0)),blocktype="d",firing=[],dep_ut=[false,false],label="",nzcross=0,nmode=0,equations=list()),doc=list()); scs_m.objs[2-1]=scicos_block(gui="IFTHEL_f",graphics=scicos_graphics(orig=[233.37693,320.30536],sz=[60,60],flip=true,theta=0,exprs=["0","1"],pin=13,pout=[],pein=[],peout=[6,0],gr_i=list(["txt=[\'If in>0\';\' \';\' then else\'];","xstringb(orig(1),orig(2),txt,sz(1),sz(2),\'fill\');"],8),id="",in_implicit="E",out_implicit=[]),model=scicos_model(sim=list("ifthel",-1),in1=1,in2=1,intyp=-1,out=[],out2=[],outtyp=1,evtin=[],evtout=[1,1],state=[],dstate=[],odstate=list(),rpar=[],ipar=[],opar=list(),blocktype="l",firing=[-1,-1],dep_ut=[true,false],label="",nzcross=1,nmode=1,equations=list()),doc=list()); scs_m.objs[3-1]=scicos_block(gui="LOGICAL_OP",graphics=scicos_graphics(orig=[152.88902,260.24498],sz=[60,40],flip=true,theta=0,exprs=["2","1","5","0"],pin=[15,7],pout=5,pein=[],peout=[],gr_i=list("xstringb(orig(1),orig(2),[\'Logical Op \';OPER],sz(1),sz(2),\'fill\');",8),id="",in_implicit=["E","E"],out_implicit="E"),model=scicos_model(sim=list("logicalop_i8",4),in1=[-1,-1],in2=[-2,-2],intyp=[5,5],out=-1,out2=-2,outtyp=5,evtin=[],evtout=[],state=[],dstate=[],odstate=list(),rpar=[],ipar=[1,0],opar=list(),blocktype="c",firing=[],dep_ut=[true,false],label="",nzcross=0,nmode=0,equations=list()),doc=list()); scs_m.objs[4-1]=scicos_block(gui="SAMPHOLD_m",graphics=scicos_graphics(orig=[233.72156,260.24498],sz=[40,40],flip=true,theta=0,exprs="5",pin=5,pout=9,pein=6,peout=[],gr_i=list("xstringb(orig(1),orig(2),\'S/H\',sz(1),sz(2),\'fill\')",8),id="",in_implicit="E",out_implicit="E"),model=scicos_model(sim=list("samphold4_m",4),in1=-1,in2=-2,intyp=5,out=-1,out2=-2,outtyp=5,evtin=1,evtout=[],state=[],dstate=[],odstate=list(),rpar=[],ipar=[],opar=list(),blocktype="d",firing=[],dep_ut=[true,false],label="",nzcross=0,nmode=0,equations=list()),doc=list()); scs_m.objs[5-1]=scicos_link(xx=[221.46044,225.15013],yy=[280.24498,280.24498],id="drawlink",thick=[0,0],ct=[1,1],from=[3,1,0],to=[4,1,1]); scs_m.objs[6-1]=scicos_link(xx=[253.37693,253.72156],yy=[314.59108,305.95927],id="drawlink",thick=[0,0],ct=[5,-1],from=[2,1,0],to=[4,1,1]); scs_m.objs[7-1]=scicos_link(xx=[138.19704,144.31759],yy=[273.44465,273.57832],id="drawlink",thick=[0,0],ct=[1,1],from=[1,1,0],to=[3,2,1]); scs_m.objs[8-1]=scicos_block(gui="LOGICAL_OP",graphics=scicos_graphics(orig=[317.46698,309.46812],sz=[60,40],flip=true,theta=0,exprs=["1","5","5","0"],pin=11,pout=17,pein=[],peout=[],gr_i=list("xstringb(orig(1),orig(2),[\'Logical Op \';OPER],sz(1),sz(2),\'fill\');",8),id="",in_implicit="E",out_implicit="E"),model=scicos_model(sim=list("logicalop_i8",4),in1=-1,in2=-2,intyp=5,out=-1,out2=-2,outtyp=5,evtin=[],evtout=[],state=[],dstate=[],odstate=list(),rpar=[],ipar=[5,0],opar=list(),blocktype="c",firing=[],dep_ut=[true,false],label="",nzcross=0,nmode=0,equations=list()),doc=list()); scs_m.objs[9-1]=scicos_link(xx=[282.29299,305.09603,305.09603],yy=[280.24498,280.52797,280.83282],id="drawlink",thick=[0,0],ct=[1,1],from=[4,1,0],to=[10,1,1]); scs_m.objs[10-1]=scicos_block(gui="SPLIT_f",graphics=scicos_graphics(orig=[305.09603,280.83282],sz=[0.3333333,0.3333333],flip=true,theta=0,exprs=[],pin=9,pout=[11,19],pein=[],peout=[],gr_i=list([],8),id="",in_implicit="E",out_implicit=["E","E","E"]),model=scicos_model(sim="lsplit",in1=-1,in2=[],intyp=1,out=[-1,-1,-1],out2=[],outtyp=1,evtin=[],evtout=[],state=[],dstate=[],odstate=list(),rpar=[],ipar=[],opar=list(),blocktype="c",firing=[],dep_ut=[true,false],label="",nzcross=0,nmode=0,equations=list()),doc=list()); scs_m.objs[11-1]=scicos_link(xx=[305.09603,305.09603,308.89555],yy=[280.83282,329.46812,329.46812],id="drawlink",thick=[0,0],ct=[1,1],from=[10,1,0],to=[8,1,1]); scs_m.objs[12-1]=scicos_block(gui="IN_f",graphics=scicos_graphics(orig=[184.8055,340.30536],sz=[20,20],flip=true,theta=0,exprs="2",pin=[],pout=13,pein=[],peout=[],gr_i=list(" ",8),id="",in_implicit=[],out_implicit="E"),model=scicos_model(sim="input",in1=[],in2=[],intyp=1,out=-1,out2=[],outtyp=-1,evtin=[],evtout=[],state=[],dstate=[],odstate=list(),rpar=[],ipar=2,opar=list(),blocktype="c",firing=[],dep_ut=[false,false],label="",nzcross=0,nmode=0,equations=list()),doc=list()); scs_m.objs[13-1]=scicos_link(xx=[204.8055,224.8055],yy=[350.30536,350.30536],id="drawlink",thick=[0,0],ct=[1,1],from=[12,1,0],to=[2,1,1]); scs_m.objs[14-1]=scicos_block(gui="IN_f",graphics=scicos_graphics(orig=[104.31759,276.91165],sz=[20,20],flip=true,theta=0,exprs="1",pin=[],pout=15,pein=[],peout=[],gr_i=list(" ",8),id="",in_implicit=[],out_implicit="E"),model=scicos_model(sim="input",in1=[],in2=[],intyp=1,out=-1,out2=[],outtyp=-1,evtin=[],evtout=[],state=[],dstate=[],odstate=list(),rpar=[],ipar=1,opar=list(),blocktype="c",firing=[],dep_ut=[false,false],label="",nzcross=0,nmode=0,equations=list()),doc=list()); scs_m.objs[15-1]=scicos_link(xx=[124.31759,144.31759],yy=[286.91165,286.91165],id="drawlink",thick=[0,0],ct=[1,1],from=[14,1,0],to=[3,1,1]); scs_m.objs[16-1]=scicos_block(gui="OUT_f",graphics=scicos_graphics(orig=[406.03841,319.46812],sz=[20,20],flip=true,theta=0,exprs="2",pin=17,pout=[],pein=[],peout=[],gr_i=list(" ",8),id="",in_implicit="E",out_implicit=[]),model=scicos_model(sim="output",in1=-1,in2=[],intyp=-1,out=[],out2=[],outtyp=1,evtin=[],evtout=[],state=[],dstate=[],odstate=list(),rpar=[],ipar=2,opar=list(),blocktype="c",firing=[],dep_ut=[false,false],label="",nzcross=0,nmode=0,equations=list()),doc=list()); scs_m.objs[17-1]=scicos_link(xx=[386.03841,406.03841],yy=[329.46812,329.46812],id="drawlink",thick=[0,0],ct=[1,1],from=[8,1,0],to=[16,1,1]); scs_m.objs[18-1]=scicos_block(gui="OUT_f",graphics=scicos_graphics(orig=[325.09603,270.83282],sz=[20,20],flip=true,theta=0,exprs="1",pin=19,pout=[],pein=[],peout=[],gr_i=list(" ",8),id="",in_implicit="E",out_implicit=[]),model=scicos_model(sim="output",in1=-1,in2=[],intyp=-1,out=[],out2=[],outtyp=1,evtin=[],evtout=[],state=[],dstate=[],odstate=list(),rpar=[],ipar=1,opar=list(),blocktype="c",firing=[],dep_ut=[false,false],label="",nzcross=0,nmode=0,equations=list()),doc=list()); scs_m.objs[19-1]=scicos_link(xx=[305.09603,325.09603],yy=[280.83282,280.83282],id="drawlink",thick=[0,0],ct=[1,1],from=[10,2,0],to=[18,1,1]); model=scicos_model(); model.sim="csuper"; model.in1=[1,1]; model.in2=[1,1]; model.out=[1,1]; model.out2=[1,1]; model.intyp=[5,-1]; model.outtyp=[5,5]; model.blocktype="h"; model.firing=false; model.dep_ut=[true,false]; model.rpar=scs_m; gr_i=[]; x=standard_define([2,3],model,[],gr_i); } DLATCH.prototype.details = function DLATCH() { } DLATCH.prototype.get = function DLATCH() { } DLATCH.prototype.set = function DLATCH() { x=arg1; } } /* autogenerated from "macros/IntegerOp/BITCLEAR.sci" */ function BITCLEAR() { BITCLEAR.prototype.define = function BITCLEAR() { model=scicos_model(); model.sim=list("bit_clear_32",4); model.in1=1; model.in2=1; model.out=1; model.out2=1; model.intyp=3; model.outtyp=3; model.opar=list(int32(0)); model.blocktype="c"; model.dep_ut=[true,false]; exprs=[sci2exp(3),sci2exp(0)]; gr_i=[]; x=standard_define([4,2],model,exprs,gr_i); } BITCLEAR.prototype.details = function BITCLEAR() { } BITCLEAR.prototype.get = function BITCLEAR() { } BITCLEAR.prototype.set = function BITCLEAR() { x=arg1; graphics=arg1.graphics; exprs=graphics.exprs; model=arg1.model; while (true) { [ok,Datatype,bit,exprs]=scicos_getvalue([msprintf(gettext("Set %s block parameters"),"BITCLEAR")," ",gettext("Clear a bit")," "],[msprintf(gettext("Data Type %s"),"(3:int32, 4:int16, 5:int8, ...)"),gettext("Index of Bit (0 is least significant)")],list("vec",1,"vec",1),exprs); if (!ok) { break } in1=[model.in1,model.in2]; if (floor(bit)!=bit) { block_parameter_error(msprintf(gettext("Wrong type for \'%s\' parameter: %5.1f."),gettext("Index of Bit"),bit),gettext("Must be integer.")); ok=false; } else if ((Datatype==3)||(Datatype==6)) { if (bit>31||bit<0) { block_parameter_error(msprintf(gettext("Wrong value for \'%s\' parameter: %d."),gettext("Index of Bit"),bit),msprintf(gettext("Must be in the interval %s."),"[0, 31]")); ok=false; } else { bit=uint32(bit); n=(2^32-1)-2^bit; n=uint32(n); model.sim=list("bit_clear_32",4); } } else if ((Datatype==4)||(Datatype==7)) { if (bit>15||bit<0) { block_parameter_error(msprintf(gettext("Wrong value for \'%s\' parameter: %d."),gettext("Index of Bit"),bit),msprintf(gettext("Must be in the interval %s."),"[0, 15]")); ok=false; } else { bit=uint16(bit); n=(2^16-1)-2^bit; n=uint16(n); model.sim=list("bit_clear_16",4); } } else if ((Datatype==5)||(Datatype==8)) { if (bit>7||bit<0) { block_parameter_error(msprintf(gettext("Wrong value for \'%s\' parameter: %d."),gettext("Index of Bit"),bit),msprintf(gettext("Must be in the interval %s."),"[0, 7]")); ok=false; } else { bit=uint8(bit); n=(2^8-1)-2^bit; n=uint8(n); model.sim=list("bit_clear_8",4); } } else { block_parameter_error(msprintf(gettext("Wrong value for \'%s\' parameter: %d."),gettext("Data Type"),Datatype),msprintf(gettext("Must be in the interval %s."),"[3, 8]")); ok=false; } if (ok) { it=Datatype; ot=Datatype; out=[1,1]; [model,graphics,ok]=set_io(model,graphics,list(in1,it),list(out,ot),[],[]); } if (ok) { graphics.exprs=exprs; model.opar=list(n); x.graphics=graphics; x.model=model; break } } } } /* autogenerated from "macros/IntegerOp/EXTRACTBITS.sci" */ function EXTRACTBITS() { EXTRACTBITS.prototype.define = function EXTRACTBITS() { numb=[]; model=scicos_model(); model.sim=list("extract_bit_32_UH0",4); model.in1=1; model.in2=1; model.out=1; model.out2=1; model.intyp=3; model.outtyp=3; model.ipar=[0,numb]; model.blocktype="c"; model.dep_ut=[true,false]; exprs=[sci2exp(3),sci2exp(1),sci2exp(0),sci2exp(0)]; gr_i=[]; x=standard_define([4,2],model,exprs,gr_i); } EXTRACTBITS.prototype.details = function EXTRACTBITS() { } EXTRACTBITS.prototype.get = function EXTRACTBITS() { } EXTRACTBITS.prototype.set = function EXTRACTBITS() { x=arg1; graphics=arg1.graphics; exprs=graphics.exprs; model=arg1.model; while (true) { [ok,Datatype,rule,bit,scal,exprs]=scicos_getvalue([msprintf(gettext("Set %s block parameters"),"EXTRACTBITS")," ",gettext("Bits Extraction")," ",gettext(" - Bits to Extract:"),gettext("    1 Upper Half"),gettext("    2 Lower Half"),gettext("    3 Range from MSB"),gettext("    4 Range to LSB"),gettext("    5 Range of Bits"),gettext(" - Number of Bits or Index of bit : Index 0 is LSB"),gettext("    If \'Bits to Extract\' is set to \'Range of bits\': [Start, End]")," "],[msprintf(gettext("Data Type %s"),"(3:int32, 4:int16, 5:int8, ...)"),gettext("Bits to extract"),gettext("Number of Bits or Index of Bit"),gettext("Treat Bit Field as an Integer (0:No, 1:Yes)")],list("vec",1,"vec",1,"vec",-1,"vec",1),exprs); if (!ok) { break } bitstr=strcat(string(bit.slice())," "); if ((rule<1)||(rule>5)) { block_parameter_error(msprintf(gettext("Wrong value for \'%s\' parameter: %d."),gettext("Bits to Extract"),rule),msprintf(gettext("Must be in the interval %s."),"[1, 5]")); ok=false; } else if (scal<0||scal>1) { block_parameter_error(msprintf(gettext("Wrong value for \'%s\' parameter: %d."),gettext("Treat Bit Field as an Integer"),scal),msprintf(gettext("Must be in the interval %s."),"[0, 1]")); ok=false; } else { in1=[model.in1,model.in2]; bit=int(bit); rule=int(rule); if ((rule==3)||(rule==4)) { if ((size(bit,"*")!=1)) { block_parameter_error(msprintf(gettext("Wrong size for \'%s\' parameter: %s."),gettext("Number of Bits or Index of Bit"),bitstr),gettext("Must be a single value.")); ok=false; } else { numb=bit; } } else if ((rule==5)) { if ((size(bit,"*")!=2)) { block_parameter_error(msprintf(gettext("Wrong size for \'%s\' parameter: %s."),gettext("Number of Bits or Index of Bit"),bitstr),gettext("Must have this form: [Start, End].")); ok=false; } else if (bit[1-1]>bit[2-1]) { block_parameter_error(msprintf(gettext("Wrong values for \'%s\' parameter: %s."),gettext("Number of Bits or Index of Bit"),bitstr),msprintf(gettext("\'Start\' must be less than \'End\'."))); ok=false; } else { numb=bit[2-1]-bit[1-1]; } } else { bit=0; numb=[]; } } if (ok) { if ((Datatype==3||Datatype==6)) { if (or(bit.slice()>31)||or(bit.slice()<0)) { block_parameter_error(msprintf(gettext("Wrong value for \'%s\' parameter: %s."),gettext("Number of Bits or Index of Bit"),bitstr),msprintf(gettext("Indexes must be in the interval %s."),"[0, 31]")); ok=false; } switch (rule) { case 1: switch (scal) { case 0: model.sim=list("extract_bit_32_UH0",4); case 1: switch (Datatype) { case 3: model.sim=list("extract_bit_32_UH1",4); case 6: model.sim=list("extract_bit_u32_UH1",4); } } case 2: model.sim=list("extract_bit_32_LH",4); case 3: switch (scal) { case 0: model.sim=list("extract_bit_32_MSB0",4); case 1: switch (Datatype) { case 3: model.sim=list("extract_bit_32_MSB1",4); case 6: model.sim=list("extract_bit_u32_MSB1",4); } } case 4: model.sim=list("extract_bit_32_LSB",4); case 5: switch (scal) { case 0: model.sim=list("extract_bit_32_RB0",4); case 1: switch (Datatype) { case 3: model.sim=list("extract_bit_32_RB1",4); case 6: model.sim=list("extract_bit_u32_RB1",4); } } } } else if ((Datatype==4||Datatype==7)) { if (or(bit.slice()>15)||or(bit.slice()<0)) { block_parameter_error(msprintf(gettext("Wrong value for \'%s\' parameter: %s."),gettext("Number of Bits or Index of Bit"),bitstr),msprintf(gettext("Indexes must be in the interval %s."),"[0, 15]")); ok=false; } switch (rule) { case 1: switch (scal) { case 0: model.sim=list("extract_bit_16_UH0",4); case 1: switch (Datatype) { case 4: model.sim=list("extract_bit_16_UH1",4); case 7: model.sim=list("extract_bit_u16_UH1",4); } } case 2: model.sim=list("extract_bit_16_LH",4); case 3: switch (scal) { case 0: model.sim=list("extract_bit_16_MSB0",4); case 1: switch (Datatype) { case 4: model.sim=list("extract_bit_16_MSB1",4); case 7: model.sim=list("extract_bit_u16_MSB1",4); } } case 4: model.sim=list("extract_bit_16_LSB",4); case 5: switch (scal) { case 0: model.sim=list("extract_bit_16_RB0",4); case 1: switch (Datatype) { case 4: model.sim=list("extract_bit_16_RB1",4); case 7: model.sim=list("extract_bit_u16_RB1",4); } } } } else if ((Datatype==5||Datatype==8)) { if (or(bit.slice()>7)||or(bit.slice()<0)) { block_parameter_error(msprintf(gettext("Wrong value for \'%s\' parameter: %s."),gettext("Number of Bits or Index of Bit"),bitstr),msprintf(gettext("Indexes must be in the interval %s."),"[0, 7]")); ok=false; } switch (rule) { case 1: switch (scal) { case 0: model.sim=list("extract_bit_8_UH0",4); case 1: switch (Datatype) { case 5: model.sim=list("extract_bit_8_UH1",4); case 8: model.sim=list("extract_bit_u8_UH1",4); } } case 2: model.sim=list("extract_bit_8_LH",4); case 3: switch (scal) { case 0: model.sim=list("extract_bit_8_MSB0",4); case 1: switch (Datatype) { case 5: model.sim=list("extract_bit_8_MSB1",4); case 8: model.sim=list("extract_bit_u8_MSB1",4); } } case 4: model.sim=list("extract_bit_8_LSB",4); case 5: switch (scal) { case 0: model.sim=list("extract_bit_8_RB0",4); case 1: switch (Datatype) { case 5: model.sim=list("extract_bit_8_RB1",4); case 8: model.sim=list("extract_bit_u8_RB1",4); } } } } else { block_parameter_error(msprintf(gettext("Wrong value for \'%s\' parameter: %d."),gettext("Data Type"),Datatype),msprintf(gettext("Must be in the interval %s."),"[3, 8]")); ok=false; } } if (ok) { it=Datatype; ot=Datatype; out=[1,1]; [model,graphics,ok]=set_io(model,graphics,list(in1,it),list(out,ot),[],[]); } if (ok) { graphics.exprs=exprs; model.ipar=[int(bit.slice()),int(numb.slice())]; x.graphics=graphics; x.model=model; break } } } } /* autogenerated from "macros/IntegerOp/SHIFT.sci" */ function SHIFT() { SHIFT.prototype.define = function SHIFT() { sgn=[0,0]; OPER=0; model=scicos_model(); model.sim=list("shift_32_LA",4); model.in1=-1; model.out=-1; model.in2=-2; model.out2=-2; model.intyp=3; model.outtyp=3; model.rpar=[]; model.ipar=sgn; model.blocktype="c"; model.dep_ut=[true,false]; exprs=[sci2exp(3),sci2exp(0),sci2exp(0)]; gr_i=[]; x=standard_define([3,2],model,exprs,gr_i); } SHIFT.prototype.details = function SHIFT() { } SHIFT.prototype.get = function SHIFT() { } SHIFT.prototype.set = function SHIFT() { x=arg1; graphics=arg1.graphics; model=arg1.model; exprs=graphics.exprs; while (true) { [ok,Datatype,nb,np,exprs]=scicos_getvalue([msprintf(gettext("Set %s block parameters"),"SHIFT")," ",gettext("Shift/Rotates bits")],[msprintf(gettext("Data Type %s"),"(3:int32, 4:int16, 5:int8, ...)"),gettext("Number of Bits to Shift Left (Negative number to shift right)"),gettext("Shift Type (0:Arithmetic, 1:Circular)")],list("vec",1,"vec",1,"vec",1),exprs); if (!ok) { break } if ((np!=0&&np!=1)) { block_parameter_error(msprintf(gettext("Wrong value for \'%s\' parameter: %d."),gettext("Shift Type"),np),msprintf(gettext("Must be in the interval %s."),"[0, 1]")); ok=false; } it=Datatype; ot=Datatype; if ((Datatype==3||Datatype==6)) { if (nb>0) { switch (np) { case 0: model.sim=list("shift_32_LA",4); case 1: model.sim=list("shift_32_LC",4); } } else if (nb<0) { switch (np) { case 0: switch (Datatype) { case 3: model.sim=list("shift_32_RA",4); case 6: model.sim=list("shift_u32_RA",4); } case 1: model.sim=list("shift_32_RC",4); } } } else if ((Datatype==4||Datatype==7)) { if (nb>0) { switch (np) { case 0: model.sim=list("shift_16_LA",4); case 1: model.sim=list("shift_16_LC",4); } } else if (nb<0) { switch (np) { case 0: switch (Datatype) { case 4: model.sim=list("shift_16_RA",4); case 7: model.sim=list("shift_u16_RA",4); } case 1: model.sim=list("shift_16_RC",4); } } } else if ((Datatype==5||Datatype==8)) { if (nb>0) { switch (np) { case 0: model.sim=list("shift_8_LA",4); case 1: model.sim=list("shift_8_LC",4); } } else if (nb<0) { switch (np) { case 0: switch (Datatype) { case 5: model.sim=list("shift_8_RA",4); case 8: model.sim=list("shift_u8_RA",4); } case 1: model.sim=list("shift_8_RC",4); } } } else { block_parameter_error(msprintf(gettext("Wrong value for \'%s\' parameter: %d."),gettext("Data Type"),Datatype),msprintf(gettext("Must be in the interval %s."),"[3, 8]")); ok=false; } if (ok) { [model,graphics,ok]=set_io(model,graphics,list([-1,-2],it),list([-1,-2],ot),[],[]); } if (ok) { model.ipar=nb; graphics.exprs=exprs; x.graphics=graphics; x.model=model; break } } } } /* autogenerated from "macros/IntegerOp/DFLIPFLOP.sci" */ function DFLIPFLOP() { DFLIPFLOP.prototype.define = function DFLIPFLOP() { scs_m=scicos_diagram(version="scicos4.2",props=scicos_params(wpar=[600,450,0,0,600,450],Title=["DFLIPFLOP"],tol=[0.0001,0.000001,1.000e-10,100001,0,0],tf=100000,context=" ",void1=[],options=tlist(["scsopt","3D","Background","Link","ID","Cmap"],list(true,33),[8,1],[1,5],list([5,1],[4,1]),[0.8,0.8,0.8]),void2=[],void3=[],doc=list())); scs_m.objs[1-1]=scicos_block(gui="CONST_m",graphics=scicos_graphics(orig=[109.62561,263.44465],sz=[20,20],flip=true,theta=0,exprs="int8(0)",pin=[],pout=6,pein=[],peout=[],gr_i=[],id="",in_implicit=[],out_implicit="E"),model=scicos_model(sim=list("cstblk4_m",4),in1=[],in2=[],intyp=1,out=1,out2=1,outtyp=5,evtin=[],evtout=[],state=[],dstate=[],odstate=list(),rpar=[],ipar=[],opar=list(int8(0)),blocktype="d",firing=[],dep_ut=[false,false],label="",nzcross=0,nmode=0,equations=list()),doc=list()); scs_m.objs[2-1]=scicos_block(gui="IFTHEL_f",graphics=scicos_graphics(orig=[239.98293,378.2166],sz=[60,60],flip=true,theta=0,exprs=["1","1"],pin=29,pout=[],pein=22,peout=[16,44],gr_i=[],id="",in_implicit="E",out_implicit=[]),model=scicos_model(sim=list("ifthel",-1),in1=1,in2=1,intyp=-1,out=[],out2=[],outtyp=1,evtin=1,evtout=[1,1],state=[],dstate=[],odstate=list(),rpar=[],ipar=[],opar=list(),blocktype="l",firing=[-1,-1],dep_ut=[true,false],label="",nzcross=1,nmode=1,equations=list()),doc=list()); scs_m.objs[3-1]=scicos_block(gui="LOGICAL_OP",graphics=scicos_graphics(orig=[152.88902,260.24498],sz=[60,40],flip=true,theta=0,exprs=["2","1","5","0"],pin=[11,39],pout=5,pein=[],peout=[],gr_i=[],id="",in_implicit=["E","E"],out_implicit="E"),model=scicos_model(sim=list("logicalop_i8",4),in1=[-1,-1],in2=[-2,-2],intyp=[5,5],out=-1,out2=-2,outtyp=5,evtin=[],evtout=[],state=[],dstate=[],odstate=list(),rpar=[],ipar=[1,0],opar=list(),blocktype="c",firing=[],dep_ut=[true,false],label="",nzcross=0,nmode=0,equations=list()),doc=list()); scs_m.objs[4-1]=scicos_block(gui="SAMPHOLD_m",graphics=scicos_graphics(orig=[233.72156,260.24498],sz=[40,40],flip=true,theta=0,exprs="5",pin=5,pout=33,pein=42,peout=[],gr_i=[],id="",in_implicit="E",out_implicit="E"),model=scicos_model(sim=list("samphold4_m",4),in1=-1,in2=-2,intyp=5,out=-1,out2=-2,outtyp=5,evtin=1,evtout=[],state=[],dstate=[],odstate=list(),rpar=[],ipar=[],opar=list(),blocktype="d",firing=[],dep_ut=[true,false],label="",nzcross=0,nmode=0,equations=list()),doc=list()); scs_m.objs[5-1]=scicos_link(xx=[221.46044,225.15013],yy=[280.24498,280.24498],id="drawlink",thick=[0,0],ct=[1,1],from=[3,1,0],to=[4,1,1]); scs_m.objs[6-1]=scicos_link(xx=[138.19704,140.34523],yy=[273.44465,273.49157],id="drawlink",thick=[0,0],ct=[1,1],from=[1,1,0],to=[38,1,1]); scs_m.objs[7-1]=scicos_block(gui="LOGICAL_OP",graphics=scicos_graphics(orig=[373.24106,309.46812],sz=[60,40],flip=true,theta=0,exprs=["1","5","5","0"],pin=36,pout=13,pein=[],peout=[],gr_i=[],id="",in_implicit="E",out_implicit="E"),model=scicos_model(sim=list("logicalop_i8",4),in1=-1,in2=-2,intyp=5,out=-1,out2=-2,outtyp=5,evtin=[],evtout=[],state=[],dstate=[],odstate=list(),rpar=[],ipar=[5,0],opar=list(),blocktype="c",firing=[],dep_ut=[true,false],label="",nzcross=0,nmode=0,equations=list()),doc=list()); scs_m.objs[8-1]=scicos_block(gui="IN_f",graphics=scicos_graphics(orig=[199.48466,398.2166],sz=[20,20],flip=true,theta=0,exprs="3",pin=[],pout=9,pein=[],peout=[],gr_i=[],id="",in_implicit=[],out_implicit="E"),model=scicos_model(sim="input",in1=[],in2=[],intyp=1,out=-1,out2=[],outtyp=-1,evtin=[],evtout=[],state=[],dstate=[],odstate=list(),rpar=[],ipar=3,opar=list(),blocktype="c",firing=[],dep_ut=[false,false],label="",nzcross=0,nmode=0,equations=list()),doc=list()); scs_m.objs[9-1]=scicos_link(xx=[219.48466,222.54128],yy=[408.2166,408.2166],id="drawlink",thick=[0,0],ct=[1,1],from=[8,1,0],to=[28,1,1]); scs_m.objs[10-1]=scicos_block(gui="IN_f",graphics=scicos_graphics(orig=[104.31759,276.91165],sz=[20,20],flip=true,theta=0,exprs="1",pin=[],pout=11,pein=[],peout=[],gr_i=[],id="",in_implicit=[],out_implicit="E"),model=scicos_model(sim="input",in1=[],in2=[],intyp=1,out=-1,out2=[],outtyp=-1,evtin=[],evtout=[],state=[],dstate=[],odstate=list(),rpar=[],ipar=1,opar=list(),blocktype="c",firing=[],dep_ut=[false,false],label="",nzcross=0,nmode=0,equations=list()),doc=list()); scs_m.objs[11-1]=scicos_link(xx=[124.31759,144.31759],yy=[286.91165,286.91165],id="drawlink",thick=[0,0],ct=[1,1],from=[10,1,0],to=[3,1,1]); scs_m.objs[12-1]=scicos_block(gui="OUT_f",graphics=scicos_graphics(orig=[457.40928,320.20131],sz=[20,20],flip=true,theta=0,exprs="2",pin=13,pout=[],pein=[],peout=[],gr_i=[],id="",in_implicit="E",out_implicit=[]),model=scicos_model(sim="output",in1=-1,in2=[],intyp=-1,out=[],out2=[],outtyp=1,evtin=[],evtout=[],state=[],dstate=[],odstate=list(),rpar=[],ipar=2,opar=list(),blocktype="c",firing=[],dep_ut=[false,false],label="",nzcross=0,nmode=0,equations=list()),doc=list()); scs_m.objs[13-1]=scicos_link(xx=[441.81249,457.40928],yy=[329.46812,330.20131],id="drawlink",thick=[0,0],ct=[1,1],from=[7,1,0],to=[12,1,1]); scs_m.objs[14-1]=scicos_block(gui="OUT_f",graphics=scicos_graphics(orig=[376.4669,270.83282],sz=[20,20],flip=true,theta=0,exprs="1",pin=37,pout=[],pein=[],peout=[],gr_i=[],id="",in_implicit="E",out_implicit=[]),model=scicos_model(sim="output",in1=-1,in2=[],intyp=-1,out=[],out2=[],outtyp=1,evtin=[],evtout=[],state=[],dstate=[],odstate=list(),rpar=[],ipar=1,opar=list(),blocktype="c",firing=[],dep_ut=[false,false],label="",nzcross=0,nmode=0,equations=list()),doc=list()); scs_m_1=scicos_diagram(version="scicos4.2",props=scicos_params(wpar=[600,450,0,0,600,450],Title="Untitled",tol=[0.0001,0.000001,1.000e-10,100001,0,0],tf=100000,context=[],void1=[],options=tlist(["scsopt","3D","Background","Link","ID","Cmap"],list(true,33),[8,1],[1,5],list([5,1],[4,1]),[0.8,0.8,0.8]),void2=[],void3=[],doc=list())); scs_m_1.objs[1-1]=scicos_block(gui="ANDLOG_f",graphics=scicos_graphics(orig=[194,133],sz=[60,60],flip=true,theta=0,exprs=[],pin=[],pout=9,pein=[4,11],peout=[],gr_i=[],id="",in_implicit=[],out_implicit="E"),model=scicos_model(sim="andlog",in1=[],in2=[],intyp=1,out=1,out2=[],outtyp=1,evtin=[1,1],evtout=[],state=[],dstate=[],odstate=list(),rpar=[],ipar=[],opar=list(),blocktype="d",firing=[],dep_ut=[false,false],label="",nzcross=0,nmode=0,equations=list()),doc=list()); scs_m_1.objs[2-1]=scicos_block(gui="CLKIN_f",graphics=scicos_graphics(orig=[149,287],sz=[20,20],flip=true,theta=0,exprs="1",pin=[],pout=[],pein=[],peout=4,gr_i=[],id="",in_implicit=[],out_implicit=[]),model=scicos_model(sim="input",in1=[],in2=[],intyp=1,out=[],out2=[],outtyp=1,evtin=[],evtout=1,state=[],dstate=[],odstate=list(),rpar=[],ipar=1,opar=list(),blocktype="d",firing=-1,dep_ut=[false,false],label="",nzcross=0,nmode=0,equations=list()),doc=list()); scs_m_1.objs[3-1]=scicos_block(gui="CLKOUT_f",graphics=scicos_graphics(orig=[450,83],sz=[20,20],flip=true,theta=0,exprs="1",pin=[],pout=[],pein=8,peout=[],gr_i=[],id="",in_implicit=[],out_implicit=[]),model=scicos_model(sim="output",in1=[],in2=[],intyp=1,out=[],out2=[],outtyp=1,evtin=1,evtout=[],state=[],dstate=[],odstate=list(),rpar=[],ipar=1,opar=list(),blocktype="d",firing=[],dep_ut=[false,false],label="",nzcross=0,nmode=0,equations=list()),doc=list()); scs_m_1.objs[4-1]=scicos_link(xx=[169,214,214],yy=[297,297,198.71],id="drawlink",thick=[0,0],ct=[5,-1],from=[2,1],to=[1,1]); scs_m_1.objs[5-1]=scicos_block(gui="CLKIN_f",graphics=scicos_graphics(orig=[141,330],sz=[20,20],flip=true,theta=0,exprs="2",pin=[],pout=[],pein=[],peout=6,gr_i=[],id="",in_implicit=[],out_implicit=[]),model=scicos_model(sim="input",in1=[],in2=[],intyp=1,out=[],out2=[],outtyp=1,evtin=[],evtout=1,state=[],dstate=[],odstate=list(),rpar=[],ipar=2,opar=list(),blocktype="d",firing=-1,dep_ut=[false,false],label="",nzcross=0,nmode=0,equations=list()),doc=list()); scs_m_1.objs[6-1]=scicos_link(xx=[161,234,234],yy=[340,340,275.78],id="drawlink",thick=[0,0],ct=[5,-1],from=[5,1],to=[10,1]); scs_m_1.objs[7-1]=scicos_block(gui="IFTHEL_f",graphics=scicos_graphics(orig=[331,137],sz=[60,60],flip=true,theta=0,exprs=["1","1"],pin=9,pout=[],pein=12,peout=[8,0],gr_i=[],id="",in_implicit="E",out_implicit=[]),model=scicos_model(sim=list("ifthel",-1),in1=1,in2=1,intyp=-1,out=[],out2=[],outtyp=1,evtin=1,evtout=[1,1],state=[],dstate=[],odstate=list(),rpar=[],ipar=[],opar=list(),blocktype="l",firing=[-1,-1],dep_ut=[true,false],label="",nzcross=1,nmode=1,equations=list()),doc=list()); scs_m_1.objs[8-1]=scicos_link(xx=[351,351,450],yy=[131.29,93,93],id="drawlink",thick=[0,0],ct=[5,-1],from=[7,1],to=[3,1]); scs_m_1.objs[9-1]=scicos_link(xx=[262.57,322.43],yy=[163,167],id="drawlink",thick=[0,0],ct=[1,1],from=[1,1],to=[7,1]); scs_m_1.objs[10-1]=scicos_block(gui="CLKSPLIT_f",graphics=scicos_graphics(orig=[234,275.78348],sz=[0.3333333,0.3333333],flip=true,theta=0,exprs=[],pin=[],pout=[],pein=6,peout=[11,12],gr_i=[],id="",in_implicit=[],out_implicit=[]),model=scicos_model(sim="split",in1=[],in2=[],intyp=1,out=[],out2=[],outtyp=1,evtin=1,evtout=[1,1],state=[],dstate=[],odstate=list(),rpar=[],ipar=[],opar=list(),blocktype="d",firing=[false,false,false],dep_ut=[false,false],label="",nzcross=0,nmode=0,equations=list()),doc=list()); scs_m_1.objs[11-1]=scicos_link(xx=[234,234],yy=[275.78,198.71],id="drawlink",thick=[0,0],ct=[5,-1],from=[10,1],to=[1,2]); scs_m_1.objs[12-1]=scicos_link(xx=[234,361,361],yy=[275.78,275.78,202.71],id="drawlink",thick=[0,0],ct=[5,-1],from=[10,2],to=[7,1]); scs_m.objs[15-1]=scicos_block(gui="ANDBLK",graphics=scicos_graphics(orig=[233.73039,318.74407],sz=[40,40],flip=true,theta=0,exprs=[],pin=[],pout=[],pein=[19,16],peout=17,gr_i=[],id="",in_implicit=[],out_implicit=[]),model=scicos_model(sim="csuper",in1=[],in2=[],intyp=1,out=[],out2=[],outtyp=1,evtin=[1,1],evtout=1,state=[],dstate=[],odstate=list(),rpar=scs_m_1,ipar=[],opar=list(),blocktype="h",firing=false,dep_ut=[false,false],label="",nzcross=0,nmode=0,equations=list()),doc=list()); scs_m.objs[16-1]=scicos_link(xx=[259.98293,260.39705],yy=[372.50232,364.45835],id="drawlink",thick=[0,0],ct=[5,-1],from=[2,1,0],to=[15,2,1]); scs_m.objs[17-1]=scicos_link(xx=[253.73039,253.72572],yy=[313.02978,309.29537],id="drawlink",thick=[0,0],ct=[5,-1],from=[15,1,0],to=[41,1,1]); scs_m_1=scicos_diagram(version="scicos4.2",props=scicos_params(wpar=[600,450,0,0,600,450],Title=["EDGE_TRIGGER","./"],tol=[0.0001,0.000001,1.000e-10,100001,0,0,0],tf=30,context=" ",void1=[],options=tlist(["scsopt","3D","Background","Link","ID","Cmap"],list(true,33),[8,1],[1,5],list([5,1],[4,1]),[0.8,0.8,0.8]),void2=[],void3=[],doc=list())); scs_m_1.objs[1-1]=scicos_block(gui="EDGETRIGGER",graphics=scicos_graphics(orig=[288.58631,257.1131],sz=[60,40],flip=true,theta=0,exprs="1",pin=5,pout=3,pein=[],peout=[],gr_i=[],id="",in_implicit="E",out_implicit="E"),model=scicos_model(sim=list("edgetrig",4),in1=1,in2=[],intyp=1,out=1,out2=[],outtyp=1,evtin=[],evtout=[],state=[],dstate=0,odstate=list(),rpar=[],ipar=1,opar=list(),blocktype="c",firing=[],dep_ut=[true,false],label="",nzcross=1,nmode=0,equations=list()),doc=list()); scs_m_1.objs[2-1]=scicos_block(gui="IFTHEL_f",graphics=scicos_graphics(orig=[388.28869,247.1131],sz=[60,60],flip=true,theta=0,exprs=["0","0"],pin=3,pout=[],pein=[],peout=[7,0],gr_i=[],id="",in_implicit="E",out_implicit=[]),model=scicos_model(sim=list("ifthel",-1),in1=1,in2=[],intyp=1,out=[],out2=1,outtyp=[],evtin=[],evtout=[1,1],state=[],dstate=[],odstate=list(),rpar=[],ipar=[],opar=list(),blocktype="l",firing=[-1,-1],dep_ut=[true,false],label="",nzcross=0,nmode=0,equations=list()),doc=list()); scs_m_1.objs[3-1]=scicos_link(xx=[357.15774,362.99107,379.71726],yy=[277.1131,277.1131,277.1131],id="drawlink",thick=[0,0],ct=[1,1],from=[1,1,0],to=[2,1,1]); scs_m_1.objs[4-1]=scicos_block(gui="IN_f",graphics=scicos_graphics(orig=[240.01488,267.1131],sz=[20,20],flip=true,theta=0,exprs="1",pin=[],pout=5,pein=[],peout=[],gr_i=[],id="",in_implicit=[],out_implicit="E"),model=scicos_model(sim="input",in1=[],in2=[],intyp=-1,out=-1,out2=[],outtyp=1,evtin=[],evtout=[],state=[],dstate=[],odstate=list(),rpar=[],ipar=1,opar=list(),blocktype="c",firing=[],dep_ut=[false,false],label="",nzcross=0,nmode=0,equations=list()),doc=list()); scs_m_1.objs[5-1]=scicos_link(xx=[260.01488,280.01488],yy=[277.1131,277.1131],id="drawlink",thick=[0,0],ct=[1,1],from=[4,1,0],to=[1,1,1]); scs_m_1.objs[6-1]=scicos_block(gui="CLKOUTV_f",graphics=scicos_graphics(orig=[398.28869,181.39881],sz=[20,30],flip=true,theta=0,exprs="1",pin=[],pout=[],pein=7,peout=[],gr_i=[],id="",in_implicit=[],out_implicit=[]),model=scicos_model(sim="output",in1=[],in2=[],intyp=1,out=[],out2=[],outtyp=1,evtin=1,evtout=[],state=[],dstate=[],odstate=list(),rpar=[],ipar=1,opar=list(),blocktype="d",firing=[],dep_ut=[false,false],label="",nzcross=0,nmode=0,equations=list()),doc=list()); scs_m_1.objs[7-1]=scicos_link(xx=[408.28869,408.28869],yy=[241.39881,211.39881],id="drawlink",thick=[0,0],ct=[5,-1],from=[2,1,0],to=[6,1,1]); scs_m.objs[18-1]=scicos_block(gui="EDGE_TRIGGER",graphics=scicos_graphics(orig=[133.90637,385.342],sz=[60,40],flip=true,theta=0,exprs=[],pin=26,pout=[],pein=[],peout=19,gr_i=[],id="",in_implicit="E",out_implicit=[]),model=scicos_model(sim="csuper",in1=-1,in2=[],intyp=1,out=[],out2=[],outtyp=1,evtin=[],evtout=1,state=[],dstate=[],odstate=list(),rpar=scs_m_1,ipar=[],opar=list(),blocktype="h",firing=[],dep_ut=[false,false],label="",nzcross=0,nmode=0,equations=list()),doc=list()); scs_m.objs[19-1]=scicos_link(xx=[163.90637,163.90637,247.06372],yy=[379.62771,364.45835,364.45835],id="drawlink",thick=[0,0],ct=[5,-1],from=[18,1,0],to=[15,1,1]); scs_m.objs[20-1]=scicos_block(gui="IN_f",graphics=scicos_graphics(orig=[79.594811,395.47647],sz=[20,20],flip=true,theta=0,exprs="2",pin=[],pout=23,pein=[],peout=[],gr_i=[],id="",in_implicit=[],out_implicit="E"),model=scicos_model(sim="input",in1=[],in2=[],intyp=1,out=-1,out2=[],outtyp=-1,evtin=[],evtout=[],state=[],dstate=[],odstate=list(),rpar=[],ipar=2,opar=list(),blocktype="c",firing=[],dep_ut=[false,false],label="",nzcross=0,nmode=0,equations=list()),doc=list()); scs_m_1=scicos_diagram(version="scicos4.2",props=scicos_params(wpar=[600,450,0,0,600,450],Title=["Extract_Activation","./"],tol=[0.0001,0.000001,1.000e-10,100001,0,0,0],tf=30,context=" ",void1=[],options=tlist(["scsopt","3D","Background","Link","ID","Cmap"],list(true,33),[8,1],[1,5],list([5,1],[4,1]),[0.8,0.8,0.8]),void2=[],void3=[],doc=list())); scs_m_1.objs[1-1]=scicos_block(gui="IFTHEL_f",graphics=scicos_graphics(orig=[150.65045,143.82208],sz=[60,60],flip=true,theta=0,exprs=["0","0"],pin=6,pout=[],pein=[],peout=[3,4],gr_i=[],id="",in_implicit="E",out_implicit=[]),model=scicos_model(sim=list("ifthel",-1),in1=1,in2=[],intyp=1,out=[],out2=[],outtyp=1,evtin=[],evtout=[1,1],state=[],dstate=[],odstate=list(),rpar=[],ipar=[],opar=list(),blocktype="l",firing=[-1,-1],dep_ut=[true,false],label="",nzcross=0,nmode=0,equations=list()),doc=list()); scs_m_1.objs[2-1]=scicos_block(gui="CLKSOMV_f",graphics=scicos_graphics(orig=[169.82143,96.146231],sz=[16.666667,16.666667],flip=true,theta=0,exprs=[],pin=[],pout=[],pein=[3,4,0],peout=8,gr_i=[],id="",in_implicit=[],out_implicit=[]),model=scicos_model(sim="sum",in1=[],in2=[],intyp=1,out=[],out2=[],outtyp=1,evtin=[1,1,1],evtout=1,state=[],dstate=[],odstate=list(),rpar=[],ipar=[],opar=list(),blocktype="d",firing=-1,dep_ut=[false,false],label="",nzcross=0,nmode=0,equations=list()),doc=list()); scs_m_1.objs[3-1]=scicos_link(xx=[170.65045,170.65045,150.04302,150.04302,169.82143],yy=[138.10779,128.235,128.235,104.47956,104.47956],id="drawlink",thick=[0,0],ct=[5,-1],from=[1,1,0],to=[2,1,1]); scs_m_1.objs[4-1]=scicos_link(xx=[190.65045,190.65045,178.15476],yy=[138.10779,111.55729,112.8129],id="drawlink",thick=[0,0],ct=[5,-1],from=[1,2,0],to=[2,2,1]); scs_m_1.objs[5-1]=scicos_block(gui="IN_f",graphics=scicos_graphics(orig=[102.07902,163.82208],sz=[20,20],flip=true,theta=0,exprs="1",pin=[],pout=6,pein=[],peout=[],gr_i=[],id="",in_implicit=[],out_implicit="E"),model=scicos_model(sim="input",in1=[],in2=[],intyp=-1,out=-1,out2=[],outtyp=1,evtin=[],evtout=[],state=[],dstate=[],odstate=list(),rpar=[],ipar=1,opar=list(),blocktype="c",firing=[],dep_ut=[false,false],label="",nzcross=0,nmode=0,equations=list()),doc=list()); scs_m_1.objs[6-1]=scicos_link(xx=[122.07902,142.07902],yy=[173.82208,173.82208],id="drawlink",thick=[0,0],ct=[1,1],from=[5,1,0],to=[1,1,1]); scs_m_1.objs[7-1]=scicos_block(gui="CLKOUTV_f",graphics=scicos_graphics(orig=[168.15476,38.527183],sz=[20,30],flip=true,theta=0,exprs="1",pin=[],pout=[],pein=8,peout=[],gr_i=[],id="",in_implicit=[],out_implicit=[]),model=scicos_model(sim="output",in1=[],in2=[],intyp=1,out=[],out2=[],outtyp=1,evtin=1,evtout=[],state=[],dstate=[],odstate=list(),rpar=[],ipar=1,opar=list(),blocktype="d",firing=[],dep_ut=[false,false],label="",nzcross=0,nmode=0,equations=list()),doc=list()); scs_m_1.objs[8-1]=scicos_link(xx=[178.15476,178.15476],yy=[98.527183,68.527183],id="drawlink",thick=[0,0],ct=[5,-1],from=[2,1,0],to=[7,1,1]); scs_m.objs[21-1]=scicos_block(gui="Extract_Activation",graphics=scicos_graphics(orig=[239.82193,456.57677],sz=[60,40],flip=true,theta=0,exprs=[],pin=31,pout=[],pein=[],peout=22,gr_i=[],id="",in_implicit="E",out_implicit=[]),model=scicos_model(sim="csuper",in1=-1,in2=[],intyp=1,out=[],out2=[],outtyp=1,evtin=[],evtout=1,state=[],dstate=[],odstate=list(),rpar=scs_m_1,ipar=[],opar=list(),blocktype="h",firing=[],dep_ut=[false,false],label="",nzcross=0,nmode=0,equations=list()),doc=list()); scs_m.objs[22-1]=scicos_link(xx=[269.82193,269.98293],yy=[450.86248,443.93089],id="drawlink",thick=[0,0],ct=[5,-1],from=[21,1,0],to=[2,1,1]); scs_m.objs[23-1]=scicos_link(xx=[99.594811,110.25582],yy=[405.47647,405.42077],id="drawlink",thick=[0,0],ct=[1,1],from=[20,1,0],to=[25,1,1]); scs_m.objs[24-1]=scicos_block(gui="SUM_f",graphics=scicos_graphics(orig=[200.5252,469.13173],sz=[16.666667,16.666667],flip=true,theta=0,exprs=[],pin=[27,0,30],pout=31,pein=[],peout=[],gr_i=[],id="",in_implicit=["E","E","E"],out_implicit="E"),model=scicos_model(sim=list("plusblk",2),in1=[-1,-1,-1],in2=[],intyp=1,out=-1,out2=[],outtyp=1,evtin=[],evtout=[],state=[],dstate=[],odstate=list(),rpar=[],ipar=[],opar=list(),blocktype="c",firing=[],dep_ut=[true,false],label="",nzcross=0,nmode=0,equations=list()),doc=list()); scs_m.objs[25-1]=scicos_block(gui="SPLIT_f",graphics=scicos_graphics(orig=[110.25582,405.42077],sz=[0.3333333,0.3333333],flip=true,theta=0,exprs=[],pin=23,pout=[26,27],pein=[],peout=[],gr_i=[],id="",in_implicit="E",out_implicit=["E","E","E"]),model=scicos_model(sim="lsplit",in1=-1,in2=[],intyp=1,out=[-1,-1,-1],out2=[],outtyp=1,evtin=[],evtout=[],state=[],dstate=[],odstate=list(),rpar=[],ipar=[],opar=list(),blocktype="c",firing=[],dep_ut=[true,false],label="",nzcross=0,nmode=0,equations=list()),doc=list()); scs_m.objs[26-1]=scicos_link(xx=[110.25582,114.33667,125.33494],yy=[405.42077,405.39945,405.342],id="drawlink",thick=[0,0],ct=[1,1],from=[25,1,0],to=[18,1,1]); scs_m.objs[27-1]=scicos_link(xx=[110.25582,110.25582,208.85853],yy=[405.42077,469.13173,469.13173],id="drawlink",thick=[0,0],ct=[1,1],from=[25,2,0],to=[24,1,1]); scs_m.objs[28-1]=scicos_block(gui="SPLIT_f",graphics=scicos_graphics(orig=[222.54128,408.2166],sz=[0.3333333,0.3333333],flip=true,theta=0,exprs=[],pin=9,pout=[29,30],pein=[],peout=[],gr_i=[],id="",in_implicit="E",out_implicit=["E","E","E"]),model=scicos_model(sim="lsplit",in1=-1,in2=[],intyp=1,out=[-1,-1,-1],out2=[],outtyp=1,evtin=[],evtout=[],state=[],dstate=[],odstate=list(),rpar=[],ipar=[],opar=list(),blocktype="c",firing=[],dep_ut=[true,false],label="",nzcross=0,nmode=0,equations=list()),doc=list()); scs_m.objs[29-1]=scicos_link(xx=[222.54128,231.4115],yy=[408.2166,408.2166],id="drawlink",thick=[0,0],ct=[1,1],from=[28,1,0],to=[2,1,1]); scs_m.objs[30-1]=scicos_link(xx=[222.54128,222.54128,208.85853,208.85853],yy=[408.2166,453.0015,453.0015,485.7984],id="drawlink",thick=[0,0],ct=[1,1],from=[28,2,0],to=[24,3,1]); scs_m.objs[31-1]=scicos_link(xx=[219.57282,231.2505],yy=[477.46506,476.57677],id="drawlink",thick=[0,0],ct=[1,1],from=[24,1,0],to=[21,1,1]); scs_m.objs[32-1]=scicos_block(gui="SELECT_m",graphics=scicos_graphics(orig=[298.86371,253.57321],sz=[40,40],flip=true,theta=0,exprs=["5","2","1"],pin=[33,40],pout=34,pein=[43,44],peout=[],gr_i=[],id="",in_implicit=["E","E"],out_implicit="E"),model=scicos_model(sim=list("selector_m",4),in1=[-1,-1],in2=[-2,-2],intyp=[5,5],out=-1,out2=-2,outtyp=5,evtin=[1,1],evtout=[],state=[],dstate=1,odstate=list(),rpar=[],ipar=[],opar=list(),blocktype="c",firing=[],dep_ut=[true,false],label="",nzcross=0,nmode=0,equations=list()),doc=list()); scs_m.objs[33-1]=scicos_link(xx=[282.29299,290.29229],yy=[280.24498,280.23987],id="drawlink",thick=[0,0],ct=[1,1],from=[4,1,0],to=[32,1,1]); scs_m.objs[34-1]=scicos_link(xx=[347.43514,357.57328,357.57328],yy=[273.57321,273.57321,280.83282],id="drawlink",thick=[0,0],ct=[1,1],from=[32,1,0],to=[35,1,1]); scs_m.objs[35-1]=scicos_block(gui="SPLIT_f",graphics=scicos_graphics(orig=[357.57328,280.83282],sz=[0.3333333,0.3333333],flip=true,theta=0,exprs=[],pin=34,pout=[36,37],pein=[],peout=[],gr_i=[],id="",in_implicit="E",out_implicit=["E","E","E"]),model=scicos_model(sim="lsplit",in1=-1,in2=[],intyp=1,out=[-1,-1,-1],out2=[],outtyp=1,evtin=[],evtout=[],state=[],dstate=[],odstate=list(),rpar=[],ipar=[],opar=list(),blocktype="c",firing=[],dep_ut=[true,false],label="",nzcross=0,nmode=0,equations=list()),doc=list()); scs_m.objs[36-1]=scicos_link(xx=[357.57328,357.57328,364.66964],yy=[280.83282,329.46812,329.46812],id="drawlink",thick=[0,0],ct=[1,1],from=[35,1,0],to=[7,1,1]); scs_m.objs[37-1]=scicos_link(xx=[357.57328,376.4669],yy=[280.83282,280.83282],id="drawlink",thick=[0,0],ct=[1,1],from=[35,2,0],to=[14,1,1]); scs_m.objs[38-1]=scicos_block(gui="SPLIT_f",graphics=scicos_graphics(orig=[140.34523,273.49157],sz=[0.3333333,0.3333333],flip=true,theta=0,exprs=[],pin=6,pout=[39,40],pein=[],peout=[],gr_i=[],id="",in_implicit="E",out_implicit=["E","E","E"]),model=scicos_model(sim="lsplit",in1=-1,in2=[],intyp=1,out=[-1,-1,-1],out2=[],outtyp=1,evtin=[],evtout=[],state=[],dstate=[],odstate=list(),rpar=[],ipar=[],opar=list(),blocktype="c",firing=[],dep_ut=[true,false],label="",nzcross=0,nmode=0,equations=list()),doc=list()); scs_m.objs[39-1]=scicos_link(xx=[140.34523,144.31759],yy=[273.49157,273.57832],id="drawlink",thick=[0,0],ct=[1,1],from=[38,1,0],to=[3,2,1]); scs_m.objs[40-1]=scicos_link(xx=[140.34523,140.34523,290.29229,290.29229],yy=[273.49157,247.70767,247.70767,266.90654],id="drawlink",thick=[0,0],ct=[1,1],from=[38,2,0],to=[32,2,1]); scs_m.objs[41-1]=scicos_block(gui="CLKSPLIT_f",graphics=scicos_graphics(orig=[253.72572,309.29537],sz=[0.3333333,0.3333333],flip=true,theta=0,exprs=[],pin=[],pout=[],pein=17,peout=[42,43],gr_i=[],id="",in_implicit=[],out_implicit=[]),model=scicos_model(sim="split",in1=[],in2=[],intyp=1,out=[],out2=[],outtyp=1,evtin=1,evtout=[1,1],state=[],dstate=[],odstate=list(),rpar=[],ipar=[],opar=list(),blocktype="d",firing=[false,false,false],dep_ut=[false,false],label="",nzcross=0,nmode=0,equations=list()),doc=list()); scs_m.objs[42-1]=scicos_link(xx=[253.72572,253.72156],yy=[309.29537,305.95927],id="drawlink",thick=[0,0],ct=[5,-1],from=[41,1,0],to=[4,1,1]); scs_m.objs[43-1]=scicos_link(xx=[253.72572,312.19705,312.19705],yy=[309.29537,309.29537,299.28749],id="drawlink",thick=[0,0],ct=[5,-1],from=[41,2,0],to=[32,1,1]); scs_m.objs[44-1]=scicos_link(xx=[279.98293,279.98293,325.53038,325.53038],yy=[372.50232,315.89455,315.89455,299.28749],id="drawlink",thick=[0,0],ct=[5,-1],from=[2,2,0],to=[32,2,1]); model=scicos_model(); model.sim="csuper"; model.in1=[1,1,1]; model.in2=[1,1,1]; model.out=[1,1]; model.out2=[1,1]; model.intyp=[5,1,1]; model.outtyp=[5,5]; model.blocktype="h"; model.firing=false; model.dep_ut=[true,false]; model.rpar=scs_m; gr_i=[]; x=standard_define([2,3],model,[],gr_i); } DFLIPFLOP.prototype.details = function DFLIPFLOP() { } DFLIPFLOP.prototype.get = function DFLIPFLOP() { } DFLIPFLOP.prototype.set = function DFLIPFLOP() { x=arg1; } } /* autogenerated from "macros/IntegerOp/LOGIC.sci" */ function LOGIC() { LOGIC.prototype.define = function LOGIC() { mat=[0,0,0,1]; model=scicos_model(); model.sim=list("logic",4); model.in1=[1,1]; model.in2=[1,1]; model.out=1; model.out2=1; model.evtin=1; model.intyp=[5,5]; model.outtyp=5; model.opar=list(int8(mat)); model.blocktype="c"; model.firing=false; model.dep_ut=[true,false]; exprs=[sci2exp(mat),sci2exp(0)]; gr_i=[]; x=standard_define([2,2],model,exprs,gr_i); } LOGIC.prototype.details = function LOGIC() { } LOGIC.prototype.get = function LOGIC() { } LOGIC.prototype.set = function LOGIC() { x=arg1; graphics=arg1.graphics; exprs=graphics.exprs; model=arg1.model; while (true) { [ok,mat,herit,exprs]=scicos_getvalue([msprintf(gettext("Set %s block parameters"),"LOGIC")," ",gettext("Combinatorial logic")," ",gettext("  Rows of the matrix are the output values"),gettext("  Number of rows must be a power of two."),gettext("  Number of columns gives the number of outputs.")," "],[gettext("Truth Table (matrix of outputs)"),gettext("Accepts Inherited Events (0:No, 1:Yes)")],list("mat",[-1,-2],"vec",1),exprs); if (!ok) { break } nout=size(mat,2); nin=(log(size(mat,1))/log(2)); u1=floor(nin); if ((u1!=nin)) { block_parameter_error(msprintf(gettext("Wrong size for \'%s\' parameter: %d."),gettext("Truth Table"),size(mat,1)),gettext("Number of rows must be a power of two.")); ok=false; } else if ((find(mat.slice()!=0&&mat.slice()!=1)!=[])) { block_parameter_error(msprintf(gettext("Wrong value for \'%s\' parameter."),gettext("Truth Table")),msprintf(gettext("Elements must be in the interval %s."),"[0, 1]")); ok=false; } else if (herit<0||herit>1) { block_parameter_error(msprintf(gettext("Wrong value for \'%s\' parameter: %d."),gettext("Accepts Inherited Events"),herit),msprintf(gettext("Must be in the interval %s."),"[0, 1]")); ok=false; } if (ok) { in1=[ones(nin,1),ones(nin,1)]; out=[ones(nout,1),ones(nout,1)]; it=5*ones(1,nin); ot=5*ones(1,nout); [model,graphics,ok]=set_io(model,graphics,list(in1,it),list(out,ot),ones(1-herit,1),[]); } if (ok) { graphics.exprs=exprs; mat=int8(mat); model.opar=list(mat); x.graphics=graphics; x.model=model; break } } } } /* autogenerated from "macros/NonLinear/INTRP2BLK_f.sci" */ function INTRP2BLK_f() { INTRP2BLK_f.prototype.define = function INTRP2BLK_f() { a=[0,1]; b=[0,1]; c=[0,1,1,2]; model=scicos_model(); model.sim=list("intrp2",1); model.in1=[1,1]; model.out=1; model.rpar=[a,b,c.slice()]; model.ipar=[2,2]; model.blocktype="c"; model.dep_ut=[true,false]; exprs=[strcat(sci2exp(a)),strcat(sci2exp(b)),strcat(sci2exp(c,0))]; gr_i=[]; x=standard_define([3,2],model,exprs,gr_i); } INTRP2BLK_f.prototype.details = function INTRP2BLK_f() { } INTRP2BLK_f.prototype.get = function INTRP2BLK_f() { } INTRP2BLK_f.prototype.set = function INTRP2BLK_f() { x=arg1; graphics=arg1.graphics; exprs=graphics.exprs; model=arg1.model; while (true) { [ok,a,b,c,exprs]=scicos_getvalue("Set Interpolation block parameters",["X coord.","Y coord.","Z values"],list("vec",-1,"vec",-1,"mat",[-1,-1]),exprs); if (!ok) { break } if (size(a,"*")!=size(c,"c")||size(b,"*")!=size(c,"r")) { message("incompatible dimension"); } else if (min(a.slice(2-1,$)-a.slice(1-1,$-1))<=0||min(b.slice(2-1,$)-b.slice(1-1,$-1))<=0) { message("X and Y must be strictly increasing"); } else { if (ok) { graphics.exprs=exprs; model.rpar=[a.slice(),b.slice(),c.slice()]; model.ipar=[size(a,"*"),size(b,"*")]; x.graphics=graphics; x.model=model; break } } } } } /* autogenerated from "macros/NonLinear/PRODUCT.sci" */ function PRODUCT() { PRODUCT.prototype.define = function PRODUCT() { sgn=[1,-1]; model=scicos_model(); model.sim=list("product",4); model.in1=[-1,-1]; model.out=-1; model.ipar=sgn; model.blocktype="c"; model.dep_ut=[true,false]; exprs=sci2exp(sgn); gr_i=[]; x=standard_define([2,3],model,exprs,gr_i); } PRODUCT.prototype.details = function PRODUCT() { } PRODUCT.prototype.get = function PRODUCT() { } PRODUCT.prototype.set = function PRODUCT() { x=arg1; graphics=arg1.graphics; model=arg1.model; exprs=graphics.exprs; while (true) { [ok,sgn,exprs]=scicos_getvalue([" Set multiplication block parameters","(multiplication is set with + 1, division with -1)",""],"Number of inputs or sign vector",list("vec",-1),exprs); if (!ok) { break } sgn=sgn.slice(); if (size(sgn,1)==1) { if (sgn<1) { message("Number of inputs must be > 0"); ok=false; } else if (sgn==1) { in1=-1; sgn=[]; nout=1; } else { in1=-ones(sgn,1); sgn=ones(sgn,1); nout=-1; } } else { if (!and(abs(sgn)==1)) { message("Signs can only be +1 or -1"); ok=false; } else { in1=-ones(size(sgn,1),1); nout=-1; } } if (ok) { [model,graphics,ok]=check_io(model,graphics,in1,nout,[],[]); } if (ok) { model.ipar=sgn; graphics.exprs=exprs; x.graphics=graphics; x.model=model; break } } } } /* autogenerated from "macros/NonLinear/COSBLK_f.sci" */ function COSBLK_f() { COSBLK_f.prototype.define = function COSBLK_f() { in1=1; model=scicos_model(); model.sim="cosblk"; model.in1=-1; model.out=-1; model.blocktype="c"; model.dep_ut=[true,false]; gr_i=[]; x=standard_define([2,2],model,[],gr_i); } COSBLK_f.prototype.details = function COSBLK_f() { } COSBLK_f.prototype.get = function COSBLK_f() { } COSBLK_f.prototype.set = function COSBLK_f() { x=arg1; } } /* autogenerated from "macros/NonLinear/SIGNUM.sci" */ function SIGNUM() { SIGNUM.prototype.define = function SIGNUM() { nu=-1; model=scicos_model(); model.sim=list("signum",4); model.in1=nu; model.out=nu; model.nzcross=nu; model.nmode=nu; model.blocktype="c"; model.dep_ut=[true,false]; exprs=[string([1])]; gr_i=[]; x=standard_define([2,2],model,exprs,gr_i); } SIGNUM.prototype.details = function SIGNUM() { } SIGNUM.prototype.get = function SIGNUM() { } SIGNUM.prototype.set = function SIGNUM() { x=arg1; graphics=arg1.graphics; exprs=graphics.exprs; model=arg1.model; while (true) { [ok,zcr,exprs]=scicos_getvalue("Set block parameters",["use zero_crossing (1: yes) (0:no)"],list("vec",1),exprs); if (!ok) { break } graphics.exprs=exprs; if (ok) { if (zcr!=0) { model.nmode=-1; model.nzcross=-1; } else { model.nmode=0; model.nzcross=0; } x.graphics=graphics; x.model=model; break } } } } /* autogenerated from "macros/NonLinear/SINBLK_f.sci" */ function SINBLK_f() { SINBLK_f.prototype.define = function SINBLK_f() { model=scicos_model(); model.sim="sinblk"; model.in1=-1; model.out=-1; model.blocktype="c"; model.dep_ut=[true,false]; exprs=" "; gr_i=[]; x=standard_define([2,2],model,exprs,gr_i); } SINBLK_f.prototype.details = function SINBLK_f() { } SINBLK_f.prototype.get = function SINBLK_f() { } SINBLK_f.prototype.set = function SINBLK_f() { x=arg1; } } /* autogenerated from "macros/NonLinear/SAT_f.sci" */ function SAT_f() { SAT_f.prototype.define = function SAT_f() { minp=-1; maxp=1; slope=1; rpar=[minp,maxp,slope]; model=scicos_model(); model.sim=list("lusat",1); model.in1=1; model.nzcross=2; model.out=1; model.rpar=[minp,maxp,slope]; model.blocktype="c"; model.dep_ut=[true,false]; exprs=[string(minp),string(maxp),string(slope)]; gr_i=[]; x=standard_define([2,2],model,exprs,gr_i); } SAT_f.prototype.details = function SAT_f() { } SAT_f.prototype.get = function SAT_f() { } SAT_f.prototype.set = function SAT_f() { x=arg1; graphics=arg1.graphics; exprs=graphics.exprs; model=arg1.model; while (true) { [ok,minp,maxp,pente,exprs]=scicos_getvalue("Set Saturation parameters",["Min","Max","Slope"],list("vec",1,"vec",1,"vec",1),exprs); if (!ok) { break } if (maxp<=0) { message("Max must be strictly positive"); } else if (pente<=0) { message("Slope must be strictly positive"); } else { rpar=[minp/pente,maxp/pente,pente]; model.rpar=rpar; model.firing=[]; graphics.exprs=exprs; x.graphics=graphics; x.model=model; break } } } } /* autogenerated from "macros/NonLinear/LOOKUP_f.sci" */ function LOOKUP_f() { LOOKUP_f.prototype.define = function LOOKUP_f() { model=scicos_model(); model.sim="lookup"; model.in1=1; model.out=1; model.rpar=[-2,-1,1,2,-1,1,-1,1]; model.blocktype="c"; model.dep_ut=[true,false]; gr_i=[]; x=standard_define([2,2],model,[],gr_i); } LOOKUP_f.prototype.details = function LOOKUP_f() { } LOOKUP_f.prototype.get = function LOOKUP_f() { } LOOKUP_f.prototype.set = function LOOKUP_f() { x=arg1; graphics=arg1.graphics; exprs=graphics.exprs; model=arg1.model; rpar=model.rpar; n=size(rpar,"*")/2; xx=rpar.slice(1-1,n); yy=rpar.slice(n+1-1,2*n); while (true) { [ln,fun]=where() if (!or(fun=="do_eval")) { [xx,yy,ok,gc]=edit_curv(xx,yy,"axy"); } else { ok=true; } if (!ok) { break } n=size(xx,"*"); if (or(xx.slice(2-1,n)-xx.slice(1-1,n-1)<=0)) { message("You have not defined a function"); ok=false; } if (ok) { model.rpar=[xx.slice(),yy.slice()]; x.graphics=graphics; x.model=model; break } } } } /* autogenerated from "macros/NonLinear/INTRPLBLK_f.sci" */ function INTRPLBLK_f() { INTRPLBLK_f.prototype.define = function INTRPLBLK_f() { a=[0,1]; b=[0,1]; model=scicos_model(); model.sim="intrpl"; model.in1=1; model.out=1; model.rpar=[a,b]; model.blocktype="c"; model.dep_ut=[true,false]; exprs=[strcat(sci2exp(a)),strcat(sci2exp(b))]; gr_i=[]; x=standard_define([2,2],model,exprs,gr_i); } INTRPLBLK_f.prototype.details = function INTRPLBLK_f() { } INTRPLBLK_f.prototype.get = function INTRPLBLK_f() { } INTRPLBLK_f.prototype.set = function INTRPLBLK_f() { x=arg1; graphics=arg1.graphics; exprs=graphics.exprs; model=arg1.model; while (true) { [ok,a,b,exprs]=scicos_getvalue("Set Interpolation block parameters",["X coord.","Y coord."],list("vec",-1,"vec",-1),exprs); if (!ok) { break } if (size(a,"*")!=size(b,"*")) { message("X and Y must have the same size"); } else if (min(a.slice(2-1,$)-a.slice(1-1,$-1))<=0) { message("X must be strictly increasing"); } else { if (ok) { graphics.exprs=exprs; model.rpar=[a.slice(),b.slice()]; x.graphics=graphics; x.model=model; break } } } } } /* autogenerated from "macros/NonLinear/PROD_f.sci" */ function PROD_f() { PROD_f.prototype.define = function PROD_f() { model=scicos_model(); model.sim=list("prod",2); model.in1=[-1,-1]; model.out=-1; model.blocktype="c"; model.dep_ut=[true,false]; x=standard_define([1,1],model,[],[]); } PROD_f.prototype.details = function PROD_f() { } PROD_f.prototype.get = function PROD_f() { } PROD_f.prototype.set = function PROD_f() { x=arg1; } } /* autogenerated from "macros/NonLinear/DLRADAPT_f.sci" */ function DLRADAPT_f() { DLRADAPT_f.prototype.define = function DLRADAPT_f() { p=[0,1]; rn=[]; rd=[math.complex(0.2,0.8),math.complex(0.2,-0.8),math.complex(0.3,0.7),math.complex(0.3,-0.7)]; g=[1,1]; last_u=[]; last_y=[0,0]; model=scicos_model(); model.sim="dlradp"; model.in1=[1,1]; model.out=1; model.evtin=1; model.dstate=[last_u,last_y]; model.rpar=[p.slice(),real(rn.slice()),imag(rn.slice()),real(rd.slice()),imag(rd.slice()),g.slice()]; model.ipar=[0,2,2]; model.blocktype="d"; model.firing=[]; model.dep_ut=[true,false]; exprs=[sci2exp(p),sci2exp(rn),sci2exp(rd,0),sci2exp(g),sci2exp(last_u),sci2exp(last_y)]; gr_i=[]; x=standard_define([2,2],model,exprs,gr_i); } DLRADAPT_f.prototype.details = function DLRADAPT_f() { } DLRADAPT_f.prototype.get = function DLRADAPT_f() { } DLRADAPT_f.prototype.set = function DLRADAPT_f() { x=arg1; graphics=arg1.graphics; exprs=graphics.exprs; model=arg1.model; while (true) { [ok,p,rn,rd,g,last_u,last_y,exprs]=scicos_getvalue("Set block parameters",["Vector of p mesh points","Numerator roots (one line for each mesh)","Denominator roots (one line for each mesh)","Vector of gain at mesh points","past inputs (Num degree values)","past outputs (Den degree values)"],list("vec",-1,"mat",[-1,-1],"mat",["size(%1,\'*\')","-1"],"vec","size(%1,\'*\')","vec","size(%2,2)","vec","size(%3,2)"),exprs); if (!ok) { break } m=size(rn,2); [npt,n]=size(rd); if (m>=n) { message("Transfer must be strictly proper"); } else if (size(rn,1)!=0&&size(rn,1)!=size(p,"*")) { message("Numerator roots matrix row size\'s is incorrect"); } else { rpar=[p.slice(),real(rn.slice()),imag(rn.slice()),real(rd.slice()),imag(rd.slice()),g.slice()]; ipar=[m,n,npt]; model.dstate=[last_u.slice(),last_y.slice()]; model.rpar=rpar; model.ipar=ipar; graphics.exprs=exprs; x.graphics=graphics; x.model=model; break } } } } /* autogenerated from "macros/NonLinear/QUANT_f.sci" */ function QUANT_f() { QUANT_f.prototype.define = function QUANT_f() { pas=0.1; meth=1; model=scicos_model(); model.sim="qzrnd"; model.in1=-1; model.out=-1; model.rpar=pas; model.ipar=meth; model.blocktype="c"; model.dep_ut=[true,false]; exprs=[string(pas),string(meth)]; gr_i=[]; x=standard_define([2,2],model,exprs,gr_i); } QUANT_f.prototype.details = function QUANT_f() { } QUANT_f.prototype.get = function QUANT_f() { } QUANT_f.prototype.set = function QUANT_f() { x=arg1; graphics=arg1.graphics; exprs=graphics.exprs; model=arg1.model; while (true) { [ok,pas,meth,exprs]=scicos_getvalue("Set parameters",["Step","Quantization Type (1-4)"],list("vec",1,"vec",1),exprs); if (!ok) { break } if (meth<1||meth>4) { message("Quantization Type must be from 1 to 4"); } else { rpar=pas; model.rpar=rpar; model.ipar=meth; switch (meth) { case 1: model.sim="qzrnd"; case 2: model.sim="qztrn"; case 3: model.sim="qzflr"; case 4: model.sim="qzcel"; } graphics.exprs=exprs; x.graphics=graphics; x.model=model; break } } } } /* autogenerated from "macros/NonLinear/LOGBLK_f.sci" */ function LOGBLK_f() { LOGBLK_f.prototype.define = function LOGBLK_f() { in1=1; a=math.E; model=scicos_model(); model.sim="logblk"; model.in1=-1; model.out=-1; model.rpar=a; model.blocktype="c"; model.dep_ut=[true,false]; exprs="%e"; gr_i=[]; x=standard_define([2,2],model,exprs,gr_i); } LOGBLK_f.prototype.details = function LOGBLK_f() { } LOGBLK_f.prototype.get = function LOGBLK_f() { } LOGBLK_f.prototype.set = function LOGBLK_f() { x=arg1; graphics=arg1.graphics; exprs=graphics.exprs; model=arg1.model; if (size(exprs,"*")==2) { exprs=exprs[2-1]; } while (true) { [ok,a,exprs]=scicos_getvalue("Set log block parameters","Basis (>1)",list("vec",1),exprs); if (!ok) { break } if (a<=1) { message("Basis must be larger than 1"); } else { if (ok) { graphics.exprs=exprs; model.rpar=a; x.graphics=graphics; x.model=model; break } } } } } /* autogenerated from "macros/NonLinear/MAX_f.sci" */ function MAX_f() { MAX_f.prototype.define = function MAX_f() { in1=-1; model=scicos_model(); model.sim="maxblk"; model.in1=in1; model.out=1; model.dstate=[0,0]; model.blocktype="c"; model.dep_ut=[true,false]; exprs=" "; gr_i=[]; x=standard_define([2,2],model,exprs,gr_i); } MAX_f.prototype.details = function MAX_f() { } MAX_f.prototype.get = function MAX_f() { } MAX_f.prototype.set = function MAX_f() { x=arg1; } } /* autogenerated from "macros/NonLinear/INVBLK.sci" */ function INVBLK() { INVBLK.prototype.define = function INVBLK() { in1=-1; model=scicos_model(); model.sim=list("invblk4",4); model.in1=in1; model.out=in1; model.blocktype="c"; model.dep_ut=[true,false]; exprs=" "; gr_i=[]; x=standard_define([2,2],model,exprs,gr_i); } INVBLK.prototype.details = function INVBLK() { } INVBLK.prototype.get = function INVBLK() { } INVBLK.prototype.set = function INVBLK() { x=arg1; } } /* autogenerated from "macros/NonLinear/EXPBLK_m.sci" */ function EXPBLK_m() { EXPBLK_m.prototype.define = function EXPBLK_m() { in1=1; a=math.E; model=scicos_model(); model.sim=list("expblk_m",4); model.in1=-1; model.in2=-2; model.out=-1; model.out2=-2; model.intyp=1; model.outtyp=1; model.rpar=a; model.blocktype="c"; model.dep_ut=[true,false]; exprs=["%e"]; gr_i=[]; x=standard_define([2,2],model,exprs,gr_i); } EXPBLK_m.prototype.details = function EXPBLK_m() { } EXPBLK_m.prototype.get = function EXPBLK_m() { } EXPBLK_m.prototype.set = function EXPBLK_m() { x=arg1; graphics=arg1.graphics; exprs=graphics.exprs; model=arg1.model; if (size(exprs,"*")==2) { exprs=exprs[2-1]; } while (true) { [ok,a,exprs]=scicos_getvalue("Set a^u block parameters","a (>0)",list("vec",1),exprs); if (!ok) { break } if (or(a<=0)) { message("a^u : a must be positive"); } else { graphics.exprs=exprs; model.rpar=a; x.graphics=graphics; x.model=model; break } } } } /* autogenerated from "macros/NonLinear/ABS_VALUE.sci" */ function ABS_VALUE() { ABS_VALUE.prototype.define = function ABS_VALUE() { nu=-1; model=scicos_model(); model.sim=list("absolute_value",4); model.in1=nu; model.out=nu; model.nzcross=nu; model.nmode=nu; model.blocktype="c"; model.dep_ut=[true,false]; exprs=[string([1])]; gr_i=[]; x=standard_define([2,2],model,exprs,gr_i); } ABS_VALUE.prototype.details = function ABS_VALUE() { } ABS_VALUE.prototype.get = function ABS_VALUE() { } ABS_VALUE.prototype.set = function ABS_VALUE() { x=arg1; graphics=arg1.graphics; exprs=graphics.exprs; model=arg1.model; while (true) { [ok,zcr,exprs]=scicos_getvalue("Set block parameters",["use zero_crossing (1: yes) (0:no)"],list("vec",1),exprs); if (!ok) { break } graphics.exprs=exprs; if (ok) { if (zcr!=0) { model.nmode=-1; model.nzcross=-1; } else { model.nmode=0; model.nzcross=0; } x.graphics=graphics; x.model=model; break } } } } /* autogenerated from "macros/NonLinear/MIN_f.sci" */ function MIN_f() { MIN_f.prototype.define = function MIN_f() { in1=-1; model=scicos_model(); model.sim="minblk"; model.in1=in1; model.out=1; model.dstate=[0,0]; model.blocktype="c"; model.dep_ut=[true,false]; exprs=sci2exp(in1); gr_i=[]; x=standard_define([2,2],model,exprs,gr_i); } MIN_f.prototype.details = function MIN_f() { } MIN_f.prototype.get = function MIN_f() { } MIN_f.prototype.set = function MIN_f() { x=arg1; } } /* autogenerated from "macros/NonLinear/SATURATION.sci" */ function SATURATION() { SATURATION.prototype.define = function SATURATION() { minp=-1; maxp=1; rpar=[maxp,minp]; model=scicos_model(); model.sim=list("satur",4); model.in1=1; model.nzcross=2; model.nmode=1; model.out=1; model.rpar=rpar; model.blocktype="c"; model.dep_ut=[true,false]; exprs=[string(maxp),string(minp),string(model.nmode)]; gr_i=[]; x=standard_define([2,2],model,exprs,gr_i); } SATURATION.prototype.details = function SATURATION() { } SATURATION.prototype.get = function SATURATION() { } SATURATION.prototype.set = function SATURATION() { x=arg1; graphics=arg1.graphics; exprs=graphics.exprs; model=arg1.model; while (true) { [ok,maxp,minp,zeroc,exprs]=scicos_getvalue("Set Saturation parameters",["Upper limit","Lower limit","zero crossing (0:no, 1:yes)"],list("vec",1,"vec",1,"vec",1),exprs); if (!ok) { break } if (maxp<=minp) { message("Upper limit must be > Lower limit"); } else { rpar=[maxp,minp]; model.rpar=rpar; if (zeroc!=0) { model.nzcross=2; model.nmode=1; } else { model.nzcross=0; model.nmode=0; } graphics.exprs=exprs; x.graphics=graphics; x.model=model; break } } } } /* autogenerated from "macros/NonLinear/TANBLK_f.sci" */ function TANBLK_f() { TANBLK_f.prototype.define = function TANBLK_f() { in1=-1; model=scicos_model(); model.sim="tanblk"; model.in1=in1; model.out=in1; model.blocktype="c"; model.dep_ut=[true,false]; exprs=sci2exp(in1); gr_i=[]; x=standard_define([2,2],model,exprs,gr_i); } TANBLK_f.prototype.details = function TANBLK_f() { } TANBLK_f.prototype.get = function TANBLK_f() { } TANBLK_f.prototype.set = function TANBLK_f() { x=arg1; x.model.firing=[]; } } /* autogenerated from "macros/NonLinear/FSV_f.sci" */ function FSV_f() { FSV_f.prototype.define = function FSV_f() { in1=1; model=scicos_model(); model.sim=list("fsv",1); model.in1=in1; model.out=in1; model.blocktype="c"; model.dep_ut=[true,false]; exprs=" "; gr_i=[]; x=standard_define([2,2],model,exprs,gr_i); } FSV_f.prototype.details = function FSV_f() { } FSV_f.prototype.get = function FSV_f() { } FSV_f.prototype.set = function FSV_f() { x=arg1; } } /* autogenerated from "macros/NonLinear/EXPBLK_f.sci" */ function EXPBLK_f() { EXPBLK_f.prototype.define = function EXPBLK_f() { in1=1; a=math.E; model=scicos_model(); model.sim="expblk"; model.in1=-1; model.out=-1; model.rpar=a; model.blocktype="c"; model.dep_ut=[true,false]; exprs=["%e"]; gr_i=[]; x=standard_define([2,2],model,exprs,gr_i); } EXPBLK_f.prototype.details = function EXPBLK_f() { } EXPBLK_f.prototype.get = function EXPBLK_f() { } EXPBLK_f.prototype.set = function EXPBLK_f() { x=arg1; graphics=arg1.graphics; exprs=graphics.exprs; model=arg1.model; if (size(exprs,"*")==2) { exprs=exprs[2-1]; } while (true) { [ok,a,exprs]=scicos_getvalue("Set a^u block parameters","a (>0)",list("vec",1),exprs); if (!ok) { break } if (or(a<=0)) { message("a^u : a must be positive"); } else { graphics.exprs=exprs; model.rpar=a; x.graphics=graphics; x.model=model; break } } } } /* autogenerated from "macros/NonLinear/ABSBLK_f.sci" */ function ABSBLK_f() { ABSBLK_f.prototype.define = function ABSBLK_f() { model=scicos_model(); model.sim=list("absblk",1); model.in1=-1; model.out=-1; model.blocktype="c"; model.dep_ut=[true,false]; gr_i=[]; x=standard_define([2,2],model,[],gr_i); } ABSBLK_f.prototype.details = function ABSBLK_f() { } ABSBLK_f.prototype.get = function ABSBLK_f() { } ABSBLK_f.prototype.set = function ABSBLK_f() { x=arg1; } } /* autogenerated from "macros/NonLinear/POWBLK_f.sci" */ function POWBLK_f() { POWBLK_f.prototype.define = function POWBLK_f() { in1=1; a=1.5; model=scicos_model(); model.sim="powblk"; model.in1=-1; model.out=-1; model.rpar=a; model.blocktype="c"; model.dep_ut=[true,false]; exprs=string(a); gr_i=[]; x=standard_define([2,2],model,exprs,gr_i); } POWBLK_f.prototype.details = function POWBLK_f() { } POWBLK_f.prototype.get = function POWBLK_f() { } POWBLK_f.prototype.set = function POWBLK_f() { x=arg1; graphics=arg1.graphics; exprs=graphics.exprs; model=arg1.model; if (size(exprs,"*")==2) { exprs=exprs[2-1]; } while (true) { [ok,a,exprs]=scicos_getvalue("Set u^a block parameters","to the power of",list("vec",1),exprs); if (!ok) { break } graphics.exprs=exprs; if (a==int(a)) { model.ipar=a; model.rpar=[]; } else { model.rpar=a; model.ipar=[]; } model.firing=[]; x.graphics=graphics; x.model=model; break } } } /* autogenerated from "macros/NonLinear/MAXMIN.sci" */ function MAXMIN() { MAXMIN.prototype.define = function MAXMIN() { model=scicos_model(); model.sim=list("minmax",4); model.out=1; model.in1=-1; model.blocktype="c"; model.dep_ut=[true,false]; model.ipar=0; exprs=[string(transpose([2,1,1]))]; gr_i=[]; x=standard_define([2,2],model,exprs,gr_i); x.graphics.style="MAXMIN;displayedLabel=MAX"; } MAXMIN.prototype.details = function MAXMIN() { } MAXMIN.prototype.get = function MAXMIN() { } MAXMIN.prototype.set = function MAXMIN() { x=arg1; graphics=arg1.graphics; exprs=graphics.exprs; model=arg1.model; while (true) { [ok,mm,nin,zcr,exprs]=scicos_getvalue("Set Max/Min block parameters",["Min (1) or Max (2) ","Number of input vectors (1 or 2)","zero-crossing (1: yes, 0;no)"],list("vec",1,"vec",1,"vec",1),exprs); if (!ok) { break } if (zcr!=0) { zcr=-1; } if (mm!=1) { mm=2; } if (nin!=1&&nin!=2) { message("Wrong number of inputs, only 1 and 2 allowed"); ok=false; } if (ok) { if (nin==1) { [model,graphics,ok]=check_io(model,graphics,-1,1,[],[]); } else { [model,graphics,ok]=check_io(model,graphics,[-1,-1],-1,[],[]); } } if (ok) { model.nzcross=zcr; if (nin==1) { model.nmode=abs(zcr); } else { model.nmode=zcr; } model.ipar=mm; if (mm==1) { label="MIN"; } else { label="MAX"; } graphics.style="MAXMIN;displayedLabel="+label; graphics.exprs=exprs; x.graphics=graphics; x.model=model; break } } } } /* autogenerated from "macros/NonLinear/INVBLK_f.sci" */ function INVBLK_f() { INVBLK_f.prototype.define = function INVBLK_f() { in1=-1; model=scicos_model(); model.sim="invblk"; model.in1=in1; model.out=in1; model.blocktype="c"; model.dep_ut=[true,false]; exprs=" "; gr_i=[]; x=standard_define([2,2],model,exprs,gr_i); } INVBLK_f.prototype.details = function INVBLK_f() { } INVBLK_f.prototype.get = function INVBLK_f() { } INVBLK_f.prototype.set = function INVBLK_f() { x=arg1; } } /* made from 247/274 files */