/* autogenerated from "macros/Linear/SUMMATION.sci" */ 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() { } }