[BACK]Return to gr.c CVS log [TXT][DIR] Up to [local] / OpenXM_contrib2 / asir2000 / builtin

Diff for /OpenXM_contrib2/asir2000/builtin/gr.c between version 1.44 and 1.50

version 1.44, 2002/12/27 07:37:57 version 1.50, 2003/07/01 08:12:38
Line 45 
Line 45 
  * DEVELOPER SHALL HAVE NO LIABILITY IN CONNECTION WITH THE USE,   * DEVELOPER SHALL HAVE NO LIABILITY IN CONNECTION WITH THE USE,
  * PERFORMANCE OR NON-PERFORMANCE OF THE SOFTWARE.   * PERFORMANCE OR NON-PERFORMANCE OF THE SOFTWARE.
  *   *
  * $OpenXM: OpenXM_contrib2/asir2000/builtin/gr.c,v 1.43 2002/07/18 02:23:53 noro Exp $   * $OpenXM: OpenXM_contrib2/asir2000/builtin/gr.c,v 1.49 2003/06/21 02:09:15 noro Exp $
 */  */
 #include "ca.h"  #include "ca.h"
 #include "parse.h"  #include "parse.h"
Line 89  static VL VC;
Line 89  static VL VC;
   
 int PCoeffs;  int PCoeffs;
 int DP_Print = 0;  int DP_Print = 0;
   int DP_PrintShort = 0;
 int DP_Multiple = 0;  int DP_Multiple = 0;
 int DP_NFStat = 0;  int DP_NFStat = 0;
 LIST Dist = 0;  LIST Dist = 0;
Line 101  static int NoCriB = 0;
Line 102  static int NoCriB = 0;
 static int NoGC = 0;  static int NoGC = 0;
 static int NoMC = 0;  static int NoMC = 0;
 static int NoRA = 0;  static int NoRA = 0;
 static int DP_PrintShort = 0;  
 static int ShowMag = 0;  static int ShowMag = 0;
 static int Stat = 0;  static int Stat = 0;
 static int Denominator = 1;  static int Denominator = 1;
Line 619  NODE gb_f4_mod(NODE f,int m)
Line 619  NODE gb_f4_mod(NODE f,int m)
         int *indred,*isred;          int *indred,*isred;
         CDP ri;          CDP ri;
         int pscalen;          int pscalen;
         struct oEGT tmp0,tmp1,eg_split_symb,eg_split_elim1,eg_split_elim2;          struct oEGT tmp0,tmp1,eg_split_symb,eg_split_conv,eg_split_elim1,eg_split_elim2;
         extern struct oEGT eg_symb,eg_elim1,eg_elim2;          extern struct oEGT eg_symb,eg_conv,eg_elim1,eg_elim2;
   
         /* initialize coeffcient array list of ps[] */          /* initialize coeffcient array list of ps[] */
         pscalen = pslen;          pscalen = pslen;
         psca = (unsigned int **)MALLOC(pscalen*sizeof(unsigned int *));          psca = (unsigned int **)MALLOC(pscalen*sizeof(unsigned int *));
   
         init_eg(&eg_symb); init_eg(&eg_elim1); init_eg(&eg_elim2);          init_eg(&eg_symb); init_eg(&eg_conv); init_eg(&eg_elim1); init_eg(&eg_elim2);
         for ( gall = g = 0, d = 0, r = f; r; r = NEXT(r) ) {          for ( gall = g = 0, d = 0, r = f; r; r = NEXT(r) ) {
                 i = (int)BDY(r);                  i = (int)BDY(r);
                 d = updpairs(d,g,i);                  d = updpairs(d,g,i);
Line 668  NODE gb_f4_mod(NODE f,int m)
Line 668  NODE gb_f4_mod(NODE f,int m)
                                 bt1 = mknode(2,BDY(sd)->dl,BDY(r));                                  bt1 = mknode(2,BDY(sd)->dl,BDY(r));
                                 MKNODE(bt,bt1,blist); blist = bt;                                  MKNODE(bt,bt1,blist); blist = bt;
                                 symb_merge(s,dt,nv);                                  symb_merge(s,dt,nv);
 /*                              fprintf(stderr,"%d-",length(s)); */  /*                              fprintf(stderr,"%d-",length(s0));  */
                                 nred++;                                  nred++;
                         }                          }
                 }                  }
 /*              fprintf(stderr,"\n"); */  /*              fprintf(stderr,"\n"); */
                   get_eg(&tmp1); add_eg(&eg_symb,&tmp0,&tmp1);
                   init_eg(&eg_split_symb); add_eg(&eg_split_symb,&tmp0,&tmp1);
   
                 if ( DP_Print )                  if ( DP_Print )
                         fprintf(asir_out,"number of reducers : %d\n",nred);                          fprintf(asir_out,"number of reducers : %d\n",nred);
   
                   get_eg(&tmp0);
                 /* the first nred polys in blist are reducers */                  /* the first nred polys in blist are reducers */
                 /* row = the number of all the polys */                  /* row = the number of all the polys */
                 for ( r = blist, row = 0; r; r = NEXT(r), row++ );                  for ( r = blist, row = 0; r; r = NEXT(r), row++ );
