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

Diff for /OpenXM/src/kan96xx/Kan/ecart.c between version 1.8 and 1.9

version 1.8, 2003/08/19 08:02:09 version 1.9, 2003/08/20 01:39:17
Line 1 
Line 1 
 /* $OpenXM: OpenXM/src/kan96xx/Kan/ecart.c,v 1.7 2003/07/30 09:00:52 takayama Exp $ */  /* $OpenXM: OpenXM/src/kan96xx/Kan/ecart.c,v 1.8 2003/08/19 08:02:09 takayama Exp $ */
 #include <stdio.h>  #include <stdio.h>
 #include "datatype.h"  #include "datatype.h"
 #include "extern2.h"  #include "extern2.h"
Line 40  static POLY  ecartCheckSyz0(POLY cf,POLY r_0,POLY syz,
Line 40  static POLY  ecartCheckSyz0(POLY cf,POLY r_0,POLY syz,
 extern int DebugReductionRed;  extern int DebugReductionRed;
 extern int TraceLift;  extern int TraceLift;
 struct ring *TraceLift_ringmod;  struct ring *TraceLift_ringmod;
   extern DoCancel;
 int DebugReductionEcart = 0;  int DebugReductionEcart = 0;
   
 /* This is used for goHomogenization */  /* This is used for goHomogenization */
Line 252  POLY reduction_ecart(r,gset,needSyz,syzp)
Line 253  POLY reduction_ecart(r,gset,needSyz,syzp)
                 warningPoly("reduction_ecart: TraceLift_ringmod is not set.\n");                  warningPoly("reduction_ecart: TraceLift_ringmod is not set.\n");
                 return reduction_ecart1(r,gset,needSyz,syzp);                  return reduction_ecart1(r,gset,needSyz,syzp);
           }            }
           rn = reduction_ecart1_mod(r,gset);            rn = reduction_ecart1_mod(r,gset); /* BUG: syzygy is not obtained. */
           if (rn == POLYNULL) return rn;            if (rn == POLYNULL) return rn;
           else return reduction_ecart1(r,gset,needSyz,syzp);            else return reduction_ecart1(r,gset,needSyz,syzp);
         }else{          }else{
Line 399  static POLY reduction_ecart1(r,gset,needSyz,syzp)
Line 400  static POLY reduction_ecart1(r,gset,needSyz,syzp)
   POLY pp;    POLY pp;
   int ell;    int ell;
   int se;    int se;
     struct coeff *cont;
   
   extern struct ring *CurrentRingp;    extern struct ring *CurrentRingp;
   struct ring *rp;    struct ring *rp;
     extern struct ring *SmallRingp;
   
   gg = NULL;    gg = NULL;
   if (needSyz) {    if (needSyz) {
Line 435  static POLY reduction_ecart1(r,gset,needSyz,syzp)
Line 438  static POLY reduction_ecart1(r,gset,needSyz,syzp)
       if (ells.first) {        if (ells.first) {
         pp = ((gset->polys[ells.grade])->gh)[ells.gseti];          pp = ((gset->polys[ells.grade])->gh)[ells.gseti];
       }else{        }else{
         if (DebugReductionEcart & 4) printf("+");          if (DebugReductionEcart & 4) {printf("+"); fflush(NULL);}
         pp = (gg->pa)[ells.ggi];          pp = (gg->pa)[ells.ggi];
       }        }
       if (ell > 0) r = mpMult(cxx(1,0,ell,rp),r); /* r = s^ell r */        if (ell > 0) r = mpMult(cxx(1,0,ell,rp),r); /* r = s^ell r */
Line 466  static POLY reduction_ecart1(r,gset,needSyz,syzp)
Line 469  static POLY reduction_ecart1(r,gset,needSyz,syzp)
   }    }
   
   r = goDeHomogenizeS(r);    r = goDeHomogenizeS(r);
     if (DoCancel && (r != POLYNULL)) { /* BUG: syzygy should be corrected. */
           if (r->m->ringp->p == 0) {
             if (coeffSizeMin(r) >= DoCancel) {
                   r = reduceContentOfPoly(r,&cont);
           if (DebugReductionEcart || DebugReductionRed) printf("cont=%d ",coeffToString(cont));
             }
           }
     }
   
   return(r);    return(r);
 }  }
Line 598  static POLY reduction_ecart1_mod(r,gset)
Line 609  static POLY reduction_ecart1_mod(r,gset)
       if (ells.first) {        if (ells.first) {
         pp = ((gset->polys[ells.grade])->gmod)[ells.gseti];          pp = ((gset->polys[ells.grade])->gmod)[ells.gseti];
       }else{        }else{
         if (DebugReductionEcart & 4) printf("+");          if (DebugReductionEcart & 4) {printf("+"); fflush(NULL);}
         pp = (gg->pa)[ells.ggi];          pp = (gg->pa)[ells.ggi];
       }        }
       if (ell > 0) r = mpMult(cxx(1,0,ell,rp),r); /* r = s^ell r */        if (ell > 0) r = mpMult(cxx(1,0,ell,rp),r); /* r = s^ell r */

Legend:
Removed from v.1.8  
changed lines
  Added in v.1.9

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