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

Diff for /OpenXM/src/kan96xx/Kan/red.c between version 1.2 and 1.3

version 1.2, 2000/01/16 07:55:41 version 1.3, 2000/02/24 00:27:12
Line 1 
Line 1 
 /* $OpenXM$ */  /* $OpenXM: OpenXM/src/kan96xx/Kan/red.c,v 1.2 2000/01/16 07:55:41 takayama Exp $ */
 #include <stdio.h>  #include <stdio.h>
 #include "datatype.h"  #include "datatype.h"
 #include "extern2.h"  #include "extern2.h"
Line 613  void initSyzRingp() {
Line 613  void initSyzRingp() {
   SyzRingp->name = ringName;    SyzRingp->name = ringName;
 }  }
   
   POLY reductionCdr_except_grd_i(POLY f,struct gradedPolySet *gset,
                                  int needSyz,struct syz0 *syzp,
                                  int skipGrd,int skipi, int *reducedp)
   {
     int reduced,reduced1,reduced2;
     int grd;
     struct polySet *set;
     POLY cf,syz;
     int i;
     POLY cc,cg;
     POLY fs;
   
     extern struct ring *CurrentRingp;
     struct ring *rp;
   
     *reducedp = 0;
     if (needSyz) {
       if (f ISZERO) { rp = CurrentRingp; } else {rp = f->m->ringp; }
       cf = cxx(1,0,0,rp);
       syz = ZERO;
     }
   
     reduced = 0; /* no */
     do {
       reduced1 = 0; /* no */
       grd = 0;
       while (grd < gset->maxGrade) {
         /*
            if (!Sugar) {
               if (grd > (*grade)(f)) break;
            }
         */
         set = gset->polys[grd];
         do {
           reduced2 = 0; /* no */
           for (i=0; i<set->size; i++) {
             if (f ISZERO) goto ss;
             if ((!((grd == skipGrd) && (i == skipi))) && (set->del[i]==0)) {
                                             /*  Do not use deleted element.*/
               if ((fs =(*isCdrReducible)(f,set->g[i])) != ZERO) {
                 f = (*reduction1Cdr)(f,fs,set->g[i],needSyz,&cc,&cg);
                 /* What is cg? */
                 if (needSyz) {
                   cf = ppMult(cc,cf);
                   syz = cpMult(toSyzCoeff(cc),syz);
                   syz = ppAddv(syz,toSyzPoly(cg,grd,i));
                 }
                 *reducedp = reduced = reduced1 = reduced2 = 1; /* yes */
               }
             }
           }
         } while (reduced2 != 0);
         grd++;
       }
     }while (reduced1 != 0);
   
     ss: ;
     if (needSyz) {
       syzp->cf = cf;
       syzp->syz = syz;
     }
     return(f);
   }

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

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