Line 714  NODE gb_f4_mod(NODE f,int m)
Line 718  NODE gb_f4_mod(NODE f,int m)
                 for ( j = 0, k = 0; j < col; j++ )                  for ( j = 0, k = 0; j < col; j++ )
                         if ( !isred[j] )                          if ( !isred[j] )
                                 st[k++] = at[j];                                  st[k++] = at[j];
                 get_eg(&tmp1); add_eg(&eg_symb,&tmp0,&tmp1);                  get_eg(&tmp1); add_eg(&eg_conv,&tmp0,&tmp1);
                 init_eg(&eg_split_symb); add_eg(&eg_split_symb,&tmp0,&tmp1);                  init_eg(&eg_split_conv); add_eg(&eg_split_conv,&tmp0,&tmp1);
   
                 get_eg(&tmp1);                  get_eg(&tmp1);
                 /* spoly matrix; stored in reduced form; terms in ht[] are omitted */                  /* spoly matrix; stored in reduced form; terms in ht[] are omitted */
Line 772  NODE gb_f4_mod(NODE f,int m)
Line 776  NODE gb_f4_mod(NODE f,int m)
                 if ( DP_Print ) {                  if ( DP_Print ) {
                         fprintf(asir_out,"done rank = %d\n",rank,row,col);                          fprintf(asir_out,"done rank = %d\n",rank,row,col);
                         print_eg("Symb",&eg_split_symb);                          print_eg("Symb",&eg_split_symb);
                           print_eg("Conv",&eg_split_conv);
                         print_eg("Elim1",&eg_split_elim1);                          print_eg("Elim1",&eg_split_elim1);
                         print_eg("Elim2",&eg_split_elim2);                          print_eg("Elim2",&eg_split_elim2);
                         fprintf(asir_out,"\n");                          fprintf(asir_out,"\n");
Line 814  NODE gb_f4_mod(NODE f,int m)
Line 819  NODE gb_f4_mod(NODE f,int m)
         }          }
         if ( DP_Print ) {          if ( DP_Print ) {
                 print_eg("Symb",&eg_symb);                  print_eg("Symb",&eg_symb);
                   print_eg("Conv",&eg_conv);
                 print_eg("Elim1",&eg_elim1);                  print_eg("Elim1",&eg_elim1);
                 print_eg("Elim2",&eg_elim2);                  print_eg("Elim2",&eg_elim2);
                 fflush(asir_out);                  fflush(asir_out);
Line 1159  void prim_part(DP f,int m,DP *r)
Line 1165  void prim_part(DP f,int m,DP *r)
                 if ( PCoeffs )                  if ( PCoeffs )
                         dp_prim_mod(f,m,r);                          dp_prim_mod(f,m,r);
                 else                  else
                         *r = f;                          _dp_monic(f,m,r);
         } else {          } else {
                 if ( dp_fcoeffs || PCoeffs )                  if ( dp_fcoeffs || PCoeffs )
                         dp_prim(f,r);                          dp_prim(f,r);
Line 1602  NODE gb(NODE f,int m,NODE subst)
Line 1608  NODE gb(NODE f,int m,NODE subst)
                                 _dp_nf(gall,h,ps,!Top,&nf);                                  _dp_nf(gall,h,ps,!Top,&nf);
                         else                          else
                                 _dp_nf_z(gall,h,ps,!Top,DP_Multiple,&nf);                                  _dp_nf_z(gall,h,ps,!Top,DP_Multiple,&nf);
                         if ( DP_Print )                          if ( DP_Print && nf )
                                 fprintf(asir_out,"(%.3g)",get_rtime()-t_0);                                  fprintf(asir_out,"(%.3g)",get_rtime()-t_0);
                         get_eg(&tnf1); add_eg(&eg_nf,&tnf0,&tnf1);                          get_eg(&tnf1); add_eg(&eg_nf,&tnf0,&tnf1);
                 } else                  } else
Line 2195  void dp_load(int index,DP *p)
Line 2201  void dp_load(int index,DP *p)
                 sprintf(path,"%s%c%d",Demand,DELIM,index);                  sprintf(path,"%s%c%d",Demand,DELIM,index);
                 if ( !(fp = fopen(path,"rb") ) )                  if ( !(fp = fopen(path,"rb") ) )
                         error("dp_load : cannot open a file");                          error("dp_load : cannot open a file");
                 skipvl(fp); loadobj(fp,(Obj *)p); fclose(fp);                  if ( PCoeffs )
                           loadvl(fp);
                   else
                           skipvl(fp);
                   loadobj(fp,(Obj *)p); fclose(fp);
         }          }
 }  }
   
Line 2208  int dp_load_t(int index,DP *p)
Line 2218  int dp_load_t(int index,DP *p)
         if ( !(fp = fopen(path,"rb") ) )          if ( !(fp = fopen(path,"rb") ) )
                 return 0;                  return 0;
         else {          else {
                 skipvl(fp); loadobj(fp,(Obj *)p); fclose(fp); return 1;                  if ( PCoeffs )
                           loadvl(fp);
                   else
                           skipvl(fp);
                   loadobj(fp,(Obj *)p); fclose(fp); return 1;
         }          }
 }  }
   

Legend:
Removed from v.1.44  
changed lines
  Added in v.1.50

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