Changeset 55a828 in git for kernel/f5gb.cc
- Timestamp:
- Mar 6, 2009, 10:30:21 PM (15 years ago)
- Branches:
- (u'spielwiese', 'ec94ef7a30b928574c0c3daf41f6804dff5f6b69')
- Children:
- c3da59184ecd80962fcdd0a75a23554e86c72501
- Parents:
- cad5075007d013d435407e43d47c2810e6f19bec
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
kernel/f5gb.cc
rcad507 r55a828 2 2 * Computer Algebra System SINGULAR * 3 3 ****************************************/ 4 /* $Id: f5gb.cc,v 1. 39 2009-03-05 14:30:23ederc Exp $ */4 /* $Id: f5gb.cc,v 1.40 2009-03-06 21:30:21 ederc Exp $ */ 5 5 /* 6 6 * ABSTRACT: f5gb interface … … 70 70 */ 71 71 LList* F5inc(int i, poly f_i, LList* gPrev, ideal gbPrev, poly ONE, LTagList* lTag, RList* rules, RTagList* rTag) { 72 Print("in f5inc\n");72 //Print("in f5inc\n"); 73 73 //pWrite(rules->getFirst()->getRuleTerm()); 74 74 int j; … … 77 77 poly tempNF = kNF(gbPrev,currQuotient,f_i); 78 78 f_i = tempNF; 79 gPrev->insert(ONE,i,f_i);80 //gPrev->insert(ONE,gPrev->getLength()+1,f_i);79 //gPrev->insert(ONE,i,f_i); 80 gPrev->insert(ONE,gPrev->getLength()+1,f_i); 81 81 // tag the first element in gPrev of the current index for findReductor() 82 82 lTag->setFirstCurrentIdx(gPrev->getLast()); … … 152 152 //pWrite(gPrev->getFirst()->getNext()->getNext()->getPoly()); 153 153 //delete sPolyList; 154 critPairs->print();154 //critPairs->print(); 155 155 delete critPairs; 156 Print("IN F5INC\n");156 //Print("IN F5INC\n"); 157 157 158 158 //gPrev->print(); … … 170 170 */ 171 171 inline void criticalPair(LList* gPrev, CList* critPairs, LTagList* lTag, RTagList* rTag, RList* rules) { 172 //Print("IN CRITPAIRS\n"); 172 173 // initialization for usage in pLcm() 173 174 number nOne = nInit(1); … … 279 280 */ 280 281 inline bool criterion2(poly t, LNode* l, RList* rules, RTagList* rTag) { 281 Print("------------------------------IN CRITERION 2-----------------------------------------\n");282 Print("RULES: \n");283 RNode* tempR = rules->getFirst();284 while(NULL != tempR->getRule()) {285 Print("ADDRESS OF RNODE: %p\n",tempR);286 Print("ADDRESS OF RULE: %p\n",tempR->getRule());287 pWrite(tempR->getRuleTerm());288 Print("ADDRESS OF TERM: %p\n",tempR->getRuleTerm());289 Print("%d\n\n",tempR->getRuleIndex());290 tempR = tempR->getNext();291 }292 Print("TESTED ELEMENT: ");293 pWrite(l->getPoly());294 pWrite(l->getTerm());295 pWrite(ppMult_qq(t,l->getTerm()));296 Print("%d\n\n",l->getIndex());282 //Print("------------------------------IN CRITERION 2/1-----------------------------------------\n"); 283 //Print("RULES: \n"); 284 //RNode* tempR = rules->getFirst(); 285 //while(NULL != tempR->getRule()) { 286 //Print("ADDRESS OF RNODE: %p\n",tempR); 287 //Print("ADDRESS OF RULE: %p\n",tempR->getRule()); 288 //pWrite(tempR->getRuleTerm()); 289 //Print("ADDRESS OF TERM: %p\n",tempR->getRuleTerm()); 290 //Print("%d\n\n",tempR->getRuleIndex()); 291 //tempR = tempR->getNext(); 292 //} 293 //Print("TESTED ELEMENT: "); 294 //pWrite(l->getPoly()); 295 //pWrite(l->getTerm()); 296 //pWrite(ppMult_qq(t,l->getTerm())); 297 //Print("%d\n\n",l->getIndex()); 297 298 // start at the previously added element to gPrev, as all other elements will have the same index for sure 298 299 RNode* testNode = new RNode(); 300 /* 299 301 if(NULL == rTag->getFirst()->getRule()) { 300 302 testNode = rules->getFirst(); … … 311 313 * INDEX OF THE PREVIOUS ELEMENTS 312 314 * GETS HIGHER! 313 *----------------------------------- */315 *----------------------------------- 314 316 testNode = rules->getFirst(); 315 317 //testNode = rTag->get(l->getIndex()); … … 317 319 } 318 320 } 321 */ 322 testNode = rules->getFirst(); 319 323 // save the monom t1*label_term(l) as it is tested various times in the following 320 324 poly u1 = ppMult_qq(t,l->getTerm()); … … 338 342 while(NULL != testNode && NULL != testNode->getRule() && testNode->getRule() != l->getRule() 339 343 && l->getIndex() == testNode->getRuleIndex()) { 344 //Print("%p\n",testNode); 340 345 //pWrite(testNode->getRuleTerm()); 341 pWrite(testNode->getRuleTerm()); 342 pWrite(t); 343 pWrite(l->getTerm()); 344 pWrite(u1); 346 //pWrite(t); 347 //pWrite(l->getTerm()); 348 //pWrite(u1); 345 349 //Print("%d\n",testNode->getRuleIndex()); 346 350 if(pLmDivisibleBy(testNode->getRuleTerm(),u1)) { 347 Print("Criterion 2 NOT passed!\n");351 //Print("Criterion 2 NOT passed!\n"); 348 352 pDelete(&u1); 349 353 return true; … … 364 368 */ 365 369 inline bool criterion2(poly t, LPoly* l, RList* rules, Rule* testedRule) { 366 //Print("------------------------------IN CRITERION 2 -----------------------------------------\n");370 //Print("------------------------------IN CRITERION 2/2-----------------------------------------\n"); 367 371 //Print("LAST RULE TESTED: %p",testedRule); 368 372 //Print("RULES: \n"); … … 431 435 //Print("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ZERO REDUCTION~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n"); 432 436 reductionsToZero++; 433 Print("IN SPOLS 1\n");437 //Print("IN SPOLS 1\n"); 434 438 rules->insert(temp->getLp1Index(),ppMult_qq(temp->getT1(),temp->getLp1Term())); 435 439 //Print("RULE ADDED: \n"); … … 440 444 } 441 445 else { 442 Print("IN SPOLS 2\n");446 //Print("IN SPOLS 2\n"); 443 447 rules->insert(temp->getLp1Index(),ppMult_qq(temp->getT1(),temp->getLp1Term())); 444 448 //Print("RULE ADDED: \n"); … … 464 468 //Print("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ZERO REDUCTION~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n"); 465 469 reductionsToZero++; 466 Print("IN SPOLS 3\n");470 //Print("IN SPOLS 3\n"); 467 471 rules->insert(temp->getLp1Index(),ppMult_qq(temp->getT1(),temp->getLp1Term())); 468 472 //Print("RULE ADDED: \n"); … … 472 476 } 473 477 else { 474 Print("IN SPOLS 4\n");478 //Print("IN SPOLS 4\n"); 475 479 rules->insert(temp->getLp1Index(),ppMult_qq(temp->getT1(),temp->getLp1Term())); 476 480 //Print("RULE ADDED: \n"); … … 585 589 //pWrite(gPrevRedCheck->getPoly()); 586 590 LNode* tempRed = new LNode(); 587 Print("TESTED POLYNOMIAL IN THE FOLLOWING: ");588 pWrite(l->getPoly());591 //Print("TESTED POLYNOMIAL IN THE FOLLOWING: "); 592 //pWrite(l->getPoly()); 589 593 //Print("HIER\n"); 590 594 tempRed = findReductor(l,gPrevRedCheck,gPrev,rules,lTag,rTag); … … 595 599 // if label of reductor is greater than the label of l we have to built a new element 596 600 // and add it to sPolyList 597 Print("REDUCTOR POLYNOMIAL: ");598 pWrite(tempRed->getPoly());599 Print("TEMPRED: %p\n",tempRed);600 Print("TERM: ");601 pWrite(tempRed->getTerm());601 //Print("REDUCTOR POLYNOMIAL: "); 602 //pWrite(tempRed->getPoly()); 603 //Print("TEMPRED: %p\n",tempRed); 604 //Print("TERM: "); 605 //pWrite(tempRed->getTerm()); 602 606 if(pLmCmp(tempRed->getTerm(),l->getTerm()) == 1) { 603 607 // needed sinc pSub destroys the arguments! … … 622 626 // for debugging 623 627 //pWrite(tempRed->getPoly()); 624 Print("RULE ADDED\n");628 //Print("RULE ADDED\n"); 625 629 rules->insert(tempRed->getIndex(),tempRed->getTerm()); 626 630 tempRed->getLPoly()->setRule(rules->getFirst()->getRule()); 627 Print("%p\n",sPolyList->getFirst());628 Print("%p\n",sPolyList->getFirst()->getLPoly());629 Print("SPOLYLIST LENGTH: %d\n",sPolyList->getLength());631 //Print("%p\n",sPolyList->getFirst()); 632 //Print("%p\n",sPolyList->getFirst()->getLPoly()); 633 //Print("SPOLYLIST LENGTH: %d\n",sPolyList->getLength()); 630 634 //sPolyList->print(); 631 635 632 636 sPolyList->insertByLabel(tempRed); 633 sPolyList->print();637 //sPolyList->print(); 634 638 //Print("SPOLYLIST LENGTH: %d\n",sPolyList->getLength()); 635 639 //Print("OH JE\n"); … … 639 643 reductionsToZero++; 640 644 //Print("RULE ADDED\n"); 641 Print("wieder hier2\n"); 642 rules->insert(tempRed->getIndex(),tempRed->getTerm()); 643 pWrite(rules->getFirst()->getRuleTerm()); 644 Print("DELETE TEMPRED\n"); 645 //rules->insert(tempRed->getIndex(),tempRed->getTerm()); 646 //pWrite(rules->getFirst()->getRuleTerm()); 647 //Print("DELETE TEMPRED\n"); 645 648 delete tempRed; 646 649 } … … 684 687 if(NULL != l->getPoly()) { 685 688 pNorm(l->getPoly()); 686 Print("----------------------------------ADDED TO GPREV IN TOPREDUCTION:-------------------------------------- ");687 pWrite(l->getPoly());688 pWrite(l->getTerm());689 Print("INDEX: %d\n\n\n", l->getIndex());689 //Print("----------------------------------ADDED TO GPREV IN TOPREDUCTION:-------------------------------------- "); 690 //pWrite(l->getPoly()); 691 //pWrite(l->getTerm()); 692 //Print("INDEX: %d\n\n\n", l->getIndex()); 690 693 //sleep(20); 691 694 gPrev->insert(l->getLPoly()); … … 797 800 // tag the first element of index i-1 for criterion 1 798 801 LTagList* lTag = new LTagList(); 799 Print("LTAG BEGINNING: %p\n",lTag);802 //Print("LTAG BEGINNING: %p\n",lTag); 800 803 801 804 // first element in rTag is first element of rules which is NULL RNode, 802 805 // this must be done due to possible later improvements 803 806 RList* rules = new RList(); 804 Print("RULES FIRST: %p\n",rules->getFirst());805 Print("RULES FIRST DATA: %p\n",rules->getFirst()->getRule());807 //Print("RULES FIRST: %p\n",rules->getFirst()); 808 //Print("RULES FIRST DATA: %p\n",rules->getFirst()->getRule()); 806 809 RTagList* rTag = new RTagList(rules->getFirst()); 807 810 i = 1; … … 856 859 //Print("LENGTH OF GPREV LIST: %d\n",gPrev->getLength()); 857 860 //Print("%d\n",gbLength); 858 Print("%d\n",gPrev->getLength()-gbLength-1);861 //Print("%d\n",gPrev->getLength()-gbLength-1); 859 862 for(j=0;j<=gPrev->getLength()-gbLength-1;j++) { 860 863 //Print("YES\n"); … … 871 874 gbPrev = idAdd(gbPrev,gbAdd); 872 875 // interreduction stuff 873 /*876 874 877 if(i<IDELEMS(id)) { 875 878 ideal tempId = kInterRed(gbPrev); … … 878 881 delete gPrev; 879 882 //Print("RULES FIRST NOW1: %p\n",rules->getFirst()); 883 //Print("HIER\n"); 880 884 delete rules; 885 //Print("HIER AUCH\n"); 881 886 //Print("%p\n",rules->getFirst()); 882 887 gPrev = new LList(pOne,1,gbPrev->m[0]); … … 893 898 //Print("HIERLALA\n"); 894 899 //pWrite(rules->getFirst()->getRuleTerm()); 895 Print("RULES FIRST NOW2: %p\n",rules->getFirst());900 // Print("RULES FIRST NOW2: %p\n",rules->getFirst()); 896 901 for(k=2; k<IDELEMS(gbPrev); k++) { 897 902 gPrev->insert(pOne,k+1,gbPrev->m[k]); 898 903 for(l=0; l<k; l++) { 899 pWrite(gbPrev->m[k]);900 pWrite(gbPrev->m[l]);904 //pWrite(gbPrev->m[k]); 905 //pWrite(gbPrev->m[l]); 901 906 pLcm(pHead(gbPrev->m[k]),pHead(gbPrev->m[l]),tempPoly); 902 907 pSetCoeff(tempPoly,nOne); … … 905 910 } 906 911 } 907 */912 908 913 gbLength = gPrev->getLength(); 909 914 910 915 } 911 gPrev->print();916 //gPrev->print(); 912 917 //int anzahl = 1; 913 918 //while(NULL != temp) {
Note: See TracChangeset
for help on using the changeset viewer.