[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.17 and 1.18

version 1.17, 2003/09/10 07:41:25 version 1.18, 2003/09/12 02:52:50
Line 1 
Line 1 
 /* $OpenXM: OpenXM/src/kan96xx/Kan/ecart.c,v 1.16 2003/08/27 03:11:12 takayama Exp $ */  /* $OpenXM: OpenXM/src/kan96xx/Kan/ecart.c,v 1.17 2003/09/10 07:41:25 takayama Exp $ */
 #include <stdio.h>  #include <stdio.h>
 #include "datatype.h"  #include "datatype.h"
 #include "extern2.h"  #include "extern2.h"
Line 208  static struct ecartReducer ecartFindReducer(POLY r,str
Line 208  static struct ecartReducer ecartFindReducer(POLY r,str
     }      }
   }    }
   
   if (DebugReductionRed || (DebugReductionEcart&1)) {    if ((DebugReductionRed&1) || (DebugReductionEcart&1)) {
     printf("ecartFindReducer(): ell1=%d, ell2=%d, minGrade=%d, minGseti=%d, minGgi=%d\n",ell1,ell2,minGrade,minGseti,minGgi);      printf("ecartFindReducer(): ell1=%d, ell2=%d, minGrade=%d, minGseti=%d, minGgi=%d\n",ell1,ell2,minGrade,minGseti,minGgi);
   }    }
   if (ell1 <= ell2) {    if (ell1 <= ell2) {
Line 366  static POLY reduction_ecart0(r,gset,needSyz,syzp)
Line 366  static POLY reduction_ecart0(r,gset,needSyz,syzp)
   
   if (DebugReductionEcart&1) printf("--------------------------------------\n");    if (DebugReductionEcart&1) printf("--------------------------------------\n");
   do {    do {
     if (DebugReductionRed) printf("r=%s\n",POLYToString(r,'*',1));      if (DebugReductionRed&1) printf("r=%s\n",POLYToString(r,'*',1));
     if (DebugReductionEcart & 1) printf("r=%s+...\n",POLYToString(head(r),'*',1));      if (DebugReductionEcart & 1) printf("r=%s+...\n",POLYToString(head(r),'*',1));
     ells = ecartFindReducer(r,gset,gg);      ells = ecartFindReducer(r,gset,gg);
     ell = ells.ell;      ell = ells.ell;
Line 413  static POLY reduction_ecart0(r,gset,needSyz,syzp)
Line 413  static POLY reduction_ecart0(r,gset,needSyz,syzp)
           syz = ppAdd(syz,cpMult(toSyzCoeff(cg),syz_o));            syz = ppAdd(syz,cpMult(toSyzCoeff(cg),syz_o));
           /* Note. 2003.07.19 */            /* Note. 2003.07.19 */
         }          }
         if (DebugReductionRed) {          if (DebugReductionRed && needSyz) {
           POLY tp;            POLY tp;
           tp = ecartCheckSyz0(cf,r_0,syz,gset,r);            tp = ecartCheckSyz0(cf,r_0,syz,gset,r);
           if (tp != POLYNULL) {            if (tp != POLYNULL) {
Line 482  static POLY reduction_ecart1(r,gset,needSyz,syzp)
Line 482  static POLY reduction_ecart1(r,gset,needSyz,syzp)
   POLY cf_o;    POLY cf_o;
   POLY syz_o;    POLY syz_o;
   POLY r_0;    POLY r_0;
     POLY r0;
   int se;    int se;
   struct coeff *cont;    struct coeff *cont;
   
Line 510  static POLY reduction_ecart1(r,gset,needSyz,syzp)
Line 511  static POLY reduction_ecart1(r,gset,needSyz,syzp)
   
   if (DebugReductionEcart&1) printf("=======================================\n");    if (DebugReductionEcart&1) printf("=======================================\n");
   do {    do {
     if (DebugReductionRed) printf("(ecart1(d)) r=%s\n",POLYToString(r,'*',1));      if (DebugReductionRed & 1) printf("(ecart1(d)) r=%s\n",POLYToString(r,'*',1));
     if (DebugReductionEcart & 1) printf("r=%s+,,,\n",POLYToString(head(r),'*',1));      if (DebugReductionEcart & 1) printf("r=%s+,,,\n",POLYToString(head(r),'*',1));
   
     ells = ecartFindReducer(r,gset,gg);      ells = ecartFindReducer(r,gset,gg);
Line 531  static POLY reduction_ecart1(r,gset,needSyz,syzp)
Line 532  static POLY reduction_ecart1(r,gset,needSyz,syzp)
         pp = (gg->pa)[ells.ggi];          pp = (gg->pa)[ells.ggi];
       }        }
       if (ell > 0) r = ppMult(cxx(1,0,ell,rp),r); /* r = s^ell r */        if (ell > 0) r = ppMult(cxx(1,0,ell,rp),r); /* r = s^ell r */
             r0 = r;
       r = (*reduction1)(r,pp,needSyz,&cc,&cg);        r = (*reduction1)(r,pp,needSyz,&cc,&cg);
         if (DebugReductionEcart & 8) {
           if (ell > 0) {printf("ell+ "); fflush(NULL);
           }else {
                     printf("ell0 "); fflush(NULL);
             if ((*mmLarger)(r,r0) >= 1) {
               printf("error in reduction.");
               printf("   r0=%s\n",POLYToString(r0,'*',1));
               printf("==>r=%s\n",POLYToString(r,'*',1));
               getchar(); getchar();
             }
           }
         }
   
       if (DoCancel && (r != POLYNULL)) {        if (DoCancel && (r != POLYNULL)) {
         if (shouldReduceContent(r,0)) {          if (shouldReduceContent(r,0)) {
Line 559  static POLY reduction_ecart1(r,gset,needSyz,syzp)
Line 573  static POLY reduction_ecart1(r,gset,needSyz,syzp)
         }          }
       }        }
   
       if (DebugReductionRed) {        if (DebugReductionRed && needSyz) {
         POLY tp;          POLY tp;
         tp = ecartCheckSyz0(cf,r_0,syz,gset,r);          tp = ecartCheckSyz0(cf,r_0,syz,gset,r);
         tp = goDeHomogenizeS(tp);          tp = goDeHomogenizeS(tp);
Line 690  static struct ecartReducer ecartFindReducer_mod(POLY r
Line 704  static struct ecartReducer ecartFindReducer_mod(POLY r
     }      }
   }    }
   
   if (DebugReductionRed || (DebugReductionEcart&1)) {    if ((DebugReductionRed & 1)|| (DebugReductionEcart&1)) {
     printf("ecartFindReducer_mod(): ell1=%d, ell2=%d, minGrade=%d, minGseti=%d, minGgi=%d, p=%d\n",ell1,ell2,minGrade,minGseti,minGgi,TraceLift_ringmod->p);      printf("ecartFindReducer_mod(): ell1=%d, ell2=%d, minGrade=%d, minGseti=%d, minGgi=%d, p=%d\n",ell1,ell2,minGrade,minGseti,minGgi,TraceLift_ringmod->p);
   }    }
   if (ell1 <= ell2) {    if (ell1 <= ell2) {
Line 724  static POLY reduction_ecart1_mod(r,gset)
Line 738  static POLY reduction_ecart1_mod(r,gset)
   struct ecartReducer ells;    struct ecartReducer ells;
   struct ecartPolyArray *gg;    struct ecartPolyArray *gg;
   POLY pp;    POLY pp;
     POLY r0;
   int ell;    int ell;
   int se;    int se;
   
Line 751  static POLY reduction_ecart1_mod(r,gset)
Line 766  static POLY reduction_ecart1_mod(r,gset)
   
   if (DebugReductionEcart&1) printf("=====================================mod\n");    if (DebugReductionEcart&1) printf("=====================================mod\n");
   do {    do {
     if (DebugReductionRed) printf("(ecart1_mod(d)) r=%s\n",POLYToString(r,'*',1));      if (DebugReductionRed & 1) printf("(ecart1_mod(d)) r=%s\n",POLYToString(r,'*',1));
     if (DebugReductionEcart & 1) printf("r=%s+,,,\n",POLYToString(head(r),'*',1));      if (DebugReductionEcart & 1) printf("r=%s+,,,\n",POLYToString(head(r),'*',1));
   
     ells = ecartFindReducer_mod(r,gset,gg);      ells = ecartFindReducer_mod(r,gset,gg);
Line 768  static POLY reduction_ecart1_mod(r,gset)
Line 783  static POLY reduction_ecart1_mod(r,gset)
         pp = (gg->pa)[ells.ggi];          pp = (gg->pa)[ells.ggi];
       }        }
       if (ell > 0) r = ppMult(cxx(1,0,ell,rp),r); /* r = s^ell r */        if (ell > 0) r = ppMult(cxx(1,0,ell,rp),r); /* r = s^ell r */
   
             r0 = r;
       r = (*reduction1)(r,pp,0,&cc,&cg);        r = (*reduction1)(r,pp,0,&cc,&cg);
   
         if (DebugReductionEcart & 8) {
           if (ell > 0) {printf("ell+ "); fflush(NULL);
           }else {
                     printf("ell0 "); fflush(NULL);
             if ((*mmLarger)(r,r0) >= 1) {
               printf("error in reduction.");
               printf("   r0=%s\n",POLYToString(r0,'*',1));
               printf("==>r=%s\n",POLYToString(r,'*',1));
               getchar(); getchar();
             }
           }
         }
   
       if (r ISZERO) goto ss1;        if (r ISZERO) goto ss1;
       r = ecartDivideSv(r,&se); /* r = r/s^? */        r = ecartDivideSv(r,&se); /* r = r/s^? */
     }      }

Legend:
Removed from v.1.17  
changed lines
  Added in v.1.18

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