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

Diff for /OpenXM_contrib2/asir2000/engine/nd.c between version 1.176 and 1.177

version 1.176, 2009/09/24 07:13:00 version 1.177, 2009/10/12 10:43:45
Line 1 
Line 1 
 /* $OpenXM: OpenXM_contrib2/asir2000/engine/nd.c,v 1.175 2009/09/09 08:13:24 noro Exp $ */  /* $OpenXM: OpenXM_contrib2/asir2000/engine/nd.c,v 1.176 2009/09/24 07:13:00 noro Exp $ */
   
 #include "nd.h"  #include "nd.h"
   
Line 2594  int ndv_newps(int m,NDV a,NDV aq)
Line 2594  int ndv_newps(int m,NDV a,NDV aq)
 }  }
   
 /* nd_tracelist = [[0,index,div],...,[nd_psn-1,index,div]] */  /* nd_tracelist = [[0,index,div],...,[nd_psn-1,index,div]] */
   /* return 1 if success, 0 if failure (HC(a mod p)) */
   
 void ndv_setup(int mod,int trace,NODE f,int dont_sort,int dont_removecont)  int ndv_setup(int mod,int trace,NODE f,int dont_sort,int dont_removecont)
 {  {
     int i,j,td,len,max;      int i,j,td,len,max;
     NODE s,s0,f0,tn;      NODE s,s0,f0,tn;
Line 2649  void ndv_setup(int mod,int trace,NODE f,int dont_sort,
Line 2650  void ndv_setup(int mod,int trace,NODE f,int dont_sort,
             register_hcf(a);              register_hcf(a);
             am = nd_ps[i] = ndv_dup(mod,a);              am = nd_ps[i] = ndv_dup(mod,a);
             ndv_mod(mod,am);              ndv_mod(mod,am);
               if ( DL_COMPARE(HDL(am),HDL(a)) )
                   return 0;
             ndv_removecont(mod,am);              ndv_removecont(mod,am);
         } else {          } else {
             a = nd_ps[i] = ndv_dup(mod,w[i].p);              a = nd_ps[i] = ndv_dup(mod,w[i].p);
Line 2675  void ndv_setup(int mod,int trace,NODE f,int dont_sort,
Line 2678  void ndv_setup(int mod,int trace,NODE f,int dont_sort,
         }          }
     }      }
     if ( nd_gentrace && nd_tracelist ) NEXT(tn) = 0;      if ( nd_gentrace && nd_tracelist ) NEXT(tn) = 0;
       return 1;
 }  }
   
 struct order_spec *append_block(struct order_spec *spec,  struct order_spec *append_block(struct order_spec *spec,
Line 3135  void nd_gr_trace(LIST f,LIST v,int trace,int homo,int 
Line 3139  void nd_gr_trace(LIST f,LIST v,int trace,int homo,int 
     while ( 1 ) {      while ( 1 ) {
         if ( Demand )          if ( Demand )
             nd_demand = 1;              nd_demand = 1;
         ndv_setup(m,1,fd0,0,0);  
         if ( nd_gentrace ) {          if ( nd_gentrace ) {
             MKLIST(l1,nd_tracelist); MKNODE(nd_alltracelist,l1,0);              MKLIST(l1,nd_tracelist); MKNODE(nd_alltracelist,l1,0);
         }          }
         cand = f4?nd_f4_trace(m,&perm):nd_gb_trace(m,ishomo || homo,&perm);          ret = ndv_setup(m,1,fd0,0,0);
         if ( !cand ) {          if ( ret )
               cand = f4?nd_f4_trace(m,&perm):nd_gb_trace(m,ishomo || homo,&perm);
           if ( !ret || !cand ) {
             /* failure */              /* failure */
             if ( trace > 1 ) { *rp = 0; return; }              if ( trace > 1 ) { *rp = 0; return; }
             else m = get_lprime(++mindex);              else m = get_lprime(++mindex);

Legend:
Removed from v.1.176  
changed lines
  Added in v.1.177

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