summaryrefslogtreecommitdiff
path: root/js/Linear/SUMMATION.js
diff options
context:
space:
mode:
Diffstat (limited to 'js/Linear/SUMMATION.js')
-rw-r--r--js/Linear/SUMMATION.js139
1 files changed, 136 insertions, 3 deletions
diff --git a/js/Linear/SUMMATION.js b/js/Linear/SUMMATION.js
index 1c324d6d..0c15982e 100644
--- a/js/Linear/SUMMATION.js
+++ b/js/Linear/SUMMATION.js
@@ -1,4 +1,137 @@
-Syntax error in input LexToken(SEMICOLON,';',1,2902)
-Syntax error in input LexToken(VAR,'exprs',1,5706)
/* autogenerated from "macros/Linear/SUMMATION.sci" */
-None
+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=None;
+}
+if (size(sgn,1)==1) {
+if (sgn<1) {
+message("Number of inputs must be > 0");
+ok=None;
+} 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=None;
+} 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=None;
+} 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
+}
+}
+}
+SUMMATION.prototype.define = function SUMMATION() {
+sgn=[1,-1];
+model=scicos_model();
+model.sim=list("summation",4);
+model.in=[-1,-1];
+model.out=-1;
+model.in2=[-2,-2];
+model.out2=-2;
+model.ipar=sgn;
+model.blocktype="c";
+model.dep_ut=[true,None];
+exprs=sci2exp(sgn);
+gr_i=[];
+x=standard_define([2,3],model,exprs,gr_i);
+}
+SUMMATION.prototype.details = function SUMMATION() {
+}
+}