[BACK]Return to ndbf.rr CVS log [TXT][DIR] Up to [local] / OpenXM / src / asir-contrib / testing / noro

Diff for /OpenXM/src/asir-contrib/testing/noro/ndbf.rr between version 1.18 and 1.20

version 1.18, 2011/01/16 08:46:10 version 1.20, 2014/09/05 11:55:19
Line 1 
Line 1 
 /* $OpenXM: OpenXM/src/asir-contrib/testing/noro/ndbf.rr,v 1.17 2010/07/12 07:20:03 noro Exp $ */  /* $OpenXM: OpenXM/src/asir-contrib/testing/noro/ndbf.rr,v 1.19 2011/03/30 05:07:01 noro Exp $ */
 /* requires 'primdec' */  /* requires 'primdec' */
   
 #define TMP_H hhhhhhhh  #define TMP_H hhhhhhhh
Line 31  localf weyl_nf_quo, weyl_nf_mod, b_subst, v_factorial,
Line 31  localf weyl_nf_quo, weyl_nf_mod, b_subst, v_factorial,
 localf replace_vars_f, replace_vars_v, replace_var$  localf replace_vars_f, replace_vars_v, replace_var$
 localf action_on_gfs, action_on_gfs_1$  localf action_on_gfs, action_on_gfs_1$
 localf nd_gb_candidate$  localf nd_gb_candidate$
 localf in_gb_oaku$  localf in_gb_oaku, homogenize_oaku$
   
 /* stratification */  /* stratification */
   
Line 112  def in_ww(F)
Line 112  def in_ww(F)
                 if ( type(Vord) != 4 ) {                  if ( type(Vord) != 4 ) {
                 for ( I = 0; I < N; I++ )                  for ( I = 0; I < N; I++ )
                         D[I] = [deg(F,V[I]),V[I]];                          D[I] = [deg(F,V[I]),V[I]];
                 qsort(D,compare_first);                  qsort(D,ndbf.compare_first);
                 for ( V = [], I = 0; I < N; I++ )                  for ( V = [], I = 0; I < N; I++ )
                         V = cons(D[I][1],V);                          V = cons(D[I][1],V);
                         V = reverse(V);                          V = reverse(V);
Line 131  def in_ww(F)
Line 131  def in_ww(F)
                         }                          }
                 for ( I = 0; I < N; I++ )                  for ( I = 0; I < N; I++ )
                         D[I] = [deg(F1,V[I]),V[I]];                          D[I] = [deg(F1,V[I]),V[I]];
                 qsort(D,compare_first);                  qsort(D,ndbf.compare_first);
                 for ( V = [], I = 0; I < N; I++ )                  for ( V = [], I = 0; I < N; I++ )
                         V = cons(D[I][1],V);                          V = cons(D[I][1],V);
                         V = reverse(V);                          V = reverse(V);
Line 319  def ann(F)
Line 319  def ann(F)
                 F1 = subst(F1,VI,VI^WI);                  F1 = subst(F1,VI,VI^WI);
         }          }
         for ( I = 0; I < N; I++ ) D[I] = [deg(F1,V[I]),V[I]];          for ( I = 0; I < N; I++ ) D[I] = [deg(F1,V[I]),V[I]];
         qsort(D,compare_first);          qsort(D,ndbf.compare_first);
         for ( V = [], I = 0; I < N; I++ ) V = cons(D[I][1],V);          for ( V = [], I = 0; I < N; I++ ) V = cons(D[I][1],V);
         V = reverse(V);          V = reverse(V);
         for ( I = 0; I < N; I++ ) {          for ( I = 0; I < N; I++ ) {
Line 388  def in_gb_oaku(F)
Line 388  def in_gb_oaku(F)
                 F1 = subst(F1,VI,VI^WI);                  F1 = subst(F1,VI,VI^WI);
         }          }
         for ( I = 0; I < N; I++ ) D[I] = [deg(F1,V[I]),V[I]];          for ( I = 0; I < N; I++ ) D[I] = [deg(F1,V[I]),V[I]];
         qsort(D,compare_first);          qsort(D,ndbf.compare_first);
         for ( V = [], I = 0; I < N; I++ ) V = cons(D[I][1],V);          for ( V = [], I = 0; I < N; I++ ) V = cons(D[I][1],V);
         V = reverse(V);          V = reverse(V);
         for ( I = 0; I < N; I++ ) {          for ( I = 0; I < N; I++ ) {
Line 430  def in_gb_oaku(F)
Line 430  def in_gb_oaku(F)
         return [G1,append(V,DV)];          return [G1,append(V,DV)];
 }  }
   
   /* homogenization w.r.t. (-W,W)-weight */
   /* VDV = [x1,...,xn,dx1,...,dxn] */
   /* homogenize F w.r.t. (W,-W,1) for (x,dx,y) */
   
   def homogenize_oaku(F,VDV,W,Y)
   {
           N = length(VDV);
           if ( N%2 ) error("invalid variable list");
           N2 = N/2;
           if ( length(W) != N2 ) error("inconsistent weight vector");
           W0 = dp_set_weight();
           Wt = append(W,append(vtol(-ltov(W)),[1]));
           dp_set_weight(Wt);
           H = homogenize(F,VDV,Y);
           dp_set_weight(W0);
           if ( type(Vars=getopt(vars)) != -1 && Vars ) {
                   DY = strtov("d"+rtostr(Y));
                   for ( I = 0, T = VDV, V = []; I < N2; I++, T = cdr(T) )
                           V = cons(car(T),V);
                   T = cons(Y,append(T,[DY]));
                   for ( ; V != []; V = cdr(V) ) T = cons(car(V),T);
                   return [H,T];
           } else return H;
   }
   
 /* F = [F0,F1,...] */  /* F = [F0,F1,...] */
   
 def ann_n(F)  def ann_n(F)
Line 770  def bfct(F)
Line 795  def bfct(F)
   
         for ( I = 0; I < N; I++ )          for ( I = 0; I < N; I++ )
                 D[I] = [deg(F,V[I]),V[I]];                  D[I] = [deg(F,V[I]),V[I]];
         qsort(D,compare_first);          qsort(D,ndbf.compare_first);
         for ( V = [], I = 0; I < N; I++ )          for ( V = [], I = 0; I < N; I++ )
                 V = cons(D[I][1],V);                  V = cons(D[I][1],V);
         for ( I = N-1, DV = []; I >= 0; I-- )          for ( I = N-1, DV = []; I >= 0; I-- )
Line 816  def bfct_via_gbfct(F)
Line 841  def bfct_via_gbfct(F)
   
         for ( I = 0; I < N; I++ )          for ( I = 0; I < N; I++ )
                 D[I] = [deg(F,V[I]),V[I]];                  D[I] = [deg(F,V[I]),V[I]];
         qsort(D,compare_first);          qsort(D,ndbf.compare_first);
         for ( V = [], I = 0; I < N; I++ )          for ( V = [], I = 0; I < N; I++ )
                 V = cons(D[I][1],V);                  V = cons(D[I][1],V);
         V = reverse(V);          V = reverse(V);

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

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