Changeset e3f5af6 in tol
- Timestamp:
- Oct 21, 2008, 11:05:25 AM (18 years ago)
- Branches:
- 1941-docker-image-to-test, devel, master
- Children:
- a3c9ab0
- Parents:
- 3263cf5
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
tol/stdlib/math/stat/models/bayesian/bysMcmc/bsr/dynhlm/_db_api.tools.modses.obs.tol
r3263cf5 re3f5af6 161 161 ); 162 162 //WriteLn("TRACE ModSes.Obs.Create ok.1="<<ok.1); 163 Real outIsATimeSerie = ObjectExist("Serie","out::_.serie"); 164 Real outIsNonLinearFilter = 165 If(!ObjectExist("Real","out::_.nonLinFlt::_.isNonLinearFilter"), False, 166 out::_.nonLinFlt::_.isNonLinearFilter); 163 Real outIsATimeSerie = ObjectExist("Serie", "out::_.serie"); 164 Real outIsAVector = ObjectExist("Matrix", "out::_.vector"); 167 165 168 166 Real ok.2 = Case( … … 181 179 ) 182 180 }, 183 outIs NonLinearFilter,181 outIsAVector, 184 182 { 185 WriteLn(" Non linear filter output "+out::_.name); 186 NameBlock nlf = out::_.nonLinFlt; 187 Text nlfDesc = "Block for user defined non linear filter of output "+out::_.name; 188 Text id_gibbs_lin_blk = "NonLinearFilterBlk"; 189 Text clean.nlf.param.name(Text param) 190 { 191 Text aux = Replace(param,id_gibbs_lin_blk+"::"+id_node+"::",""); 192 WriteLn("Replace('"+aux+"','"+id_gibbs_lin_blk+"::"+id_node+"::','')="+ 193 aux); 194 aux 195 }; 196 Set colNames = EvalSet(nlf::get.colNames(0),clean.nlf.param.name); 197 Matrix u = nlf::get.parameter(0); 198 Real ok.4.2 = BysMcmc::Bsr::DynHlm::DBApi::SqlExecTrace( 199 "INSERT INTO "+_table::NonLinFlt+"\n" 200 "VALUES('"+id_model+"','"+id_session+"','"+ 201 id_node+"','"+out::_.name+"',"+ 202 IntText(0)+","+ 203 IntText(Card(colNames))+")\n"); 204 Real ok.4.3 = SetSum(For(1,Card(colNames),Real nlf.param(Real k) 205 { 206 BysMcmc::Bsr::DynHlm::DBApi::ModSes.Mix.Param.Create( 207 dbName, model, session, id_node, 208 colNames[k], 209 id_gibbs_lin_blk, 210 MatDat(u,k,1),-1/0,1/0) 211 })); 212 And(ok.4.2, ok.4.3) 183 WriteLn(" Vector output "+out::_.name); 184 BysMcmc::Bsr::DynHlm::DBApi::ModSes.Obs.Output.Create 185 ( 186 dbName, id_model, id_session, id_node, 187 out::_.name, 188 out::_.mis_pri_sig_fac, 189 out::_.mis_pri_min, 190 out::_.mis_pri_max, 191 UnknownDate, 192 UnknownDate 193 ) 213 194 }, 214 195 1==1, … … 230 211 If(!ObjectExist("Real","inp::_.isNonLinearFilter"), False, 231 212 inp::_.isNonLinearFilter); 213 Real isNonLinearFilterInput = If(!isNonLinearFilter,False, 214 { 215 Card(inp::get.linBlkNames(0)) > 0 216 }); 217 Real isNonLinearFilterOutput = And(isNonLinearFilter,!isNonLinearFilterInput); 232 218 Real ok.4.j = Case(Not(inp::_.enabled), 233 219 { … … 235 221 1 236 222 }, 237 isNonLinearFilter, 223 isNonLinearFilterOutput, 224 { 225 WriteLn(" Non linear filter output "+inpName); 226 NameBlock nlf = inp; 227 Text nlfDesc = "Block for user defined non linear filter of output "+inpName; 228 Text id_gibbs_lin_blk = "NonLinearFilterBlk"; 229 Text clean.nlf.param.name(Text param) 230 { 231 Text aux = Replace(param,id_gibbs_lin_blk+"::"+id_node+"::",""); 232 WriteLn("Replace('"+aux+"','"+id_gibbs_lin_blk+"::"+id_node+"::','')="+ 233 aux); 234 aux 235 }; 236 Set colNames = EvalSet(nlf::get.colNames(0),clean.nlf.param.name); 237 Matrix u = nlf::get.parameter(0); 238 Real ok.4.2 = BysMcmc::Bsr::DynHlm::DBApi::SqlExecTrace( 239 "INSERT INTO "+_table::NonLinFlt+"\n" 240 "VALUES('"+id_model+"','"+id_session+"','"+ 241 id_node+"','"+inpName+"',"+ 242 IntText(0)+","+ 243 IntText(Card(colNames))+")\n"); 244 Real ok.4.3 = SetSum(For(1,Card(colNames),Real nlf.param(Real k) 245 { 246 WriteLn(" Insert param "+colNames[k]+" <-"<<MatDat(u,k,1)); 247 BysMcmc::Bsr::DynHlm::DBApi::ModSes.Mix.Param.Create( 248 dbName, model, session, id_node, 249 colNames[k], 250 id_gibbs_lin_blk, 251 MatDat(u,k,1),-1/0,1/0) 252 })); 253 And(ok.4.2, ok.4.3) 254 }, 255 isNonLinearFilterInput, 238 256 { 239 257 WriteLn(" Non linear filter input "+inpName); … … 386 404 }) 387 405 }, 406 ObjectExist("Matrix","inp::_.vector"), 407 { 408 WriteLn(" Vector input "+inpName); 409 Real ok.4.1 = BysMcmc::Bsr::DynHlm::DBApi::ModSes.Mix.Param.Create 410 ( 411 dbName, id_model, id_session, id_node, 412 inpName+"::Coef", 413 "LinearBlk", 414 inp::_.initValue, 415 inp::_.minimum, 416 inp::_.maximum 417 ); 418 //WriteLn("TRACE ModSes.Obs.Create ok.4.1="<<ok.4.1); 419 Real ok.4.2 = BysMcmc::Bsr::DynHlm::DBApi::ModSes.Obs.Input.Create 420 ( 421 dbName, id_model, id_session, id_node, 422 inpName+"::Coef", 423 inpName, 424 inp::_.mis_pri_sig_fac, 425 inp::_.mis_pri_min, 426 inp::_.mis_pri_max 427 ); 428 //WriteLn("TRACE ModSes.Obs.Create ok.4.2="<<ok.4.2); 429 And(ok.4.1,ok.4.2) 430 }, 388 431 1==1, 389 432 {
Note: See TracChangeset
for help on using the changeset viewer.
