/* autogenerated from "macros/NonLinear/PRODUCT.sci" */ function PRODUCT() { PRODUCT.prototype.define = function PRODUCT() { this.sgn = [[1],[-1]]; this.model = scicos_model(); this.model.sim = list(new ScilabString(["product"]), new ScilabDouble([4])); this.model.in1 = new ScilabDouble([-1],[-1]); this.model.out = new ScilabDouble([-1]); this.model.ipar = new ScilabDouble(this.sgn); this.model.blocktype = new ScilabString(["c"]); this.model.dep_ut = new ScilabDouble([true,false]); this.exprs = sci2exp(this.sgn); this.gr_i = new ScilabString(["xstringb(orig(1),orig(2),\"PRODUCT\",sz(1),sz(2));"]); this.x = standard_define([2,3],this.model,this.exprs,this.gr_i); return new Product(this.x); } PRODUCT.prototype.details = function PRODUCT() { return this.x; } PRODUCT.prototype.get = function PRODUCT() { var options = { } return options; } PRODUCT.prototype.set = function PRODUCT() { this.sgn = inverse(arguments[0]["sgn"]) this.exprs = arguments[0]["exprs"] this.x = arg1; this.graphics = arg1.graphics; this.model = arg1.model; this.exprs = this.graphics.exprs; while (true) { [ok,this.sgn,this.exprs] = scicos_getvalue([[" Set multiplication block parameters"],["(multiplication is set with + 1, division with -1)"],[""]],"Number of inputs or sign vector",list("vec",-1),this.exprs); if (!ok) { break; } this.sgn = this.sgn.slice(); if (size(this.sgn,1)==1) { if (this.sgn<1) { message("Number of inputs must be > 0"); var ok = false; } else if (this.sgn==1) { var in1 = -1; this.sgn = []; var nout = 1; } else { var in1 = -ones(this.sgn,1); this.sgn = ones(this.sgn,1); var nout = -1; } } else { if (!and(abs(this.sgn)==1)) { message("Signs can only be +1 or -1"); var ok = false; } else { var in1 = -ones(size(this.sgn,1),1); var nout = -1; } } if (ok) { var tmpvar0 = check_io(this.model,this.graphics,in1,nout,[],[]); this.model = tmpvar0[0]; this.graphics = tmpvar0[1]; var ok = tmpvar0[2]; } if (ok) { this.model.ipar = new ScilabDouble([this.sgn]); this.graphics.exprs = new ScilabDouble([this.exprs]); this.x.graphics = this.graphics; this.x.model = this.model; break; } } return new Product(this.x); } }