Changeset 1534d9 in git


Ignore:
Timestamp:
Mar 16, 2009, 8:28:07 PM (14 years ago)
Author:
Christian Eder
Branches:
(u'jengelh-datetime', 'ceac47cbc86fe4a15902392bdbb9bd2ae0ea02c6')(u'spielwiese', 'a800fe4b3e9d37a38c5a10cc0ae9dfa0c15a4ee6')
Children:
febf7e79089257c80bba7e793dd2fb03af40b285
Parents:
bc103b1993b606247dbfebaa278db1467ca2c15b
Message:
changed data structure RList, sorted insertion of rules, still problems with degree of monomials of rules


git-svn-id: file:///usr/local/Singular/svn/trunk@11563 2c84dea3-7e68-4137-9b89-c4e89433aadc
Location:
kernel
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • kernel/f5gb.cc

    rbc103b r1534d9  
    22*  Computer Algebra System SINGULAR     *
    33****************************************/
    4 /* $Id: f5gb.cc,v 1.47 2009-03-16 13:30:59 Singular Exp $ */
     4<<<<<<< f5gb.cc
     5/* $Id: f5gb.cc,v 1.48 2009-03-16 19:28:07 ederc Exp $ */
     6=======
     7/* $Id: f5gb.cc,v 1.48 2009-03-16 19:28:07 ederc Exp $ */
     8>>>>>>> 1.47
    59/*
    610* ABSTRACT: f5gb interface
     
    108112        // added
    109113        computeSPols(critPairsMinDeg,rTag,rules,sPolyList);
    110         //Print("HIER2\n");
    111114        // DEBUG STUFF FOR SPOLYLIST
    112115        LNode* temp     =   sPolyList->getFirst();
     
    157160    delete critPairs;
    158161    //Print("IN F5INC\n");
    159    
     162   Print("\n\n\nRULES: \n");
     163        RNode* tempR    =   rules->getFirst();
     164        Print("%p\n",tempR);
     165        int t   = 1;
     166        while(NULL != tempR) {
     167            Print("ADDRESS OF %d RNODE: %p\n",t,tempR);
     168            Print("ADDRESS OF RULE: %p\n",tempR->getRule());
     169            pWrite(tempR->getRuleTerm());
     170            Print("ADDRESS OF TERM: %p\n",tempR->getRuleTerm());
     171            Print("%d\n\n",tempR->getRuleIndex());
     172            tempR   =   tempR->getNext();
     173            t++;
     174        }
     175 
    160176    //gPrev->print();
    161177    return gPrev;
     
    190206        //pWrite( *(gPrev->getFirst()->getPoly()) );
    191207       // pWrite( *(l->getPoly()) );
     208       //pWrite(newElement->getPoly());
     209        //pWrite(temp->getPoly());
    192210        pLcm(newElement->getPoly(), temp->getPoly(), lcm);
    193211        pSetCoeff(lcm,nOne);
    194212        // computing factors u2 for new labels
    195         pExpVectorDiff(u1,lcm,t);
     213        //pExpVectorDiff(u1,lcm,t);
     214        //Print("U1: ");
    196215        //pWrite(u1);
    197         //u1 = pDivide(lcm,t);
     216        u1 = pDivide(lcm,t);
    198217        //pWrite(u1);
    199         //pSetCoeff(u1,nOne);
    200         pExpVectorDiff(u2,lcm,temp->getPoly());
     218        pSetCoeff(u1,nOne);
     219        //Print("%p\n",u1);
     220        //critPairs->print();
     221        //pExpVectorDiff(u2,lcm,temp->getPoly());
     222        //Print("U2: ");
    201223        //pWrite(u2);
    202         //u2 = pDivide(lcm, pHead(temp->getPoly()));
     224        u2 = pDivide(lcm, pHead(temp->getPoly()));
    203225        //pWrite(u2);
    204         //pSetCoeff(u2,nOne);
     226        //Print("%p\n",u2);
     227        pSetCoeff(u2,nOne);
    205228        //if(gPrev->getLast()->getIndex()==5) {
    206229            //Print("IN CRITPAIRS\n");
     
    212235        //}
    213236        // testing both new labels by the F5 Criterion
     237        //critPairs->print();
    214238        if(!criterion2(u1, newElement, rules, rTag) && !criterion2(u2, temp, rules, rTag) &&
    215239           !criterion1(gPrev,u1,newElement,lTag) && !criterion1(gPrev,u2,temp,lTag)) {
     
    222246                CPair* cp   =   new CPair(pDeg(ppMult_qq(u2,pHead(temp->getPoly()))), u2,
    223247                                temp->getLPoly(), u1, newElement->getLPoly(), testedRule);                   
     248               
    224249                critPairs->insert(cp);
    225250                //Print("LALA %p\n",critPairs->getFirst());
     
    265290    int i;
    266291    if(idx == 1) {
     292        //Print("HIER\n");
    267293        return false;
    268294    }
     
    316342inline bool criterion2(poly t, LNode* l, RList* rules, RTagList* rTag) {
    317343    //Print("------------------------------IN CRITERION 2/1-----------------------------------------\n");
    318     /*   
     344    /* 
    319345    Print("RULES: \n");
    320346        RNode* tempR    =   rules->getFirst();
     347        Print("%p\n",tempR);
    321348        int i   = 1;
    322349        while(NULL != tempR) {
     
    329356            i++;
    330357        }
    331        
    332358        //Print("TESTED ELEMENT: ");
    333359        //pWrite(l->getPoly());
     
    335361        //pWrite(ppMult_qq(t,l->getTerm()));
    336362        //Print("%d\n\n",l->getIndex());
    337        */
     363      */
    338364// start at the previously added element to gPrev, as all other elements will have the same index for sure
    339365    RNode* testNode; // =   new RNode();
    340366     
    341     if(NULL == rTag->getFirst()->getRule()) {
     367    if(NULL == rTag->getFirst()) {
    342368        if(NULL != rules->getFirst()) {
    343369            testNode    =   rules->getFirst();
     
    938964           
    939965            // interreduction stuff
    940            
    941966            if(i<IDELEMS(id)) {
    942967                ideal tempId    =   kInterRed(gbPrev);
    943968                //idShow(tempId);
    944                 sleep(5);
    945969                gbPrev          =   tempId;
    946970                //qsortDegree(&gbPrev->m[0],&gbPrev->m[IDELEMS(gbPrev)-1]);
    947971                delete gPrev;
     972                //sleep(5);
    948973                //Print("RULES FIRST NOW1: %p\n",rules->getFirst());
    949974                //Print("HIER\n");
     
    961986               
    962987                //Print("%p\n",rules->getFirst());
    963                 //pWrite(tempPoly);
     988                pWrite(tempPoly);
    964989                rules->insert(2,tempPoly);
    965990                rTag->insert(rules->getFirst());
     
    9761001                        //pWrite(gbPrev->m[k]);
    9771002                        //pWrite(gbPrev->m[l]);
    978                         pLcm(pHead(gbPrev->m[k]),pHead(gbPrev->m[l]),tempPoly);
    979                         pSetCoeff(tempPoly,nOne);
    980                         rules->insert(k+1,tempPoly);
     1003                        poly tempPoly2  =   pOne();
     1004                        pLcm(pHead(gbPrev->m[k]),pHead(gbPrev->m[l]),tempPoly2);
     1005                        pSetCoeff(tempPoly2,nOne);
     1006                        pWrite(tempPoly2);
     1007                        rules->insert(k+1,tempPoly2);
    9811008                    }
    9821009                    rTag->insert(rules->getFirst());
  • kernel/f5lists.cc

    rbc103b r1534d9  
    666666        Print("T1: ");
    667667        pWrite(temp->getT1());
     668        Print("%p\n",temp->getT1());
    668669        Print("LP1 Term: ");
    669670        pWrite(temp->getLp1Term());
     
    673674        Print("T2: ");
    674675        pWrite(temp->getT2());
     676        Print("%p\n",temp->getT2());
    675677        Print("LP2 Term: ");
    676678        pWrite(temp->getLp2Term());
     
    762764    //Print("ADDRESS OF RNODE: %p\n",newElement);
    763765    //Print("ADDRESS OF RNODE DATA: %p\n",newElement->getRule());
    764     newElement->next    =   this;
     766    if(NULL == this || this->getRuleIndex() < newElement->getRuleIndex()) {
     767        newElement->next    =   this;
     768    }
     769    else {
     770        if(pDeg(newElement->getRuleTerm()) > pDeg(this->getRuleTerm())) {
     771                newElement->next    =   this;
     772        }
     773        if(-1 == pLmCmp(newElement->getRuleTerm(),this->getRuleTerm())) {
     774            Print("HAHI\n");
     775            Print("%ld\n",pDeg(newElement->getRuleTerm()));
     776            Print("%ld\n",pDeg(this->getRuleTerm()));
     777           
     778            pWrite(newElement->getRuleTerm());
     779            pWrite(this->getRuleTerm());
     780            RNode* temp    =   this;
     781            while(NULL != temp->next && pDeg(newElement->getRuleTerm()) <= pDeg(temp->next->getRuleTerm())
     782                    && -1 == pLmCmp(newElement->getRuleTerm(),temp->next->getRuleTerm())) {
     783                temp    =   temp->next;
     784            }
     785            newElement->next    =   temp->next;
     786            temp->next          =   newElement;
     787            return this;
     788        }
     789        else {
     790            newElement->next    =   this;
     791            return newElement;
     792        }
     793    }
    765794    return newElement;
    766795}
     
    788817*/
    789818RList::RList() {
    790     first = new RNode();
     819    first = NULL;
    791820}
    792821
     
    798827    RNode* temp;
    799828    //Print("%p\n",first);
    800     while(first->getRule()) {
     829    while(first) {
    801830        temp    =   first;
    802831        first   =   first->getNext();
Note: See TracChangeset for help on using the changeset viewer.