Changeset 24ac666 in git for kernel/f5gb.cc


Ignore:
Timestamp:
Mar 16, 2009, 8:50:23 AM (15 years ago)
Author:
Christian Eder
Branches:
(u'spielwiese', '17f1d200f27c5bd38f5dfc6e8a0879242279d1d8')
Children:
a81e0b7a47bc8fc3194c348a4291cf22ceed6c27
Parents:
d738b47ee2746bdf05645beba5fff4b1ec35cbf3
Message:
criterion1() changed using ideals now, ExpVector tests


git-svn-id: file:///usr/local/Singular/svn/trunk@11559 2c84dea3-7e68-4137-9b89-c4e89433aadc
File:
1 edited

Legend:

Unmodified
Added
Removed
  • kernel/f5gb.cc

    rd738b47 r24ac666  
    22*  Computer Algebra System SINGULAR     *
    33****************************************/
    4 /* $Id: f5gb.cc,v 1.45 2009-03-13 10:36:19 ederc Exp $ */
     4/* $Id: f5gb.cc,v 1.46 2009-03-16 07:50:23 ederc Exp $ */
    55/*
    66* ABSTRACT: f5gb interface
     
    191191        pSetCoeff(lcm,nOne);
    192192        // computing factors u2 for new labels
    193         u1 = pDivide(lcm,t);
    194         pSetCoeff(u1,nOne);
    195         u2 = pDivide(lcm, pHead(temp->getPoly()));
    196         pSetCoeff(u2,nOne);
     193        pExpVectorDiff(u1,lcm,t);
     194        //pWrite(u1);
     195        //u1 = pDivide(lcm,t);
     196        //pWrite(u1);
     197        //pSetCoeff(u1,nOne);
     198        pExpVectorDiff(u2,lcm,temp->getPoly());
     199        //pWrite(u2);
     200        //u2 = pDivide(lcm, pHead(temp->getPoly()));
     201        //pWrite(u2);
     202        //pSetCoeff(u2,nOne);
    197203        //if(gPrev->getLast()->getIndex()==5) {
    198204            //Print("IN CRITPAIRS\n");
     
    204210        //}
    205211        // testing both new labels by the F5 Criterion
    206         if(!criterion1(gPrev,u1,newElement,lTag) && !criterion1(gPrev,u2,temp,lTag) &&
    207            !criterion2(u1, newElement, rules, rTag) && !criterion2(u2, temp, rules, rTag)) {
     212        if(!criterion2(u1, newElement, rules, rTag) && !criterion2(u2, temp, rules, rTag) &&
     213           !criterion1(gPrev,u1,newElement,lTag) && !criterion1(gPrev,u2,temp,lTag)) {
    208214            // if they pass the test, add them to CList critPairs, having the LPoly with greater
    209215            // label as first element in the CPair
     
    255261    // starts at the first element in gPrev with index = (index of l)-1, these tags are saved in lTag
    256262        int idx =   l->getIndex();
     263    int i;
    257264    if(idx == 1) {
    258265        return false;
     
    268275        //pWrite(ppMult_qq(t,l->getTerm()));
    269276        //Print("%d\n\n",l->getIndex());
     277        /*
    270278        while(testNode->getIndex() < idx) { // && NULL != testNode->getLPoly()) {
    271279            //pWrite(testNode->getPoly());
     
    277285            //pWrite(testNode->getNext()->getPoly());
    278286            testNode    =   testNode->getNext();
     287        }
     288        */
     289        ideal testId    =   idInit(idx-1,1);
     290        for(i=0;i<idx-1;i++) {
     291            testId->m[i]  =   pHead(testNode->getPoly());
     292            testNode        =   testNode->getNext();
     293        }
     294        poly temp   =   kNF(testId,currQuotient,u1);
     295        //pWrite(temp);
     296        for(i=0;i<IDELEMS(testId);i++) {
     297            testId->m[i]    =   NULL;
     298        }
     299        idDelete(&testId);
     300        if(NULL == temp) {
     301            return true;
    279302        }
    280303        return false;
     
    314337    RNode* testNode; // =   new RNode();
    315338     
    316     if(NULL == rTag->getFirst() ) {
    317         testNode    =   rules->getFirst();
     339    if(NULL == rTag->getFirst()->getRule()) {
     340        if(NULL != rules->getFirst()) {
     341            testNode    =   rules->getFirst();
     342        }
     343        else {
     344            return false;
     345        }
    318346    }
    319347    else {
     348
    320349        if(l->getIndex() > rTag->getFirst()->getRuleIndex()) {
    321350            testNode    =   rules->getFirst();
     
    338367        }
    339368    }
    340    
    341369    //testNode    =   rules->getFirst();
    342370        // save the monom t1*label_term(l) as it is tested various times in the following
     
    367395        //pWrite(u1);
    368396        //Print("%d\n",testNode->getRuleIndex());
    369         if(pLmDivisibleBy(testNode->getRuleTerm(),u1)) {
     397        if(pLmDivisibleByNoComp(testNode->getRuleTerm(),u1)) {
    370398            //Print("Criterion 2 NOT passed!\n");
    371399            pDelete(&u1);
     
    412440        while(NULL != testNode && testNode->getRule() != testedRule) {
    413441        //pWrite(testNode->getRuleTerm());
    414         if(pLmDivisibleBy(testNode->getRuleTerm(),u1)) {
     442        if(pLmDivisibleByNoComp(testNode->getRuleTerm(),u1)) {
    415443            //Print("Criterion 2 NOT passed!\n");
    416444            pDelete(&u1);
     
    772800        //pWrite(t);
    773801        //Print("HALLO\n");
    774         if(pLmDivisibleByNoComp(temp->getPoly(),t)) {
     802        if(pLmDivisibleByNoComp(pHead(temp->getPoly()),t)) {
    775803        //Print("HALLO\n");
    776804            // get all the information needed for the following tests
     
    852880    ideal idNew     =   kInterRed(id);
    853881    id              =   idNew;
    854     qsortDegree(&id->m[0],&id->m[IDELEMS(id)-1]);
     882    //qsortDegree(&id->m[0],&id->m[IDELEMS(id)-1]);
    855883    idShow(id);
    856884    LList* gPrev    =   new LList(ONE, i, id->m[0]);
     
    911939            if(i<IDELEMS(id)) {
    912940                ideal tempId    =   kInterRed(gbPrev);
    913                 idShow(tempId);
     941                //idShow(tempId);
    914942                sleep(5);
    915943                gbPrev          =   tempId;
    916                 qsortDegree(&gbPrev->m[0],&gbPrev->m[IDELEMS(gbPrev)-1]);
     944                //qsortDegree(&gbPrev->m[0],&gbPrev->m[IDELEMS(gbPrev)-1]);
    917945                delete gPrev;
    918946                //Print("RULES FIRST NOW1: %p\n",rules->getFirst());
Note: See TracChangeset for help on using the changeset viewer.