Changeset 70c15e in git for kernel/f5gb.cc
- Timestamp:
- Feb 22, 2009, 7:58:36 PM (15 years ago)
- Branches:
- (u'spielwiese', '8e0ad00ce244dfd0756200662572aef8402f13d5')
- Children:
- 6d5e7ee005c7a5c9c97446227e1b19c6ed68fc9a
- Parents:
- d8be851dd8f2cf657611debe1b34b05aedcdf65d
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
kernel/f5gb.cc
rd8be851 r70c15e 2 2 * Computer Algebra System SINGULAR * 3 3 ****************************************/ 4 /* $Id: f5gb.cc,v 1.3 1 2009-02-19 14:52:34ederc Exp $ */4 /* $Id: f5gb.cc,v 1.32 2009-02-22 18:58:36 ederc Exp $ */ 5 5 /* 6 6 * ABSTRACT: f5gb interface … … 75 75 gPrev->insert(ONE,i,f_i); 76 76 // tag the first element in gPrev of the current index for findReductor() 77 lTag->setFirstCurrentIdx(gPrev->get First());77 lTag->setFirstCurrentIdx(gPrev->getLast()); 78 78 //Print("1st gPrev: "); 79 79 //pWrite(gPrev->getFirst()->getPoly()); … … 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 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); 122 113 123 } 114 124 Print("REDUCTION DONE\n"); … … 255 265 RNode* tempR = rules->getFirst(); 256 266 while(NULL != tempR->getRule()) { 267 Print("ADDRESS OF RULE: %p\n",tempR->getRule()); 257 268 pWrite(tempR->getRuleTerm()); 269 Print("ADDRESS OF TERM: %p\n",tempR->getRuleTerm()); 258 270 Print("%d\n\n",tempR->getRuleIndex()); 259 271 tempR = tempR->getNext(); … … 273 285 } 274 286 else { 287 Print("DEBUG\n"); 288 Print("L INDEX: %d\n",l->getIndex()); 275 289 testNode = rTag->get(l->getIndex()); 290 Print("TESTNODE ADDRESS: %p\n",testNode); 276 291 } 277 292 } … … 281 296 //Print("%p\n",testNode->getRule()); 282 297 // NOTE: testNode is possibly NULL as rTag->get() returns NULL for elements of index <=1! 298 if(NULL != testNode && NULL != testNode->getRule()) { 299 pWrite(testNode->getRuleTerm()); 300 } 301 if(NULL != testNode) { 302 if(testNode->getRule() == l->getRule()) { 303 Print("%p\n%p\n",testNode->getRule(),l->getRule()); 304 Print("EQUAL\n"); 305 } 306 else { 307 Print("NOT EQUAL\n"); 308 } 309 } 283 310 while(NULL != testNode && NULL != testNode->getRule() && testNode->getRule() != l->getRule() 284 311 && l->getIndex() == testNode->getRuleIndex()) { 285 312 pWrite(testNode->getRuleTerm()); 286 if(pLmDivisibleBy( ppMult_qq(t,l->getTerm()),testNode->getRuleTerm())) {313 if(pLmDivisibleBy(testNode->getRuleTerm(),u1)) { 287 314 Print("Criterion 2 NOT passed!\n"); 315 pDelete(&u1); 288 316 return true; 289 317 } 290 318 testNode = testNode->getNext(); 291 319 } 320 pDelete(&u1); 292 321 return false; 293 322 } … … 321 350 while(NULL != testNode->getRule() && testNode->getRule() != testedRule) { 322 351 pWrite(testNode->getRuleTerm()); 323 if(pLmDivisibleBy(testNode->getRuleTerm(), ppMult_qq(t,l->getTerm()))) {352 if(pLmDivisibleBy(testNode->getRuleTerm(),u1)) { 324 353 Print("Criterion 2 NOT passed!\n"); 354 pDelete(&u1); 325 355 return true; 326 356 } 327 357 testNode = testNode->getNext(); 328 358 } 359 pDelete(&u1); 329 360 return false; 330 361 } … … 406 437 Print("RULE ADDED: \n"); 407 438 pWrite(rules->getFirst()->getRuleTerm()); 439 Print("%d\n",rules->getFirst()->getRuleIndex()); 408 440 Print("%p\n",sPolyList->getFirst()); 409 441 sPolyList->insertSP(ppMult_qq(temp->getT1(),temp->getLp1Term()),temp->getLp1Index(),sp,rules->getFirst()->getRule()); … … 434 466 while(sPolyList->getLength() > 0) { 435 467 Print("SPOLYLIST LENGTH: %d\n",sPolyList->getLength()); 468 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 } 436 475 sPolyList->print(); 437 476 // temp is the first element in the sPolyList which should be reduced … … 446 485 Print("%p\n",temp->getPoly()); 447 486 pWrite(temp->getPoly()); 487 idShow(gbPrev); 448 488 poly tempNF = kNF(gbPrev,currQuotient,temp->getPoly()); 489 pNorm(tempNF); 449 490 Print("LENGTH: %d\n",sPolyList->getLength()); 450 491 pWrite(tempNF); … … 457 498 // is no label corruption during the reduction process 458 499 topReduction(temp,sPolyList,gPrev,rules,lTag,rTag); 459 LNode* tempLoop = gPrev->getFirst(); 460 while(NULL != tempLoop) { 461 pWrite(tempLoop->getPoly()); 462 tempLoop = tempLoop->getNext(); 463 } 500 464 501 } 465 502 if(NULL != temp->getPoly()) { 466 503 //CList* newCritPairs = new CList; 504 Print("##################IN CRITPAIRS IN REDUCTION#####################\n"); 467 505 criticalPair(gPrev,critPairs,lTag,rTag,rules); 468 506 } 469 507 else { 470 delete temp; 508 //delete temp; 509 LNode* tempLoop = gPrev->getFirst(); 510 Print("AUSGABE IN REDUCTION:\n"); 511 while(NULL != tempLoop) { 512 pWrite(tempLoop->getPoly()); 513 tempLoop = tempLoop->getNext(); 514 } 515 //sleep(10); 471 516 } 472 517 } … … 487 532 LNode* tempRed = new LNode(); 488 533 tempRed = findReductor(l,gPrev,rules,lTag,rTag); 534 Print("--------------------------------HIER DEBUG 2----------------------------------\n"); 489 535 // if a reductor for l is found and saved in tempRed 490 536 if(NULL != tempRed) { … … 493 539 if(pLmCmp(tempRed->getTerm(),l->getTerm()) == 1) { 494 540 poly temp = pSub(tempRed->getPoly(),l->getPoly()); 541 Print("OH JE\n"); 495 542 pWrite(temp); 496 543 if(NULL != temp) { 544 pNorm(temp); 497 545 tempRed->setPoly(temp); 498 546 // for debugging … … 500 548 Print("RULE ADDED\n"); 501 549 rules->insert(tempRed->getIndex(),tempRed->getTerm()); 502 550 503 551 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()); 504 555 sPolyList->insertByLabel(tempRed); 505 556 } … … 508 559 reductionsToZero++; 509 560 Print("RULE ADDED\n"); 561 Print("wieder hier2\n"); 510 562 rules->insert(tempRed->getIndex(),tempRed->getTerm()); 511 563 delete tempRed; … … 519 571 pWrite(temp); 520 572 if(NULL != temp) { 573 pNorm(temp); 521 574 l->setPoly(temp); 522 575 l->setGPrevRedCheck(NULL); 523 576 } 524 577 else { 578 Print("ZERO REDUCTION!\n"); 579 reductionsToZero++; 525 580 pDelete(&temp); 526 581 l->setPoly(NULL); 582 pWrite(gPrev->getLast()->getPoly()); 583 break; 527 584 } 528 585 } … … 533 590 pWrite(l->getPoly()); 534 591 pWrite(l->getTerm()); 592 Print("INDEX: %d\n", l->getIndex()); 593 //sleep(10); 535 594 gPrev->insert(l->getLPoly()); 536 595 Print("GPREV: \n"); 537 596 LNode* tempLoop = gPrev->getFirst(); 538 597 while(NULL != tempLoop) { 598 Print("HERE\n"); 539 599 pWrite(tempLoop->getPoly()); 540 600 tempLoop = tempLoop->getNext(); … … 554 614 LNode* findReductor(LNode* l, LList* gPrev, RList* rules, LTagList* lTag,RTagList* rTag) { 555 615 // allociation of memory for the possible reductor 616 Print("IN FIND REDUCTOR\n"); 556 617 poly u = pOne(); 557 618 poly red = pOne(); … … 591 652 // passing criterion1 ? 592 653 if(!criterion1(gPrev,u,temp,lTag)) { 654 Print("HIER DEBUG\n"); 593 655 l->setGPrevRedCheck(temp); 594 656 LNode* redNode = new LNode(u,temp->getIndex(),red,NULL,NULL); … … 663 725 pWrite(gPrevTag->getPoly()); 664 726 gPrev = F5inc(i, id->m[i-1], gPrev, gbPrev, ONE, lTag, rules, rTag); 665 // comuting new groebner basis gbPrev 727 // DEBUGGING STUFF 728 LNode* temp = gPrev->getFirst(); 729 while(NULL != temp) { 730 pWrite(temp->getPoly()); 731 temp = temp->getNext(); 732 }// comuting new groebner basis gbPrev 666 733 if(gPrev->getLength() > gbLength) { 667 734 ideal gbAdd = idInit(gPrev->getLength()-gbLength,1); … … 674 741 for(j=0;j<=gPrev->getLength()-gbLength-1;j++) { 675 742 Print("YES\n"); 743 temp = temp->getNext(); 676 744 gbAdd->m[j] = temp->getPoly(); 677 745 pWrite(temp->getPoly()); 678 temp = temp->getNext();679 746 } 680 747 gbLength = gPrev->getLength(); … … 684 751 idShow(gbPrev); 685 752 Print("===================================================\n"); 686 687 753 Print("JA\n"); 688 754 } 689 755 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 } 690 761 return(gbPrev); 691 762
Note: See TracChangeset
for help on using the changeset viewer.