Changeset 598870 in git
- Timestamp:
- Feb 23, 2009, 3:28:38 PM (14 years ago)
- Branches:
- (u'jengelh-datetime', 'ceac47cbc86fe4a15902392bdbb9bd2ae0ea02c6')(u'spielwiese', 'cdfcdb8287f66bc6070028082cbbc6eff10e609b')
- Children:
- 35a76a17eccff079e65732eed250dcf59efee656
- Parents:
- b0237b842fe21cec3d4b51436f88ff9d8f8aad12
- Location:
- kernel
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
kernel/f5gb.cc
rb0237b8 r598870 2 2 * Computer Algebra System SINGULAR * 3 3 ****************************************/ 4 /* $Id: f5gb.cc,v 1.3 2 2009-02-22 18:58:36ederc Exp $ */4 /* $Id: f5gb.cc,v 1.33 2009-02-23 14:28:38 ederc Exp $ */ 5 5 /* 6 6 * ABSTRACT: f5gb interface … … 105 105 LNode* temp = sPolyList->getFirst(); 106 106 while(NULL != temp && NULL != temp->getLPoly()) { 107 Print("Spolylist element: ");108 pWrite(temp->getPoly());107 //Print("Spolylist element: "); 108 //pWrite(temp->getPoly()); 109 109 temp = temp->getNext(); 110 } 110 } 111 111 // reduction process of new S-polynomials and also adds new critical pairs to critPairs 112 112 reduction(sPolyList, critPairs, gPrev, rules, lTag, rTag, gbPrev); 113 113 114 114 // DEBUG STUFF FOR GPREV 115 temp = gPrev->getFirst(); 116 Print("\n\n"); 117 while(NULL != temp) { 118 pWrite(temp->getPoly()); 119 temp = temp->getNext(); 120 } 121 //sleep(10); 115 //temp = gPrev->getFirst(); 116 //int number = 1; 117 //Print("\n\n"); 118 //while(NULL != temp) { 119 // Print("%d. ",number); 120 // pWrite(temp->getPoly()); 121 // temp = temp->getNext(); 122 // number++; 123 // Print("\n"); 124 //} 125 //sleep(5); 122 126 123 127 } 124 Print("REDUCTION DONE\n");125 Print("%p\n",rules->getFirst());126 Print("%p\n",rTag->getFirst());128 //Print("REDUCTION DONE\n"); 129 //Print("%p\n",rules->getFirst()); 130 //Print("%p\n",rTag->getFirst()); 127 131 if(rules->getFirst() != rTag->getFirst()) { 128 Print("+++++++++++++++++++++++++++++++++++++NEW RULES+++++++++++++++++++++++++++++++++++++\n");132 //Print("+++++++++++++++++++++++++++++++++++++NEW RULES+++++++++++++++++++++++++++++++++++++\n"); 129 133 rTag->insert(rules->getFirst()); 130 134 } 131 135 else { 132 Print("+++++++++++++++++++++++++++++++++++NO NEW RULES++++++++++++++++++++++++++++++++++++\n");136 //Print("+++++++++++++++++++++++++++++++++++NO NEW RULES++++++++++++++++++++++++++++++++++++\n"); 133 137 } 134 138 lTag->insert(lTag->getFirstCurrentIdx()); 135 Print("LTAG LIST: \n");139 //Print("LTAG LIST: \n"); 136 140 LNode* tempTag = lTag->getFirst(); 137 Print("INDEX: %d\n",tempTag->getIndex());138 pWrite(tempTag->getPoly());139 Print("COMPLETED FIRST IN F5INC: \n");141 //Print("INDEX: %d\n",tempTag->getIndex()); 142 //pWrite(tempTag->getPoly()); 143 //Print("COMPLETED FIRST IN F5INC: \n"); 140 144 //Print("1st gPrev: "); 141 145 //pWrite(gPrev->getFirst()->getPoly()); … … 179 183 u2 = pDivide(lcm, pHead(temp->getPoly())); 180 184 pSetCoeff(u2,nOne); 181 Print("IN CRITPAIRS\n");182 pWrite(u1);183 Print("1st ELEMENT: ");184 pWrite(newElement->getPoly());185 Print("2nd ELEMENT: ");186 pWrite(temp->getPoly());185 //Print("IN CRITPAIRS\n"); 186 //pWrite(u1); 187 //Print("1st ELEMENT: "); 188 //pWrite(newElement->getPoly()); 189 //Print("2nd ELEMENT: "); 190 //pWrite(temp->getPoly()); 187 191 // testing both new labels by the F5 Criterion 188 192 if(!criterion1(gPrev,u1,newElement,lTag) && !criterion1(gPrev,u2,temp,lTag) && … … 192 196 if(newElement->getIndex() == temp->getIndex() && 193 197 -1 == pLmCmp(ppMult_qq(u1, newElement->getTerm()),ppMult_qq(u2, temp->getTerm()))) { 194 Print("zweites groesser\n");198 //Print("zweites groesser\n"); 195 199 CPair* cp = new CPair(pDeg(ppMult_qq(u2,pHead(temp->getPoly()))), u2, 196 200 temp->getLPoly(), u1, newElement->getLPoly(), testedRule); … … 198 202 } 199 203 else { 200 Print("erstes groesser\n");204 //Print("erstes groesser\n"); 201 205 CPair* cp = new CPair(pDeg(ppMult_qq(u2,pHead(temp->getPoly()))), u1, 202 206 newElement->getLPoly(), u2, temp->getLPoly(), testedRule); … … 207 211 } 208 212 209 Print("\n\n");213 //Print("\n\n"); 210 214 temp = temp->getNext(); 211 215 } 212 216 // for debugging 213 217 if(NULL != critPairs) { 214 critPairs->print();218 //critPairs->print(); 215 219 } 216 220 } … … 234 238 // save the monom t1*label_term(l) as it is tested various times in the following 235 239 poly u1 = ppMult_qq(t,l->getTerm()); 236 Print("------------------------------IN CRITERION 1-----------------------------------------\n");237 Print("TESTED ELEMENT: ");238 pWrite(l->getPoly());239 pWrite(ppMult_qq(t,l->getTerm()));240 Print("%d\n\n",l->getIndex());240 //Print("------------------------------IN CRITERION 1-----------------------------------------\n"); 241 //Print("TESTED ELEMENT: "); 242 //pWrite(l->getPoly()); 243 //pWrite(ppMult_qq(t,l->getTerm())); 244 //Print("%d\n\n",l->getIndex()); 241 245 while(testNode->getIndex() < idx && NULL != testNode->getLPoly()) { 242 pWrite(testNode->getPoly());243 Print("%d\n",testNode->getIndex());246 //pWrite(testNode->getPoly()); 247 //Print("%d\n",testNode->getIndex()); 244 248 if(pLmDivisibleByNoComp(testNode->getPoly(),u1)) { 245 Print("Criterion 1 NOT passed!\n");249 //Print("Criterion 1 NOT passed!\n"); 246 250 return true; 247 251 } 248 pWrite(testNode->getNext()->getPoly());252 //pWrite(testNode->getNext()->getPoly()); 249 253 testNode = testNode->getNext(); 250 254 } … … 261 265 */ 262 266 bool criterion2(poly t, LNode* l, RList* rules, RTagList* rTag) { 263 Print("------------------------------IN CRITERION 2-----------------------------------------\n");264 Print("RULES: \n");267 //Print("------------------------------IN CRITERION 2-----------------------------------------\n"); 268 //Print("RULES: \n"); 265 269 RNode* tempR = rules->getFirst(); 266 270 while(NULL != tempR->getRule()) { 267 Print("ADDRESS OF RULE: %p\n",tempR->getRule());268 pWrite(tempR->getRuleTerm());269 Print("ADDRESS OF TERM: %p\n",tempR->getRuleTerm());270 Print("%d\n\n",tempR->getRuleIndex());271 //Print("ADDRESS OF RULE: %p\n",tempR->getRule()); 272 //pWrite(tempR->getRuleTerm()); 273 //Print("ADDRESS OF TERM: %p\n",tempR->getRuleTerm()); 274 //Print("%d\n\n",tempR->getRuleIndex()); 271 275 tempR = tempR->getNext(); 272 276 } 273 Print("TESTED ELEMENT: ");274 pWrite(l->getPoly());275 pWrite(ppMult_qq(t,l->getTerm()));276 Print("%d\n\n",l->getIndex());277 //Print("TESTED ELEMENT: "); 278 //pWrite(l->getPoly()); 279 //pWrite(ppMult_qq(t,l->getTerm())); 280 //Print("%d\n\n",l->getIndex()); 277 281 // start at the previously added element to gPrev, as all other elements will have the same index for sure 278 282 RNode* testNode = new RNode(); … … 285 289 } 286 290 else { 287 Print("DEBUG\n");288 Print("L INDEX: %d\n",l->getIndex());291 //Print("DEBUG\n"); 292 //Print("L INDEX: %d\n",l->getIndex()); 289 293 testNode = rTag->get(l->getIndex()); 290 Print("TESTNODE ADDRESS: %p\n",testNode);294 //Print("TESTNODE ADDRESS: %p\n",testNode); 291 295 } 292 296 } … … 297 301 // NOTE: testNode is possibly NULL as rTag->get() returns NULL for elements of index <=1! 298 302 if(NULL != testNode && NULL != testNode->getRule()) { 299 pWrite(testNode->getRuleTerm());303 //pWrite(testNode->getRuleTerm()); 300 304 } 301 305 if(NULL != testNode) { 302 306 if(testNode->getRule() == l->getRule()) { 303 Print("%p\n%p\n",testNode->getRule(),l->getRule());304 Print("EQUAL\n");307 //Print("%p\n%p\n",testNode->getRule(),l->getRule()); 308 //Print("EQUAL\n"); 305 309 } 306 310 else { 307 Print("NOT EQUAL\n");311 //Print("NOT EQUAL\n"); 308 312 } 309 313 } 310 314 while(NULL != testNode && NULL != testNode->getRule() && testNode->getRule() != l->getRule() 311 315 && l->getIndex() == testNode->getRuleIndex()) { 312 pWrite(testNode->getRuleTerm());316 //pWrite(testNode->getRuleTerm()); 313 317 if(pLmDivisibleBy(testNode->getRuleTerm(),u1)) { 314 Print("Criterion 2 NOT passed!\n");318 //Print("Criterion 2 NOT passed!\n"); 315 319 pDelete(&u1); 316 320 return true; … … 330 334 */ 331 335 bool criterion2(poly t, LPoly* l, RList* rules, Rule* testedRule) { 332 Print("------------------------------IN CRITERION 2-----------------------------------------\n");333 Print("LAST RULE TESTED: %p",testedRule);334 Print("RULES: \n");336 //Print("------------------------------IN CRITERION 2-----------------------------------------\n"); 337 //Print("LAST RULE TESTED: %p",testedRule); 338 //Print("RULES: \n"); 335 339 RNode* tempR = rules->getFirst(); 336 340 while(NULL != tempR->getRule()) { 337 pWrite(tempR->getRuleTerm());338 Print("%d\n\n",tempR->getRuleIndex());341 //pWrite(tempR->getRuleTerm()); 342 //Print("%d\n\n",tempR->getRuleIndex()); 339 343 tempR = tempR->getNext(); 340 344 } 341 Print("TESTED ELEMENT: ");342 pWrite(l->getPoly());343 pWrite(ppMult_qq(t,l->getTerm()));344 Print("%d\n\n",l->getIndex());345 //Print("TESTED ELEMENT: "); 346 //pWrite(l->getPoly()); 347 //pWrite(ppMult_qq(t,l->getTerm())); 348 //Print("%d\n\n",l->getIndex()); 345 349 // start at the previously added element to gPrev, as all other elements will have the same index for sure 346 350 RNode* testNode = rules->getFirst(); … … 349 353 // first element added to rTag was NULL, check for this 350 354 while(NULL != testNode->getRule() && testNode->getRule() != testedRule) { 351 pWrite(testNode->getRuleTerm());355 //pWrite(testNode->getRuleTerm()); 352 356 if(pLmDivisibleBy(testNode->getRuleTerm(),u1)) { 353 Print("Criterion 2 NOT passed!\n");357 //Print("Criterion 2 NOT passed!\n"); 354 358 pDelete(&u1); 355 359 return true; … … 383 387 sp = pSub(ppMult_qq(temp->getT1(),temp->getLp1Poly()), 384 388 ppMult_qq(temp->getT2(),temp->getLp2Poly())); 385 Print("BEGIN SPOLY1\n====================\n");389 //Print("BEGIN SPOLY1\n====================\n"); 386 390 pNorm(sp); 387 pWrite(sp);388 Print("END SPOLY1\n====================\n");391 //pWrite(sp); 392 //Print("END SPOLY1\n====================\n"); 389 393 if(NULL == sp) { 390 394 // as rules consist only of pointers we need to save the labeled … … 394 398 // will never be used again as it is zero => no problems with 395 399 // further criterion2() tests and termination conditions 396 Print("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ZERO REDUCTION~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n");400 //Print("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ZERO REDUCTION~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n"); 397 401 reductionsToZero++; 398 402 rules->insert(temp->getLp1Index(),ppMult_qq(temp->getT1(),temp->getLp1Term())); 399 Print("RULE ADDED: \n");400 pWrite(rules->getFirst()->getRuleTerm());403 //Print("RULE ADDED: \n"); 404 //pWrite(rules->getFirst()->getRuleTerm()); 401 405 // as sp = NULL, delete it 402 406 pDelete(&sp); 403 Print("HIER\n");407 //Print("HIER\n"); 404 408 } 405 409 else { 406 410 rules->insert(temp->getLp1Index(),ppMult_qq(temp->getT1(),temp->getLp1Term())); 407 Print("RULE ADDED: \n");408 pWrite(rules->getFirst()->getRuleTerm());411 //Print("RULE ADDED: \n"); 412 //pWrite(rules->getFirst()->getRuleTerm()); 409 413 sPolyList->insertSP(ppMult_qq(temp->getT1(),temp->getLp1Term()),temp->getLp1Index(),sp,rules->getFirst()->getRule()); 410 414 } … … 416 420 sp = pSub(ppMult_qq(temp->getT1(),temp->getLp1Poly()), 417 421 ppMult_qq(temp->getT2(),temp->getLp2Poly())); 418 Print("BEGIN SPOLY2\n====================\n");422 //Print("BEGIN SPOLY2\n====================\n"); 419 423 pNorm(sp); 420 pWrite(sp);421 Print("END SPOLY2\n====================\n");424 //pWrite(sp); 425 //Print("END SPOLY2\n====================\n"); 422 426 if(NULL == sp) { 423 427 // zeroList->insert(temp->getAdT1(),temp->getLp1Index(),&sp); … … 425 429 // will never be used again as it is zero => no problems with 426 430 // further criterion2() tests and termination conditions 427 Print("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ZERO REDUCTION~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n");431 //Print("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ZERO REDUCTION~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n"); 428 432 reductionsToZero++; 429 433 rules->insert(temp->getLp1Index(),ppMult_qq(temp->getT1(),temp->getLp1Term())); 430 Print("RULE ADDED: \n");431 pWrite(rules->getFirst()->getRuleTerm());434 //Print("RULE ADDED: \n"); 435 //pWrite(rules->getFirst()->getRuleTerm()); 432 436 // as sp = NULL, delete it 433 437 pDelete(&sp); … … 435 439 else { 436 440 rules->insert(temp->getLp1Index(),ppMult_qq(temp->getT1(),temp->getLp1Term())); 437 Print("RULE ADDED: \n");438 pWrite(rules->getFirst()->getRuleTerm());439 Print("%d\n",rules->getFirst()->getRuleIndex());440 Print("%p\n",sPolyList->getFirst());441 //Print("RULE ADDED: \n"); 442 //pWrite(rules->getFirst()->getRuleTerm()); 443 //Print("%d\n",rules->getFirst()->getRuleIndex()); 444 //Print("%p\n",sPolyList->getFirst()); 441 445 sPolyList->insertSP(ppMult_qq(temp->getT1(),temp->getLp1Term()),temp->getLp1Index(),sp,rules->getFirst()->getRule()); 442 446 } … … 461 465 void reduction(LList* sPolyList, CList* critPairs, LList* gPrev, RList* rules, LTagList* lTag, RTagList* rTag, 462 466 ideal gbPrev) { 463 Print("##########################################In REDUCTION!########################################\n");467 //Print("##########################################In REDUCTION!########################################\n"); 464 468 // check if sPolyList has any elements 465 469 // NOTE: due to initialization sPolyList always has a default NULL element 466 470 while(sPolyList->getLength() > 0) { 467 Print("SPOLYLIST LENGTH: %d\n",sPolyList->getLength());471 //Print("SPOLYLIST LENGTH: %d\n",sPolyList->getLength()); 468 472 if(sPolyList->getLength() > 1) { 469 Print("%p\n",sPolyList->getFirst());470 Print("%p\n",sPolyList->getFirst()->getLPoly());471 Print("%p\n",sPolyList->getFirst()->getNext());472 Print("%p\n",sPolyList->getFirst()->getNext()->getLPoly());473 Print("%p\n",sPolyList->getFirst());474 } 475 sPolyList->print();473 //Print("%p\n",sPolyList->getFirst()); 474 //Print("%p\n",sPolyList->getFirst()->getLPoly()); 475 //Print("%p\n",sPolyList->getFirst()->getNext()); 476 //Print("%p\n",sPolyList->getFirst()->getNext()->getLPoly()); 477 //Print("%p\n",sPolyList->getFirst()); 478 } 479 //sPolyList->print(); 476 480 // temp is the first element in the sPolyList which should be reduced 477 481 // due to earlier sorting this is the element of minimal degree AND 478 482 // minimal label 479 483 LNode* temp = sPolyList->getFirst(); 480 pWrite(temp->getPoly());484 //pWrite(temp->getPoly()); 481 485 // delete the above first element from sPolyList, temp will be either reduced to 482 486 // zero or added to gPrev, but never come back to sPolyList 483 sPolyList->setFirst(temp->getNext()); 484 Print("HALLO %p\n",temp->getPoly()); 485 Print("%p\n",temp->getPoly()); 486 pWrite(temp->getPoly()); 487 idShow(gbPrev); 487 if(NULL != temp && NULL != temp->getLPoly()) { 488 sPolyList->setFirst(temp->getNext()); 489 //Print("HIER\n"); 490 } 491 else { 492 break; 493 } 494 //Print("HALLO %p\n",temp->getPoly()); 495 //Print("%p\n",temp->getPoly()); 496 //pWrite(temp->getPoly()); 497 //idShow(gbPrev); 488 498 poly tempNF = kNF(gbPrev,currQuotient,temp->getPoly()); 489 499 pNorm(tempNF); 490 Print("LENGTH: %d\n",sPolyList->getLength());491 pWrite(tempNF);492 pWrite(temp->getPoly());500 //Print("LENGTH: %d\n",sPolyList->getLength()); 501 //pWrite(tempNF); 502 //pWrite(temp->getPoly()); 493 503 if(NULL != tempNF) { 494 504 // write the reduced polynomial in temp … … 502 512 if(NULL != temp->getPoly()) { 503 513 //CList* newCritPairs = new CList; 504 Print("##################IN CRITPAIRS IN REDUCTION#####################\n");514 //Print("##################IN CRITPAIRS IN REDUCTION#####################\n"); 505 515 criticalPair(gPrev,critPairs,lTag,rTag,rules); 506 516 } … … 508 518 //delete temp; 509 519 LNode* tempLoop = gPrev->getFirst(); 510 Print("AUSGABE IN REDUCTION:\n");520 //Print("AUSGABE IN REDUCTION:\n"); 511 521 while(NULL != tempLoop) { 512 pWrite(tempLoop->getPoly());522 //pWrite(tempLoop->getPoly()); 513 523 tempLoop = tempLoop->getNext(); 514 524 } … … 527 537 */ 528 538 void topReduction(LNode* l, LList* sPolyList, LList* gPrev, RList* rules, LTagList* lTag, RTagList* rTag) { 529 Print("##########################################In topREDUCTION!########################################\n");539 //Print("##########################################In topREDUCTION!########################################\n"); 530 540 // try l as long as there are reductors found by findReductor() 531 541 do { 532 542 LNode* tempRed = new LNode(); 533 543 tempRed = findReductor(l,gPrev,rules,lTag,rTag); 534 Print("--------------------------------HIER DEBUG 2----------------------------------\n");544 //Print("--------------------------------HIER DEBUG 2----------------------------------\n"); 535 545 // if a reductor for l is found and saved in tempRed 536 546 if(NULL != tempRed) { … … 539 549 if(pLmCmp(tempRed->getTerm(),l->getTerm()) == 1) { 540 550 poly temp = pSub(tempRed->getPoly(),l->getPoly()); 541 Print("OH JE\n"); 542 pWrite(temp); 551 //pWrite(temp); 543 552 if(NULL != temp) { 544 553 pNorm(temp); 545 554 tempRed->setPoly(temp); 546 555 // for debugging 547 pWrite(tempRed->getPoly());548 Print("RULE ADDED\n");556 //pWrite(tempRed->getPoly()); 557 //Print("RULE ADDED\n"); 549 558 rules->insert(tempRed->getIndex(),tempRed->getTerm()); 550 551 559 tempRed->getLPoly()->setRule(rules->getFirst()->getRule()); 552 Print("%p\n",sPolyList->getFirst());553 Print("%p\n",sPolyList->getFirst()->getLPoly());554 Print("SPOLYLIST LENGTH: %d\n",sPolyList->getLength());560 //Print("%p\n",sPolyList->getFirst()); 561 //Print("%p\n",sPolyList->getFirst()->getLPoly()); 562 //Print("SPOLYLIST LENGTH: %d\n",sPolyList->getLength()); 555 563 sPolyList->insertByLabel(tempRed); 564 //Print("OH JE\n"); 556 565 } 557 566 else { 558 567 pDelete(&temp); 559 568 reductionsToZero++; 560 Print("RULE ADDED\n");561 Print("wieder hier2\n");569 //Print("RULE ADDED\n"); 570 //Print("wieder hier2\n"); 562 571 rules->insert(tempRed->getIndex(),tempRed->getTerm()); 563 572 delete tempRed; … … 569 578 else { 570 579 poly temp = pSub(l->getPoly(),tempRed->getPoly()); 571 pWrite(temp);580 //pWrite(temp); 572 581 if(NULL != temp) { 573 582 pNorm(temp); … … 576 585 } 577 586 else { 578 Print("ZERO REDUCTION!\n");587 //Print("ZERO REDUCTION!\n"); 579 588 reductionsToZero++; 580 589 pDelete(&temp); 581 590 l->setPoly(NULL); 582 pWrite(gPrev->getLast()->getPoly());591 //pWrite(gPrev->getLast()->getPoly()); 583 592 break; 584 593 } … … 587 596 else { 588 597 if(NULL != l->getPoly()) { 589 Print("ADDED TO GPREV IN TOPREDUCTION: ");590 pWrite(l->getPoly());591 pWrite(l->getTerm());592 Print("INDEX: %d\n", l->getIndex());598 //Print("ADDED TO GPREV IN TOPREDUCTION: "); 599 //pWrite(l->getPoly()); 600 //pWrite(l->getTerm()); 601 //Print("INDEX: %d\n", l->getIndex()); 593 602 //sleep(10); 594 603 gPrev->insert(l->getLPoly()); 595 Print("GPREV: \n");604 //Print("GPREV: \n"); 596 605 LNode* tempLoop = gPrev->getFirst(); 597 606 while(NULL != tempLoop) { 598 Print("HERE\n");599 pWrite(tempLoop->getPoly());607 //Print("HERE\n"); 608 //pWrite(tempLoop->getPoly()); 600 609 tempLoop = tempLoop->getNext(); 601 610 } … … 614 623 LNode* findReductor(LNode* l, LList* gPrev, RList* rules, LTagList* lTag,RTagList* rTag) { 615 624 // allociation of memory for the possible reductor 616 Print("IN FIND REDUCTOR\n");625 //Print("IN FIND REDUCTOR\n"); 617 626 poly u = pOne(); 618 627 poly red = pOne(); … … 652 661 // passing criterion1 ? 653 662 if(!criterion1(gPrev,u,temp,lTag)) { 654 Print("HIER DEBUG\n");663 //Print("HIER DEBUG\n"); 655 664 l->setGPrevRedCheck(temp); 656 665 LNode* redNode = new LNode(u,temp->getIndex(),red,NULL,NULL); … … 664 673 665 674 // delete temp; 666 Print("1st gPrev: ");667 pWrite(gPrev->getFirst()->getPoly());668 Print("2nd gPrev: ");669 pWrite(gPrev->getFirst()->getNext()->getPoly());675 //Print("1st gPrev: "); 676 //pWrite(gPrev->getFirst()->getPoly()); 677 //Print("2nd gPrev: "); 678 //pWrite(gPrev->getFirst()->getNext()->getPoly()); 670 679 return NULL; 671 680 } … … 685 694 // tag the first element of index i-1 for criterion 1 686 695 LTagList* lTag = new LTagList(); 687 Print("LTAG BEGINNING: %p\n",lTag->getFirst());696 //Print("LTAG BEGINNING: %p\n",lTag->getFirst()); 688 697 689 698 // first element in rTag is first element of rules which is NULL RNode, … … 703 712 } 704 713 LList* gPrev = new LList(ONE, i, id->m[0]); 705 Print("%p\n",id->m[0]);706 pWrite(id->m[0]);707 Print("%p\n",gPrev->getFirst()->getPoly());708 pWrite(gPrev->getFirst()->getPoly());714 //Print("%p\n",id->m[0]); 715 //pWrite(id->m[0]); 716 //Print("%p\n",gPrev->getFirst()->getPoly()); 717 //pWrite(gPrev->getFirst()->getPoly()); 709 718 710 719 lTag->insert(gPrev->getFirst()); … … 712 721 // computing the groebner basis of the elements of index < actual index 713 722 gbLength = gPrev->getLength(); 714 Print("Laenge der bisherigen Groebner Basis: %d\n",gPrev->getLength());723 //Print("Laenge der bisherigen Groebner Basis: %d\n",gPrev->getLength()); 715 724 ideal gbPrev = idInit(gbLength,1); 716 725 // initializing the groebner basis of elements of index < actual index 717 726 gbPrev->m[0] = gPrev->getFirst()->getPoly(); 718 idShow(gbPrev);719 idShow(currQuotient);727 //idShow(gbPrev); 728 //idShow(currQuotient); 720 729 721 730 for(i=2; i<=IDELEMS(id); i++) { 722 731 LNode* gPrevTag = gPrev->getLast(); 723 Print("Last POlynomial in GPREV: ");724 Print("%p\n",gPrevTag);725 pWrite(gPrevTag->getPoly());732 //Print("Last POlynomial in GPREV: "); 733 //Print("%p\n",gPrevTag); 734 //pWrite(gPrevTag->getPoly()); 726 735 gPrev = F5inc(i, id->m[i-1], gPrev, gbPrev, ONE, lTag, rules, rTag); 727 736 // DEBUGGING STUFF 728 737 LNode* temp = gPrev->getFirst(); 729 while(NULL != temp) { 730 pWrite(temp->getPoly()); 731 temp = temp->getNext(); 732 }// comuting new groebner basis gbPrev 738 // computing new groebner basis gbPrev 733 739 if(gPrev->getLength() > gbLength) { 734 740 ideal gbAdd = idInit(gPrev->getLength()-gbLength,1); 735 741 LNode* temp = gPrevTag; 736 Print("%p\n",gPrevTag);737 Print("%p\n",gPrev->getLast());738 pWrite(temp->getPoly());739 Print("LENGTH OF GPREV LIST: %d\n",gPrev->getLength());740 Print("%d\n",gbLength);742 //Print("%p\n",gPrevTag); 743 //Print("%p\n",gPrev->getLast()); 744 //pWrite(temp->getPoly()); 745 //Print("LENGTH OF GPREV LIST: %d\n",gPrev->getLength()); 746 //Print("%d\n",gbLength); 741 747 for(j=0;j<=gPrev->getLength()-gbLength-1;j++) { 742 Print("YES\n");748 //Print("YES\n"); 743 749 temp = temp->getNext(); 744 750 gbAdd->m[j] = temp->getPoly(); 745 pWrite(temp->getPoly());751 //pWrite(temp->getPoly()); 746 752 } 747 753 gbLength = gPrev->getLength(); 748 754 gbPrev = idAdd(gbPrev,gbAdd); 749 755 } 750 Print("GROEBNER BASIS:\n====================================================\n"); 751 idShow(gbPrev); 752 Print("===================================================\n"); 753 Print("JA\n"); 756 int anzahl = 1; 757 //while(NULL != temp) { 758 // Print("%d. Element: ",anzahl); 759 // pWrite(temp->getPoly()); 760 // Print("\n"); 761 // temp = temp->getNext(); 762 // anzahl++; 763 //} 764 //sleep(5); 765 //Print("GROEBNER BASIS:\n====================================================\n"); 766 //idShow(gbPrev); 767 //Print("===================================================\n"); 768 //Print("JA\n"); 754 769 } 755 770 Print("\n\nNumber of zero-reductions: %d\n",reductionsToZero); 756 LNode* temp = gPrev->getFirst();757 while(NULL != temp) {758 pWrite(temp->getPoly());759 temp = temp->getNext();760 }771 //LNode* temp = gPrev->getFirst(); 772 //while(NULL != temp) { 773 // pWrite(temp->getPoly()); 774 // temp = temp->getNext(); 775 // } 761 776 return(gbPrev); 762 777 -
kernel/f5lists.cc
rb0237b8 r598870 38 38 39 39 LNode::LNode(LPoly* lp, LNode* l) { 40 Print("HIER LNODE\n");40 //Print("HIER LNODE\n"); 41 41 data = lp; 42 42 next = l; … … 73 73 // needed for list gPrev 74 74 LNode* LNode::insert(LPoly* lp) { 75 Print("INSERTION: \n");76 Print("LAST GPREV: ");77 pWrite(this->getPoly());75 //Print("INSERTION: \n"); 76 //Print("LAST GPREV: "); 77 //pWrite(this->getPoly()); 78 78 LNode* newElement = new LNode(lp, NULL); 79 79 this->next = newElement; … … 101 101 // only used for the S-polys to be reduced (TopReduction building new S-polys with higher label) 102 102 LNode* LNode::insertByLabel(poly t, int i, poly p, Rule* r) { 103 if(NULL == data) {103 if(NULL == this || NULL == data) { 104 104 LNode* newElement = new LNode(t, i, p, r, this); 105 105 return newElement; … … 120 120 else { 121 121 temp = temp->next; 122 Print("%p\n",temp);123 Print("%p\n",temp->data);122 //Print("%p\n",temp); 123 //Print("%p\n",temp->data); 124 124 125 Print("%p\n",temp->next);125 //Print("%p\n",temp->next); 126 126 } 127 127 } 128 Print("HIER\n");128 //Print("HIER\n"); 129 129 LNode* newElement = new LNode(t, i, p, r, temp->next); 130 130 temp->next = newElement; … … 208 208 LNode* temp = this; 209 209 Print("___________________List of S-polynomials______________________:\n"); 210 Print("%p\n",this); 210 211 while(NULL != temp && NULL != temp->data) { 211 212 Print("HIER\n"); 212 213 Print("Index: %d\n",temp->getIndex()); 213 214 Print("Term: "); 214 pWrite(temp->getTerm());215 //pWrite(temp->getTerm()); 215 216 Print("Poly: "); 216 pWrite(temp->getPoly());217 //pWrite(temp->getPoly()); 217 218 Print("\n"); 218 219 temp = temp->next; … … 252 253 void LList::insert(LPoly* lp) { 253 254 last = last->insert(lp); 254 Print("NEW LAST GPREV: ");255 pWrite(last->getPoly());255 //Print("NEW LAST GPREV: "); 256 //pWrite(last->getPoly()); 256 257 length++; 257 Print("LENGTH %d\n",length);258 //Print("LENGTH %d\n",length); 258 259 } 259 260 … … 261 262 last = last->insert(t,i,p,r); 262 263 length++; 263 Print("LENGTH %d\n",length);264 //Print("LENGTH %d\n",length); 264 265 } 265 266 … … 268 269 first = first->insertSP(lp); 269 270 length++; 270 Print("LENGTH %d\n",length);271 //Print("LENGTH %d\n",length); 271 272 } 272 273 … … 274 275 first = first->insertSP(t,i,p,r); 275 276 length++; 276 Print("LENGTH %d\n",length);277 //Print("LENGTH %d\n",length); 277 278 } 278 279 … … 281 282 first = first->insertByLabel(t,i,p,r); 282 283 length++; 283 Print("LENGTH %d\n",length);284 //Print("LENGTH %d\n",length); 284 285 } 285 286 … … 287 288 first = first->insertByLabel(l->getTerm(),l->getIndex(),l->getPoly(),l->getRule()); 288 289 length++; 289 Print("LENGTH %d\n",length);290 //Print("LENGTH %d\n",length); 290 291 } 291 292 … … 481 482 if( c->getDeg() == this->data->getDeg() ) { // same degree than the first list element 482 483 if(1 != pLmCmp(u1,ppMult_qq(this->data->getT1(), this->data->getLp1Term()))) { 483 pWrite(u1);484 Print("Multi-Term in CritPairs Sortierung altes Element: ");485 pWrite(ppMult_qq(this->data->getT1(),this->data->getLp1Term()));484 //pWrite(u1); 485 //Print("Multi-Term in CritPairs Sortierung altes Element: "); 486 //pWrite(ppMult_qq(this->data->getT1(),this->data->getLp1Term())); 486 487 CNode* newElement = new CNode(c, this); 487 488 return newElement; 488 489 } 489 490 else { 490 Print("Insert Deg\n");491 //Print("Insert Deg\n"); 491 492 CNode* temp = this; 492 493 while( NULL != temp->next->data ) { … … 810 811 // declaration with first as parameter due to sorting of RTagList 811 812 RTagNode* RTagNode::insert(RNode* r) { 812 Print("Hier1\n");813 //Print("Hier1\n"); 813 814 RTagNode* newElement = new RTagNode(r, this); 814 Print("Hier2\n");815 //Print("Hier2\n"); 815 816 return newElement; 816 817 } … … 833 834 int j; 834 835 RTagNode* temp = this; 835 Print("\n\nHIER IN GET IDX\n");836 Print("FOR LOOP: %d\n",length-idx+1);836 //Print("\n\nHIER IN GET IDX\n"); 837 //Print("FOR LOOP: %d\n",length-idx+1); 837 838 for(j=1; j<=length-idx+1; j++) { 838 839 temp = temp->next; … … 849 850 RTagNode* temp = this; 850 851 Print("1. element: %d",getRNode()->getRule()->getIndex()); 851 pWrite(getRNode()->getRule()->getTerm());852 //pWrite(getRNode()->getRule()->getTerm()); 852 853 temp = temp->next; 853 854 int i = 2; 854 855 while(NULL != temp->getRNode()) { 855 856 Print("%d. element: %d",i,getRNode()->getRule()->getIndex()); 856 pWrite(getRNode()->getRule()->getTerm());857 //pWrite(getRNode()->getRule()->getTerm()); 857 858 temp = temp->next; 858 859 i++; … … 878 879 void RTagList::insert(RNode* r) { 879 880 first = first->insert(r); 880 Print("LENGTH:%d\n",length);881 //Print("LENGTH:%d\n",length); 881 882 length = length +1; 882 Print("LENGTH:%d\n",length);883 //Print("LENGTH:%d\n",length); 883 884 } 884 885
Note: See TracChangeset
for help on using the changeset viewer.