summaryrefslogtreecommitdiff
path: root/js
diff options
context:
space:
mode:
authorSunil Shetye2018-06-18 11:51:53 +0530
committerSunil Shetye2018-06-18 11:51:53 +0530
commite6afdd8a122a9c029b21d6410803587a9e1e833c (patch)
tree73c103df29ec79e891706c63a76c30d08a99bad0 /js
parent4c77977aec3b84daaa2a7cfb2a1ebe936c9fb550 (diff)
downloadsci2js-e6afdd8a122a9c029b21d6410803587a9e1e833c.tar.gz
sci2js-e6afdd8a122a9c029b21d6410803587a9e1e833c.tar.bz2
sci2js-e6afdd8a122a9c029b21d6410803587a9e1e833c.zip
support transpose operator
Diffstat (limited to 'js')
-rw-r--r--js/Branching/DEMUX.js64
-rw-r--r--js/Branching/DEMUX_f.js64
-rw-r--r--js/Branching/MUX.js63
-rw-r--r--js/Branching/MUX_f.js63
-rw-r--r--js/MatrixOp/MATCATH.js62
-rw-r--r--js/MatrixOp/MATCATV.js63
-rw-r--r--js/Misc/CBLOCK.js129
-rw-r--r--js/Misc/HYSTHERESIS.js51
-rw-r--r--js/NonLinear/MAXMIN.js69
9 files changed, 610 insertions, 18 deletions
diff --git a/js/Branching/DEMUX.js b/js/Branching/DEMUX.js
index 1c1bb24e..7720e05c 100644
--- a/js/Branching/DEMUX.js
+++ b/js/Branching/DEMUX.js
@@ -1,3 +1,63 @@
-Syntax error in input LexToken(TRANSPOSE,"'",1,1565)
/* autogenerated from "macros/Branching/DEMUX.sci" */
-None
+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
+}
+}
+}
+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() {
+}
+}
diff --git a/js/Branching/DEMUX_f.js b/js/Branching/DEMUX_f.js
index da953f94..96181162 100644
--- a/js/Branching/DEMUX_f.js
+++ b/js/Branching/DEMUX_f.js
@@ -1,3 +1,63 @@
-Syntax error in input LexToken(TRANSPOSE,"'",1,1564)
/* autogenerated from "macros/Branching/DEMUX_f.sci" */
-None
+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
+}
+}
+}
+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() {
+}
+}
diff --git a/js/Branching/MUX.js b/js/Branching/MUX.js
index 23736077..16c5a28a 100644
--- a/js/Branching/MUX.js
+++ b/js/Branching/MUX.js
@@ -1,3 +1,62 @@
-Syntax error in input LexToken(TRANSPOSE,"'",1,1552)
/* autogenerated from "macros/Branching/MUX.sci" */
-None
+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
+}
+}
+}
+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() {
+}
+}
diff --git a/js/Branching/MUX_f.js b/js/Branching/MUX_f.js
index 6b55afac..5731fec6 100644
--- a/js/Branching/MUX_f.js
+++ b/js/Branching/MUX_f.js
@@ -1,3 +1,62 @@
-Syntax error in input LexToken(TRANSPOSE,"'",1,1553)
/* autogenerated from "macros/Branching/MUX_f.sci" */
-None
+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
+}
+}
+}
+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() {
+}
+}
diff --git a/js/MatrixOp/MATCATH.js b/js/MatrixOp/MATCATH.js
index 7564d627..62f80c64 100644
--- a/js/MatrixOp/MATCATH.js
+++ b/js/MatrixOp/MATCATH.js
@@ -1,3 +1,61 @@
-Syntax error in input LexToken(TRANSPOSE,"'",1,1467)
/* autogenerated from "macros/MatrixOp/MATCATH.sci" */
-None
+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
+}
+}
+}
+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() {
+}
+}
diff --git a/js/MatrixOp/MATCATV.js b/js/MatrixOp/MATCATV.js
index 445a2a75..0f581386 100644
--- a/js/MatrixOp/MATCATV.js
+++ b/js/MatrixOp/MATCATV.js
@@ -1,3 +1,62 @@
-Syntax error in input LexToken(TRANSPOSE,"'",1,1452)
/* autogenerated from "macros/MatrixOp/MATCATV.sci" */
-None
+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
+}
+}
+}
+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() {
+}
+}
diff --git a/js/Misc/CBLOCK.js b/js/Misc/CBLOCK.js
index b85b314b..6a56633e 100644
--- a/js/Misc/CBLOCK.js
+++ b/js/Misc/CBLOCK.js
@@ -1,3 +1,128 @@
-Syntax error in input LexToken(TRANSPOSE,"'",1,5385)
/* autogenerated from "macros/Misc/CBLOCK.sci" */
-None
+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
+}
+}
+}
+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() {
+}
+}
diff --git a/js/Misc/HYSTHERESIS.js b/js/Misc/HYSTHERESIS.js
index a9909edf..140c8f6e 100644
--- a/js/Misc/HYSTHERESIS.js
+++ b/js/Misc/HYSTHERESIS.js
@@ -1,3 +1,50 @@
-Syntax error in input LexToken(TRANSPOSE,"'",1,1661)
/* autogenerated from "macros/Misc/HYSTHERESIS.sci" */
-None
+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
+}
+}
+}
+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() {
+}
+}
diff --git a/js/NonLinear/MAXMIN.js b/js/NonLinear/MAXMIN.js
index fbabbd83..aea7b9e6 100644
--- a/js/NonLinear/MAXMIN.js
+++ b/js/NonLinear/MAXMIN.js
@@ -1,3 +1,68 @@
-Syntax error in input LexToken(TRANSPOSE,"'",1,2811)
/* autogenerated from "macros/NonLinear/MAXMIN.sci" */
-None
+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
+}
+}
+}
+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() {
+}
+}