[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.173 and 1.175

version 1.173, 2009/02/15 09:22:07 version 1.175, 2009/09/09 08:13:24
Line 1 
Line 1 
 /* $OpenXM: OpenXM_contrib2/asir2000/engine/nd.c,v 1.172 2009/02/15 03:07:41 noro Exp $ */  /* $OpenXM: OpenXM_contrib2/asir2000/engine/nd.c,v 1.174 2009/06/01 07:31:54 noro Exp $ */
   
 #include "nd.h"  #include "nd.h"
   
Line 46  static int nd_worb_len;
Line 46  static int nd_worb_len;
 static int nd_found,nd_create,nd_notfirst;  static int nd_found,nd_create,nd_notfirst;
 static int nmv_adv;  static int nmv_adv;
 static int nd_demand;  static int nd_demand;
 static int nd_module,nd_ispot,nd_mpos;  static int nd_module,nd_ispot,nd_mpos,nd_pot_nelim;
 static NODE nd_tracelist;  static NODE nd_tracelist;
 static NODE nd_alltracelist;  static NODE nd_alltracelist;
 static int nd_gentrace,nd_gensyz,nd_nora;  static int nd_gentrace,nd_gensyz,nd_nora;
Line 581  int ndl_module_grlex_compare(UINT *d1,UINT *d2)
Line 581  int ndl_module_grlex_compare(UINT *d1,UINT *d2)
     int i,c;      int i,c;
   
     if ( nd_ispot ) {      if ( nd_ispot ) {
                   if ( nd_pot_nelim && MPOS(d1)>=nd_pot_nelim+1 && MPOS(d2) >= nd_pot_nelim+1 ) {
               if ( TD(d1) > TD(d2) ) return 1;
               else if ( TD(d1) < TD(d2) ) return -1;
               if ( c = ndl_lex_compare(d1,d2) ) return c;
               if ( MPOS(d1) < MPOS(d2) ) return 1;
               else if ( MPOS(d1) > MPOS(d2) ) return -1;
               return 0;
                   }
         if ( MPOS(d1) < MPOS(d2) ) return 1;          if ( MPOS(d1) < MPOS(d2) ) return 1;
         else if ( MPOS(d1) > MPOS(d2) ) return -1;          else if ( MPOS(d1) > MPOS(d2) ) return -1;
     }      }
Line 2796  void nd_gr(LIST f,LIST v,int m,int f4,struct order_spe
Line 2804  void nd_gr(LIST f,LIST v,int m,int f4,struct order_spe
     EPOS oepos;      EPOS oepos;
     int obpe,oadv,ompos;      int obpe,oadv,ompos;
   
     nd_module;      nd_module = 0;
     if ( !m && Demand ) nd_demand = 1;      if ( !m && Demand ) nd_demand = 1;
     else nd_demand = 0;      else nd_demand = 0;
     parse_nd_option(current_option);      parse_nd_option(current_option);
Line 2989  void nd_gr_postproc(LIST f,LIST v,int m,struct order_s
Line 2997  void nd_gr_postproc(LIST f,LIST v,int m,struct order_s
             return;              return;
         }          }
     } else {      } else {
   #if 0
                   /* bug ? */
         for ( t = x; t; t = NEXT(t) )          for ( t = x; t; t = NEXT(t) )
             BDY(t) = (pointer)nd_ps[(long)BDY(t)];              BDY(t) = (pointer)nd_ps[(long)BDY(t)];
   #else
                   conv_ilist(0,0,x,&perm);
   #endif
     }      }
     x = ndv_reducebase(x,perm);      x = ndv_reducebase(x,perm);
     x = ndv_reduceall(m,x);      x = ndv_reduceall(m,x);
Line 4740  void nd_init_ord(struct order_spec *ord)
Line 4753  void nd_init_ord(struct order_spec *ord)
         /* module order */          /* module order */
         case 256:          case 256:
             nd_ispot = ord->ispot;              nd_ispot = ord->ispot;
               nd_pot_nelim = ord->pot_nelim;
             nd_dcomp = -1;              nd_dcomp = -1;
             switch ( ord->ord.simple ) {              switch ( ord->ord.simple ) {
                 case 0:                  case 0:
Line 4760  void nd_init_ord(struct order_spec *ord)
Line 4774  void nd_init_ord(struct order_spec *ord)
             break;              break;
         case 257:          case 257:
             /* block order */              /* block order */
               nd_ispot = ord->ispot;
               nd_pot_nelim = ord->pot_nelim;
               nd_dcomp = -1;
               nd_isrlex = 0;
             ndl_compare_function = ndl_module_block_compare;              ndl_compare_function = ndl_module_block_compare;
             break;              break;
         case 258:          case 258:
             /* matrix order */              /* matrix order */
               nd_ispot = ord->ispot;
               nd_pot_nelim = ord->pot_nelim;
               nd_dcomp = -1;
               nd_isrlex = 0;
             nd_matrix_len = ord->ord.matrix.row;              nd_matrix_len = ord->ord.matrix.row;
             nd_matrix = ord->ord.matrix.matrix;              nd_matrix = ord->ord.matrix.matrix;
             ndl_compare_function = ndl_module_matrix_compare;              ndl_compare_function = ndl_module_matrix_compare;
             break;              break;
         case 259:          case 259:
             /* composite order */              /* composite order */
               nd_ispot = ord->ispot;
               nd_pot_nelim = ord->pot_nelim;
               nd_dcomp = -1;
               nd_isrlex = 0;
             nd_worb_len = ord->ord.composite.length;              nd_worb_len = ord->ord.composite.length;
             nd_worb = ord->ord.composite.w_or_b;              nd_worb = ord->ord.composite.w_or_b;
             ndl_compare_function = ndl_module_composite_compare;              ndl_compare_function = ndl_module_composite_compare;

Legend:
Removed from v.1.173  
changed lines
  Added in v.1.175

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