Changeset ac73d05 in tol
- Timestamp:
- Nov 3, 2009, 5:31:25 PM (17 years ago)
- Branches:
- 1941-docker-image-to-test, devel, master
- Children:
- 8450037
- Parents:
- 8a4804f
- Location:
- tol/btol/vmatrix_type
- Files:
-
- 7 edited
-
tol_bvmat_bsr.h (modified) (5 diffs)
-
tol_bvmat_bsr_impl.h (modified) (6 diffs)
-
tol_bvmat_bsr_run.h (modified) (1 diff)
-
vmat_bsr.cpp (modified) (4 diffs)
-
vmat_bsr_joint.cpp (modified) (6 diffs)
-
vmat_bsr_master.cpp (modified) (4 diffs)
-
vmat_bsr_primary.cpp (modified) (10 diffs)
Legend:
- Unmodified
- Added
- Removed
-
tol/btol/vmatrix_type/tol_bvmat_bsr.h
r8a4804f rac73d05 375 375 return(aux); 376 376 }; 377 378 377 const BText& BSR(); 379 378 int Initialize(); … … 385 384 BStruct* NoiseTimeInfo(); 386 385 BStruct* MasterInfo(); 387 388 386 int Parse_Module_Joint( 389 387 const string & fileName, … … 397 395 BVMat& a, 398 396 BVMat& A); 399 400 397 int Parse_Module_Primary( 401 398 const string & fileName, … … 409 406 BVMat& a, 410 407 BVMat& A); 411 412 408 int Parse_Module_Master( 413 409 const std::string & fileName, … … 415 411 std::string & sampler, 416 412 vector<moduleDef>& subModules); 417 418 413 int Parse_Module(const BText& filePath, 419 BText& moduleType,414 const BText& moduleType, 420 415 BSet& contens_); 421 422 416 }; 423 417 -
tol/btol/vmatrix_type/tol_bvmat_bsr_impl.h
r8a4804f rac73d05 299 299 300 300 /////////////////////////////////////////////////////////////////////////////// 301 class assign_moduleType 302 /////////////////////////////////////////////////////////////////////////////// 303 { 304 public: 305 string* moduleType_; 306 assign_moduleType(string& moduleType) 307 : moduleType_(&moduleType) 308 {} 309 void action(const std::string& str) const 310 { 311 (*moduleType_) = str; 312 } 313 void operator()(const std::string& str) const 314 { 315 action(str); 316 } 317 template<typename IteratorT> 318 void operator()(IteratorT first, IteratorT last) const 319 { 320 std::string str; 321 str.assign(first, last); 322 action(str); 323 } 324 }; 325 326 /////////////////////////////////////////////////////////////////////////////// 301 327 class assign_extern_var_name 302 328 /////////////////////////////////////////////////////////////////////////////// … … 327 353 } 328 354 }; 355 329 356 330 357 /////////////////////////////////////////////////////////////////////////////// … … 1269 1296 1270 1297 /////////////////////////////////////////////////////////////////////////////// 1298 class assign_var_to_ine_term 1299 /////////////////////////////////////////////////////////////////////////////// 1300 { 1301 public: 1302 symbol_handler<variable_info>* var_; 1303 var_term* var_term_info_; 1304 int* nzmax_; 1305 1306 assign_var_to_ine_term( 1307 symbol_handler<variable_info>& var, 1308 var_term& var_term_info, 1309 int& nzmax) 1310 : 1311 var_(&var), 1312 var_term_info_(&var_term_info), 1313 nzmax_(&nzmax) 1314 {} 1315 1316 void action(variable_info& varInfo) const 1317 { 1318 assign_var_to_ine_term* t = (assign_var_to_ine_term*)this; 1319 varInfo.used = true; 1320 t->var_term_info_->varIndex = varInfo.index; 1321 (*(t->nzmax_))++; 1322 } 1323 void operator()(const boost::reference_wrapper<int>& pos) const 1324 { 1325 int n = pos.get(); 1326 action(var_->vec[n]); 1327 } 1328 template<typename IteratorT> 1329 void operator()(IteratorT first, IteratorT last) const 1330 { 1331 std::string str; 1332 str.assign(first, last); 1333 int* pos = find(var_->table,str.c_str()); 1334 action((var_->vec)[*pos]); 1335 } 1336 1337 }; 1338 1339 1340 /////////////////////////////////////////////////////////////////////////////// 1271 1341 class assign_var_to_equ_term 1272 1342 /////////////////////////////////////////////////////////////////////////////// … … 1297 1367 { 1298 1368 int n = pos.get(); 1299 action( (var_->vec)[n]);1369 action(var_->vec[n]); 1300 1370 } 1301 1371 template<typename IteratorT> … … 1427 1497 }; 1428 1498 1429 1430 ///////////////////////////////////////////////////////////////////////////////1431 class assign_var_to_ine_term1432 ///////////////////////////////////////////////////////////////////////////////1433 {1434 public:1435 vector<variable_info>* var_vec_;1436 var_term* var_term_info_;1437 int* nzmax_;1438 1439 assign_var_to_ine_term(1440 vector<variable_info>& var_vec,1441 var_term& var_term_info,1442 int& nzmax)1443 :1444 var_vec_(&var_vec),1445 var_term_info_(&var_term_info),1446 nzmax_(&nzmax)1447 {}1448 void action(variable_info& varInfo) const1449 {1450 assign_var_to_ine_term* t = (assign_var_to_ine_term*) this;1451 t->var_term_info_->varIndex = varInfo.index;1452 (*t->nzmax_)++;1453 }1454 void operator()(const boost::reference_wrapper<int>& pos) const1455 {1456 assign_var_to_ine_term* t = (assign_var_to_ine_term*) this;1457 int n = pos.get();1458 action((*t->var_vec_)[n]);1459 }1460 };1461 1499 1462 1500 … … 1788 1826 string moduleType; 1789 1827 string fileName; 1790 ifstream* file;1828 //ifstream* file; 1791 1829 size_t fileSize; 1792 1830 -
tol/btol/vmatrix_type/tol_bvmat_bsr_run.h
r8a4804f rac73d05 21 21 */ 22 22 23 const char* fName = fileName.c_str();24 //BOOST_SPIRIT_DEBUG_NODE(bsr);25 ifstream in(fName);26 if(!in)27 23 { 28 Error(BSR() + BText("Could not open input file: ") + 29 fName + "\n"); 30 return(-1); 24 //BOOST_SPIRIT_DEBUG_NODE(bsr); 25 BText curPath = BDir::GetCurrent(); 26 const char* fName = fileName.c_str(); 27 BText fullPath = Replace(curPath+"/"+BText(fName),"\\","/"); 28 { 29 ifstream in(fName); 30 if(!in) 31 { 32 Error(BSR() + BText("Could not open input file: ") + 33 fName + "\n"); 34 return(-1); 35 } 36 } 37 bsr.fileName = fileName; 38 bsr.fileSize = GetFileSize(fName); 39 //bsr.file = ∈ 40 41 skip_grammar skip; 42 typedef position_iterator< file_iterator<char> > iterator_t; 43 file_iterator<char> fiter(fullPath.String()); 44 iterator_t begin(fiter, fiter.make_end(), fName); 45 iterator_t end; 46 if(verbose) 47 { 48 Std(BSR()+"Parsing BSR file "+fullPath+" with "+(int)bsr.fileSize+" bytes\n"); 49 } 50 parse_info<iterator_t> result = parse(begin, end, bsr, skip); 51 if(!result.full && !bsr.endFound_) 52 { 53 BText msg = BSR() +fullPath+ " fails parsing\n"+url_parse_bsr(); 54 BText desc; 55 for (int i = 0; i < 1000; i++) 56 { 57 if (result.stop == end) break; 58 desc += *result.stop++; 59 } 60 if(!desc.HasName()) { desc = "Unexpectend end of file"; } 61 Error(msg+"\nProblem description:'"+desc+"'"); 62 return(-2); 63 } 31 64 } 32 bsr.fileName = fileName;33 bsr.fileSize = GetFileSize(fName);34 bsr.file = ∈35 36 in.unsetf(ios::skipws); // Turn of white space skipping on the stream37 skip_grammar skip;38 typedef position_iterator< file_iterator<char> > iterator_t;39 file_iterator<char> fiter(fileName);40 iterator_t begin(fiter, fiter.make_end(), fName);41 iterator_t end;42 Std(BSR()+"Parsing BSR file "+fName+" with "+(int)bsr.fileSize+" bytes\n");43 parse_info<iterator_t> result = parse(begin, end, bsr, skip);44 if(!result.full && !bsr.endFound_)45 {46 BText msg = BSR() + BText(fName) + " Fails Parsing\n"+url_parse_bsr();47 BText desc;48 for (int i = 0; i < 1000; i++)49 {50 if (result.stop == end) break;51 desc += *result.stop++;52 }53 if(!desc.HasName()) { desc = "Unexpectend end of file"; }54 Error(msg+"\nProblem description:'"+desc+"'");55 return(-2);56 } -
tol/btol/vmatrix_type/vmat_bsr.cpp
r8a4804f rac73d05 275 275 : s ((bys_sparse_reg_moduletype&)s_) 276 276 { 277 assign_moduleType assign_moduleType_(s.moduleType); 277 278 #include "tol_bvmat_bsr_err.h" 278 279 endOfSentence = (ch_p(';') | error_comma2Expected); … … 280 281 ( 281 282 str_p("Module.Type") >> ch_p('=') >> 282 (str_p("primary")|str_p("joint")|str_p("master"))[assign_ a(s.moduleType)] >>283 (str_p("primary")|str_p("joint")|str_p("master"))[assign_moduleType_] >> 283 284 endOfSentence 284 285 ); … … 302 303 bys_sparse_reg_moduletype bsr; 303 304 int errCode = 0; 305 bool verbose = false; 304 306 #include "tol_bvmat_bsr_run.h" 305 307 if(!errCode) … … 761 763 //////////////////////////////////////////////////////////////////////////////// 762 764 int Parse_Module(const BText& filePath, 763 BText& moduleType,765 const BText& moduleType, 764 766 BSet& contens_) 765 767 //////////////////////////////////////////////////////////////////////////////// 766 768 { 767 if(moduleType=="") 768 { 769 Parse_ModuleType(filePath, moduleType); 770 } 771 if(moduleType=="master") 769 BText modTyp = moduleType; 770 if(modTyp=="") 771 { 772 Parse_ModuleType(filePath, modTyp); 773 } 774 if(modTyp=="master") 772 775 { 773 776 return(Parse_MasterModule(filePath,contens_)); -
tol/btol/vmatrix_type/vmat_bsr_joint.cpp
r8a4804f rac73d05 52 52 equ_info.index = 0; 53 53 ine_info.index = 0; 54 moduleType = "joint"; 54 55 } 55 56 … … 90 91 add_symbol<sigma_info> add_sig(s.sig); 91 92 add_symbol<noise_info> add_res(s.noise); 93 assign_moduleType assign_moduleType_(s.moduleType); 92 94 assign_declared_var_name assign_declared_var_name_(s.var); 93 95 assign_extern_var_name assign_extern_var_name_(s.var); … … 116 118 assign_IsGE_to_ine assign_IsGE_to_ine_(s.ine_info); 117 119 assign_IsLE_to_ine assign_IsLE_to_ine_(s.ine_info); 118 assign_var_to_ine_term assign_var_to_ine_term_(s.var .vec,s.ine_var_term_info,s.Anzmax_);120 assign_var_to_ine_term assign_var_to_ine_term_(s.var,s.ine_var_term_info,s.Anzmax_); 119 121 assign_noise_to_term assign_noise_to_term_(s.noise.vec,s.sig.vec,&s.equ_info); 120 122 add_term_to_equ add_term_to_equ_(s.equ_info.X, s.equ_var_term_info); … … 403 405 signIneVarTerm >> 404 406 ( 405 s.var.table[assign_var_to_ine_term_]407 variableExistentOrExtern[assign_var_to_ine_term_] 406 408 | 407 409 ( 408 410 knownURealIneTerm >> 409 (product | error_prodExpected ) >>410 ( s.var.table[assign_var_to_ine_term_] | error_linBlkVarExpected)411 (product | error_prodExpected ) >> 412 (variableExistentOrExtern[assign_var_to_ine_term_] | error_linBlkVarExpected) 411 413 ) 412 414 ) … … 491 493 //header 492 494 ( 493 ((str_p("Module.Type") >> ch_p('=') >> str_p("joint")[assign_a(s.moduleType)] >> endOfSentence) | eps_p) >> 495 ((str_p("Module.Type") >> ch_p('=') >> 496 str_p("joint")[assign_moduleType_] >> 497 endOfSentence) | eps_p) >> 494 498 model_nameDef >> 495 499 model_descriptionDef >> … … 684 688 bys_sparse_reg_joint bsr; 685 689 int errCode = 0; 690 bool verbose = true; 686 691 #include "tol_bvmat_bsr_run.h" 687 692 if(!errCode) -
tol/btol/vmatrix_type/vmat_bsr_master.cpp
r8a4804f rac73d05 46 46 currentSubMod() 47 47 { 48 moduleType = "master"; 48 49 } 49 50 … … 64 65 : s ((bys_sparse_reg_master&)s_) 65 66 { 67 assign_moduleType assign_moduleType_(s.moduleType); 66 68 add_submodule add_submodule_(s.subMod, s.currentSubMod); 67 69 assign_explicit_end assign_explicit_end_(s.endFound_); … … 81 83 ( 82 84 str_p("Module.Type") >> ch_p('=') >> 83 (str_p("master")[assign_ a(s.moduleType)]) >>85 (str_p("master")[assign_moduleType_]) >> 84 86 endOfSentence 85 87 ) | … … 258 260 bys_sparse_reg_master bsr; 259 261 int errCode = 0; 262 bool verbose = true; 260 263 #include "tol_bvmat_bsr_run.h" 261 264 if(!errCode) -
tol/btol/vmatrix_type/vmat_bsr_primary.cpp
r8a4804f rac73d05 52 52 descX_ = "Input regression matrix"; 53 53 var.info.used = true; 54 moduleType = "primary"; 54 55 } 55 56 … … 68 69 openBracket, closeBracket, 69 70 openKey, closeKey, 70 identifier_simple, identifier, newIdentifier,71 identifier_simple, identifier, nonExistentIdentifier, newIdentifier, 71 72 resSigmaDef, errorTerm, 72 73 signEquVarTerm, signIneVarTerm, … … 75 76 knownURealEquTerm, 76 77 knownURealIneTerm, 77 variable, missing, arima, noise,78 variable, variableExistentOrExtern, missing, arima, noise, 78 79 matOrVMatExpr, output, input, 79 80 ineVarTerm, inequation, … … 89 90 add_symbol<sigma_info> add_sig(s.sig); 90 91 add_symbol<noise_info> add_res(s.noise); 92 assign_moduleType assign_moduleType_(s.moduleType); 91 93 assign_declared_var_name assign_declared_var_name_(s.var); 94 assign_extern_var_name assign_extern_var_name_(s.var); 92 95 assign_missing_min_neginf assign_missing_min_neginf_(s.mis); 93 96 assign_missing_max_posinf assign_missing_max_posinf_(s.mis); … … 114 117 assign_IsGE_to_ine assign_IsGE_to_ine_(s.ine_info); 115 118 assign_IsLE_to_ine assign_IsLE_to_ine_(s.ine_info); 116 assign_var_to_ine_term assign_var_to_ine_term_(s.var .vec,s.ine_var_term_info,s.Anzmax_);119 assign_var_to_ine_term assign_var_to_ine_term_(s.var,s.ine_var_term_info,s.Anzmax_); 117 120 add_term_to_ine add_term_to_ine_(s.ine_info.A,s.ine_var_term_info); 118 121 add_ine add_ine_(s.ine_vec, s.ine_info); … … 172 175 (*(identifier_simple >> member)) >> identifier_simple; 173 176 ; 177 nonExistentIdentifier = 178 (identifier - (s.var.table | s.sig.table | s.mis.table | s.noise.table)); 174 179 newIdentifier = 175 180 ( 176 (identifier - (s.var.table | s.sig.table | s.mis.table | s.noise.table))|181 nonExistentIdentifier | 177 182 (identifier >> error_alreadyInUse >> nothing_p >> end_p) 178 183 ) … … 241 246 endOfSentence[add_var] 242 247 ; 248 variableExistentOrExtern = 249 s.var.table | 250 ( 251 nonExistentIdentifier[assign_extern_var_name_] 252 [add_var] 253 ); 243 254 missing = 244 255 newIdentifier[increment_a(s.mis.info.index)] … … 372 383 signIneVarTerm >> 373 384 ( 374 s.var.table[assign_var_to_ine_term_]385 variableExistentOrExtern[assign_var_to_ine_term_] 375 386 | 376 387 ( 377 388 knownURealIneTerm >> 378 (product | error_prodExpected ) >>379 ( s.var.table[assign_var_to_ine_term_] | error_linBlkVarExpected)389 (product | error_prodExpected ) >> 390 (variableExistentOrExtern[assign_var_to_ine_term_] | error_linBlkVarExpected) 380 391 ) 381 392 ) … … 397 408 ( 398 409 str_p("Module.Type") >> ch_p('=') >> 399 str_p("primary")[assign_ a(s.moduleType)] >>410 str_p("primary")[assign_moduleType_] >> 400 411 endOfSentence 401 412 ) | … … 636 647 bys_sparse_reg_primary bsr; 637 648 int errCode = 0; 649 bool verbose = true; 638 650 #include "tol_bvmat_bsr_run.h" 639 651 if(!errCode)
Note: See TracChangeset
for help on using the changeset viewer.
