[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.42 and 1.47

version 1.42, 2002/07/17 09:45:49 version 1.47, 2003/05/30 06:03:28
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.41 2002/01/28 00:54:41 noro Exp $   * $OpenXM: OpenXM_contrib2/asir2000/builtin/gr.c,v 1.46 2003/04/21 02:49:40 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 663  NODE gb_f4_mod(NODE f,int m)
Line 663  NODE gb_f4_mod(NODE f,int m)
                                 dltod(BDY(s),nv,&tdp);                                  dltod(BDY(s),nv,&tdp);
                                 dp_subd(tdp,ps[(int)BDY(r)],&sd);                                  dp_subd(tdp,ps[(int)BDY(r)],&sd);
                                 dt = mul_dllist(BDY(sd)->dl,ps[(int)BDY(r)]);                                  dt = mul_dllist(BDY(sd)->dl,ps[(int)BDY(r)]);
 /*                              fprintf(stderr,"[%d]",length(dt)); */                                  fprintf(stderr,"[%d]",length(dt));
                                 /* list of [t,f] */                                  /* list of [t,f] */
                                 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++;
                         }                          }
                 }                  }
Line 1161  void prim_part(DP f,int m,DP *r)
Line 1161  void prim_part(DP f,int m,DP *r)
                 else                  else
                         *r = f;                          *r = f;
         } else {          } else {
                 if ( dp_fcoeffs )                  if ( dp_fcoeffs || PCoeffs )
                         *r = f;  
                 else if ( PCoeffs )  
                         dp_prim(f,r);                          dp_prim(f,r);
                 else                  else
                         dp_ptozp(f,r);                          dp_ptozp(f,r);
Line 2067  void dp_set_flag(Obj name,Obj value)
Line 2065  void dp_set_flag(Obj name,Obj value)
 {  {
         char *n;          char *n;
         int v;          int v;
           Q ratio;
   
         if ( OID(name) != O_STR )          if ( OID(name) != O_STR )
                 return;                  return;
Line 2077  void dp_set_flag(Obj name,Obj value)
Line 2076  void dp_set_flag(Obj name,Obj value)
         if ( !strcmp(n,"Dist") ) {          if ( !strcmp(n,"Dist") ) {
                 Dist = (LIST)value; return;                  Dist = (LIST)value; return;
         }          }
           if ( !strcmp(n,"Content") ) {
                   ratio = (Q)value;
                   if ( ratio ) {
                           DP_Multiple = BD(NM(ratio))[0];
                           Denominator = INT(ratio) ? 1 : BD(DN(ratio))[0];
                   } else {
                           DP_Multiple = 0;
                           Denominator = 1;
                   }
           }
         if ( value && OID(value) != O_N )          if ( value && OID(value) != O_N )
                 return;                  return;
         v = QTOS((Q)value);          v = QTOS((Q)value);
Line 2120  void dp_set_flag(Obj name,Obj value)
Line 2129  void dp_set_flag(Obj name,Obj value)
   
 void dp_make_flaglist(LIST *list)  void dp_make_flaglist(LIST *list)
 {  {
         Q v;          Q v,nm,dn;
         STRING name,path;          STRING name,path;
         NODE n,n1;          NODE n,n1;
   
   #if 0
         STOQ(DP_Multiple,v); MKNODE(n,v,0); MKSTR(name,"DP_Multiple"); MKNODE(n1,name,n); n = n1;          STOQ(DP_Multiple,v); MKNODE(n,v,0); MKSTR(name,"DP_Multiple"); MKNODE(n1,name,n); n = n1;
         STOQ(Denominator,v); MKNODE(n1,v,n); n = n1; MKSTR(name,"Denominator"); MKNODE(n1,name,n); n = n1;          STOQ(Denominator,v); MKNODE(n1,v,n); n = n1; MKSTR(name,"Denominator"); MKNODE(n1,name,n); n = n1;
   #else
           if ( DP_Multiple ) {
                   STOQ(DP_Multiple,nm); STOQ(Denominator,dn); divq(nm,dn,&v);
           } else
                   v = 0;
           MKNODE(n,v,0); MKSTR(name,"Content"); MKNODE(n1,name,n); n = n1;
   #endif
         MKNODE(n1,Dist,n); n = n1; MKSTR(name,"Dist"); MKNODE(n1,name,n); n = n1;          MKNODE(n1,Dist,n); n = n1; MKSTR(name,"Dist"); MKNODE(n1,name,n); n = n1;
         STOQ(Reverse,v); MKNODE(n1,v,n); n = n1; MKSTR(name,"Reverse"); MKNODE(n1,name,n); n = n1;          STOQ(Reverse,v); MKNODE(n1,v,n); n = n1; MKSTR(name,"Reverse"); MKNODE(n1,name,n); n = n1;
         STOQ(Stat,v); MKNODE(n1,v,n); n = n1; MKSTR(name,"Stat"); MKNODE(n1,name,n); n = n1;          STOQ(Stat,v); MKNODE(n1,v,n); n = n1; MKSTR(name,"Stat"); MKNODE(n1,name,n); n = n1;
Line 2178  void dp_load(int index,DP *p)
Line 2195  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 2191  int dp_load_t(int index,DP *p)
Line 2212  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.42  
changed lines
  Added in v.1.47

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