diff options
Diffstat (limited to 'js/MatrixOp/MATSING.js')
-rw-r--r-- | js/MatrixOp/MATSING.js | 117 |
1 files changed, 59 insertions, 58 deletions
diff --git a/js/MatrixOp/MATSING.js b/js/MatrixOp/MATSING.js index 67c3170f..cd5daad6 100644 --- a/js/MatrixOp/MATSING.js +++ b/js/MatrixOp/MATSING.js @@ -22,74 +22,75 @@ function MATSING() { model.dep_ut = [true,false]; label = [[sci2exp(1)],[sci2exp(1)]]; gr_i = []; - x = standard_define([2,2],model,label,gr_i); + this.x = standard_define([2,2],model,label,gr_i); } MATSING.prototype.details = function MATSING() { + return this.x; } MATSING.prototype.get = function MATSING() { } MATSING.prototype.set = function MATSING() { - x = arg1; + this.x = arg1; model = arg1.model; graphics = arg1.graphics; label = graphics.exprs; if (size(label,"*")==14) { - label[9-1] = []; -} + 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; -} -} + [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; + this.x = arg1; + break; + } + } } } |