[BACK]Return to gb.c CVS log [TXT][DIR] Up to [local] / OpenXM / src / kan96xx / Kan

Diff for /OpenXM/src/kan96xx/Kan/gb.c between version 1.3 and 1.4

version 1.3, 2000/02/24 00:27:12 version 1.4, 2000/03/15 01:31:17
Line 1 
Line 1 
 /* $OpenXM: OpenXM/src/kan96xx/Kan/gb.c,v 1.2 2000/01/16 07:55:38 takayama Exp $ */  /* $OpenXM: OpenXM/src/kan96xx/Kan/gb.c,v 1.3 2000/02/24 00:27:12 takayama Exp $ */
 #include <stdio.h>  #include <stdio.h>
 #include "datatype.h"  #include "datatype.h"
 #include "extern2.h"  #include "extern2.h"
Line 281  int forceReduction;
Line 281  int forceReduction;
   
     if (!(rd ISZERO)) {      if (!(rd ISZERO)) {
       if (needBack || needSyz) {        if (needBack || needSyz) {
         syzp = newSyz0();                  syzp = newSyz0();
         syzp->cf = syzCf; /* no meaning */                  syzp->cf = syzCf; /* no meaning */
         syzp->syz = ppAdd(toSyzPoly(h.a,ig,ii),toSyzPoly(h.b,jg,ji));                  syzp->syz = ppAdd(toSyzPoly(h.a,ig,ii),toSyzPoly(h.b,jg,ji));
         syzp->syz = cpMult(toSyzCoeff(syzCf),syzp->syz);                  syzp->syz = cpMult(toSyzCoeff(syzCf),syzp->syz);
         syzp->syz = ppAdd(syzp->syz,syzPoly);                  syzp->syz = ppAdd(syzp->syz,syzPoly);
       }        }
   
       if (ReduceLowerTerms && !(Sugar)) {        if (ReduceLowerTerms && !(Sugar)) {
         rd = (*reductionCdr)(rd,g,needBack,&syz);                  rd = (*reductionCdr)(rd,g,needBack,&syz);
         if (needBack || needSyz) {                  if (needBack || needSyz) {
           /* syzp->cf = ppMult(syz.cf,syzp->cf); no meaning */                    /* syzp->cf = ppMult(syz.cf,syzp->cf); no meaning */
           syzp->syz = ppAdd(syz.syz,                    syzp->syz = ppAdd(syz.syz,
                             cpMult(toSyzCoeff(syz.cf),syzp->syz));                                                          cpMult(toSyzCoeff(syz.cf),syzp->syz));
         }                  }
       }        }
   
       if(Sugar && (!forceReduction)){grade=top->grade;}else{grade=-1;}whereInG(g,rd,&grade,&indx,Sugar);        if(Sugar && (!forceReduction)){grade=top->grade;}else{grade=-1;}whereInG(g,rd,&grade,&indx,Sugar);
       if (KanGBmessage == 2) {        if (KanGBmessage == 2) {
         printf("(gr,indx)=(%d,%d).\n",grade,indx);                  printf("(gr,indx)=(%d,%d).\n",grade,indx);
         /*                  /*
         printf("sp(%s,%s)-->%s\n",POLYToString(gi,' ',1),                    printf("sp(%s,%s)-->%s\n",POLYToString(gi,' ',1),
                                   POLYToString(gj,' ',1),                    POLYToString(gj,' ',1),
                                   POLYToString(rd,' ',1));                    POLYToString(rd,' ',1));
         */                    */
       }        }
   
       d = updatePairs(d,rd,grade,indx,g);        d = updatePairs(d,rd,grade,indx,g);
Line 312  int forceReduction;
Line 312  int forceReduction;
       if (Sugar) { markRedundant0(g,grade,indx);}        if (Sugar) { markRedundant0(g,grade,indx);}
       else {markRedundant(g,rd,grade,indx,Sugar);}        else {markRedundant(g,rd,grade,indx,Sugar);}
   
       if (KanGBmessage && (StopDegree < pgrade)) {  
         printf("Computation of the Groebner basis is suspended bacause of StopDegree < computing grade.\n");  
         printf("Note that the result is NOT groebner basis.\n");  
         break;  
       }  
       if (countDown) {        if (countDown) {
         if (eliminated(rd) == 1) {                  if (eliminated(rd) == 1) {
           --countDown;                    --countDown;
           printf("x"); fflush(stdout);                    printf("x"); fflush(stdout);
           if (countDown == 0) {                    if (countDown == 0) {
             printf("\nThe computation of the Groebner basis is suspended because of countDown==0.\n");                          printf("\nThe computation of the Groebner basis is suspended because of countDown==0.\n");
             printf("Note that the result is NOT groebner basis.\n");                          printf("Note that the result is NOT groebner basis.\n");
             break;                          break;
           }                    }
         }                  }
       }        }
       if (Debug) {        if (Debug) {
         outputGradedPairs(d); outputGradedPolySet(g,needSyz);                  outputGradedPairs(d); outputGradedPolySet(g,needSyz);
       }        }
     }else{      }else{
       if (needSyz) {        if (needSyz) {
         top->syz = ppAdd(toSyzPoly(h.a,ig,ii),toSyzPoly(h.b,jg,ji));                  top->syz = ppAdd(toSyzPoly(h.a,ig,ii),toSyzPoly(h.b,jg,ji));
         top->syz = cpMult(toSyzCoeff(syzCf),top->syz);                  top->syz = cpMult(toSyzCoeff(syzCf),top->syz);
         top->syz = ppAdd(top->syz,syzPoly);                  top->syz = ppAdd(top->syz,syzPoly);
         listP->next = top; top->prev = listP; listP = listP->next;                  listP->next = top; top->prev = listP; listP = listP->next;
       }        }
     }      }
           if (StopDegree < pgrade) {
             fprintf(stderr,"Obtained a partial GB (StopDegree=%d)\n",StopDegree);
             if (KanGBmessage) {
                   printf("Computation of the Groebner basis is suspended bacause of StopDegree < computing grade.\n");
                   printf("Note that the result is NOT groebner basis.\n");
             }
             break;
           }
   }    }
   
   if (KanGBmessage == 2) {    if (KanGBmessage == 2) {

Legend:
Removed from v.1.3  
changed lines
  Added in v.1.4

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>