Changeset 787685 in git for kernel/f5lists.cc


Ignore:
Timestamp:
May 14, 2009, 10:47:01 AM (14 years ago)
Author:
Christian Eder
Branches:
(u'jengelh-datetime', 'ceac47cbc86fe4a15902392bdbb9bd2ae0ea02c6')(u'spielwiese', 'f875bbaccd0831e36aaed09ff6adeb3eb45aeb94')
Children:
cef7eedebae73877347e466c8c9eea48e5da8b11
Parents:
21cb46b885ab1b05f213bba73b625f4c6a4ad9e8
Message:
insertion of rules ordered by their monomials, bit slower than without sorting


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

Legend:

Unmodified
Added
Removed
  • kernel/f5lists.cc

    r21cb46 r787685  
    880880    newElement->next    =   this;
    881881    return newElement;
    882    
    883     /*
    884      * not useful, as it does not only adds new rules to be tested but also
    885      * deletes rules to be tested if a rule is set to another place in the line
    886      *
    887     if(NULL == this || this->getRuleIndex() < newElement->getRuleIndex()) {
    888         newElement->next    =   this;
     882}
     883
     884
     885RNode* RNode::insertOrdered(Rule* r) {
     886    RNode* newElement   =   new RNode(r);
     887    RNode* temp         =   this;
     888    if(NULL == temp) {
     889        newElement->next =   temp;
     890        return newElement;
     891    }
     892    if(1 == pLmCmp(newElement->getRuleTerm(),temp->getRuleTerm())) {
     893        newElement->next =   temp;
     894        return newElement;
    889895    }
    890896    else {
    891         if(pDeg(newElement->getRuleTerm()) > pDeg(this->getRuleTerm())) {
    892                 newElement->next    =   this;
    893         }
    894         if(-1 == pLmCmp(newElement->getRuleTerm(),this->getRuleTerm())) {
    895             Print("HAHI\n");
    896             Print("%ld\n",pDeg(newElement->getRuleTerm()));
    897             Print("%ld\n",pDeg(this->getRuleTerm()));
    898            
    899             pWrite(newElement->getRuleTerm());
    900             pWrite(this->getRuleTerm());
    901             RNode* temp    =   this;
    902             while(NULL != temp->next && pDeg(newElement->getRuleTerm()) <= pDeg(temp->next->getRuleTerm())
    903                     && -1 == pLmCmp(newElement->getRuleTerm(),temp->next->getRuleTerm())) {
    904                 temp    =   temp->next;
    905             }
    906             newElement->next    =   temp->next;
    907             temp->next          =   newElement;
    908             return this;
    909         }
    910         else {
    911             newElement->next    =   this;
    912             return newElement;
    913         }
    914     }
    915     return newElement;
    916     */
    917 }
     897        while(NULL != temp && 1 ==  pLmCmp(temp->getRuleTerm(),newElement->getRuleTerm())) {
     898            temp    =   temp->getNext();
     899            Print("HIER\n");
     900        }
     901        newElement->next =   temp;
     902        return this;
     903    }
     904}
     905
    918906
    919907RNode* RNode::getNext() {
     
    981969}
    982970
     971void RList::insertOrdered(Rule* r) {
     972    first   =   first->insertOrdered(r);
     973}
     974
    983975RNode* RList::getFirst() {
    984976    return first;
Note: See TracChangeset for help on using the changeset viewer.