|
Go to the documentation of this file.
27 rStates. Insert(transit->X1);
42 StateSet::Iterator stateit;
43 EventSet::Iterator eventit;
52 std::stringstream errstr;
53 errstr << "State in Rnce was neither head nor ear, check correctness of Merge attribute" << std::endl;
54 throw Exception( "Rnce", errstr.str(), 1001);
63 if(transientStates. Exists(*stateit)){
68 for(eventit = uc. Begin(); eventit != uc. End(); eventit++){
100 std::map<std::pair<Idx,Idx>, Idx > stateMap;
102 StateSet::Iterator pdStateit, sStateit;
104 std::vector<Idx> oldStatesVector;
111 stateMap.insert(std::make_pair(std::make_pair(*sStateit, *pdStateit), newState));
114 oldStatesVector.clear();
115 oldStatesVector.push_back(*sStateit);
116 oldStatesVector.push_back(*pdStateit);
148 std::string sEvName, pdEvName;
151 PopPushSet::const_iterator ppsit;
164 newX1 = stateMap.find(std::make_pair(*sStateit, pdTransit->X1))->second;
165 newX2 = stateMap.find(std::make_pair(*sStateit, pdTransit->X2))->second;
180 if(pdEvName.compare(sEvName) == 0){
183 newX1 = stateMap.find(std::make_pair(sTransit->X1, pdTransit->X1))->second;
184 newX2 = stateMap.find(std::make_pair(sTransit->X2, pdTransit->X2))->second;
201 EventSet::Iterator pdEventit, sEventit;
204 if(*pdEventit == *sEventit){
262 std::multimap<Idx,std::pair<Idx,Idx> > headEarMap;
265 std::map<Idx,Idx> headMap, earMap;
267 StackSymbolSet::Iterator ssit;
285 headMap.insert(std::make_pair(*stateit,newHead));
303 earMap.insert(std::make_pair(newEar, *stateit));
305 headEarMap.insert(std::make_pair(newHead,std::make_pair(newEar,*ssit)));
312 PopPushSet::const_iterator popPushit;
313 std::multimap<Idx,std::pair<Idx,Idx> >::iterator headEarit;
314 std::vector<Idx> ssvector;
315 Idx head, ear, startState, endState, event;
319 for(headEarit = headEarMap.begin(); headEarit != headEarMap.end(); headEarit++){
322 head = headEarit->first;
323 ear = headEarit->second.first;
324 stackSymbol = headEarit->second.second;
327 ssvector.push_back(stackSymbol);
339 if(earMap.find(ear)->second == transit->X1 && stackSymbol == *popPushit->first.begin()){
342 endState = headMap.find(transit->X2)->second;
347 rPd. SetTransition(startState, event, endState, popPushit->first, popPushit->second);
368 std::cout << "*******************" << std::endl;
369 std::cout << "Nonblock rpp" << std::endl;
370 std::cout << "*******************" << std::endl;
385 std::cout << "*******************" << std::endl;
386 std::cout << "Nonblock nda" << std::endl;
387 std::cout << "*******************" << std::endl;
402 std::cout << "*******************" << std::endl;
403 std::cout << "Nonblock sp2lr" << std::endl;
404 std::cout << "*******************" << std::endl;
406 std::cout << gr. Str() << std::endl;
418 std::cout << "*******************" << std::endl;
419 std::cout << "Nonblock rup" << std::endl;
420 std::cout << "*******************" << std::endl;
422 std::cout << gr. Str() << std::endl;
434 std::string freshEventName = "augSymbol";
435 std::stringstream currentTry;
436 currentTry << freshEventName;
437 bool freshFound = false;
443 currentTry << freshEventName << tries;
448 freshEventIdx = tempPd. InsEvent(currentTry.str());
458 v.push_back(stackSymbolIdx);
466 gotoGen = Lrm(augGr,1);
467 std::cout << "*******************" << std::endl;
468 std::cout << "Nonblock lrm" << std::endl;
469 std::cout << "*******************" << std::endl;
473 gotoGen = Lrm(augGr,1);
479 parser = Lrp(gr, augGr, gotoGen, 1, t);
480 std::cout << "*******************" << std::endl;
481 std::cout << "Nonblock lrp" << std::endl;
482 std::cout << "*******************" << std::endl;
483 std::cout <<parser. Str() << std::endl;
486 parser = Lrp(gr, augGr, gotoGen, 1, t);
491 rPd = Gp2Pp(gotoGen, parser);
492 std::cout << "*******************" << std::endl;
493 std::cout << "Nonblock gp2pp" << std::endl;
494 std::cout << "*******************" << std::endl;
498 rPd = Gp2Pp(gotoGen, parser);
504 std::cout << "*******************" << std::endl;
505 std::cout << "Nonblock dim" << std::endl;
506 std::cout << "*******************" << std::endl;
516 std::cout << "*******************" << std::endl;
517 std::cout << "Nonblock accessible" << std::endl;
518 std::cout << "*******************" << std::endl;
528 std::cout << "*******************" << std::endl;
529 std::cout << "Nonblock rep2" << std::endl;
530 std::cout << "*******************" << std::endl;
540 std::cout << "*******************" << std::endl;
541 std::cout << "Nonblock rep0" << std::endl;
542 std::cout << "*******************" << std::endl;
554 std::cout << "*******************" << std::endl;
555 std::cout << "Nonblock removeUselessTransitions" << std::endl;
556 std::cout << "*******************" << std::endl;
575 EventSet::Iterator correctevit, evit;
578 if(*evit == *correctevit){
607 bool reachable = false;
651 bool reachable = false;
764 std::stringstream errstr;
765 errstr << "State in Ruls was neither head nor ear, check correctness of Merge attribute" << std::endl;
766 throw Exception( "Ruls", errstr.str(), 1001);
810 if ( Ruls1(*stateit,rPd)){
839 StateSet::Iterator stateit=states. Begin();
840 while(stateit != states. End()){
847 if(! Ts(rPd, *stateit)){
855 PopPushSet::const_iterator ppit;
860 if(! Te(rPd, *transit, ppit->first, ppit->second)){
879 rPd = Times(plant,contr);
898 rPd = Rnce(rPd, plant);
901 if(numberOfStates != rPd. Size()){
921 rPd = Ccs(contr, plant);
928 rPd = Ccl(rPd, plant, iteration + 1);
947 rPd = Ccl(rPd, plant, 1);
958 if (x->tv_usec < y->tv_usec) {
959 int nsec = (y->tv_usec - x->tv_usec) / 1000000 + 1;
960 y->tv_usec -= 1000000 * nsec;
963 if (x->tv_usec - y->tv_usec > 1000000) {
964 int nsec = (x->tv_usec - y->tv_usec) / 1000000;
965 y->tv_usec += 1000000 * nsec;
971 result->tv_sec = x->tv_sec - y->tv_sec;
972 result->tv_usec = x->tv_usec - y->tv_usec;
975 return x->tv_sec < y->tv_sec;
libFAUDES 2.24g
--- 2014.09.15
--- c++ api documentaion by doxygen
|