[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.49 and 1.50

version 1.49, 2003/08/26 01:54:18 version 1.50, 2003/08/27 01:48:25
Line 1 
Line 1 
 /* $OpenXM: OpenXM_contrib2/asir2000/engine/nd.c,v 1.48 2003/08/26 01:42:12 noro Exp $ */  /* $OpenXM: OpenXM_contrib2/asir2000/engine/nd.c,v 1.49 2003/08/26 01:54:18 noro Exp $ */
   
 #include "ca.h"  #include "ca.h"
 #include "inline.h"  #include "inline.h"
Line 1618  NODE nd_reduceall(int m,NODE f)
Line 1618  NODE nd_reduceall(int m,NODE f)
         base.ps = (NDV *)ALLOCA((n-1)*sizeof(NDV));          base.ps = (NDV *)ALLOCA((n-1)*sizeof(NDV));
         base.bound = (unsigned int **)ALLOCA((n-1)*sizeof(unsigned int *));          base.bound = (unsigned int **)ALLOCA((n-1)*sizeof(unsigned int *));
         base.len = n-1;          base.len = n-1;
         for ( i = 0; i < n; i++ ) {          i = 0;
 again:          while ( i < n ) {
                 for ( j = 0; j < i; j++ ) {                  for ( j = 0; j < i; j++ ) {
                         base.ps[j] = ps[j]; base.bound[j] = bound[j];                          base.ps[j] = ps[j]; base.bound[j] = bound[j];
                 }                  }
Line 1628  again:
Line 1628  again:
                 }                  }
                 g = ndvtond(m,ps[i]);                  g = ndvtond(m,ps[i]);
                 stat = nd_nf_direct(m,g,&base,1,&nf);                  stat = nd_nf_direct(m,g,&base,1,&nf);
                 if ( !stat ) {                  if ( !stat )
                         nd_reconstruct_direct(m,ps,n);                          nd_reconstruct_direct(m,ps,n);
                         goto again;  
                 }  
                 else if ( !nf ) {                  else if ( !nf ) {
                         printf("."); fflush(stdout);                          printf("."); fflush(stdout);
                         ndv_free(ps[i]);                          ndv_free(ps[i]);
                         for ( j = i+1; j < n; j++ ) ps[j-1] = ps[j];                          for ( j = i+1; j < n; j++ ) {
                                   ps[j-1] = ps[j]; bound[j-1] = bound[j];
                           }
                         n--;                          n--;
                           base.len = n-1;
                 } else {                  } else {
                         printf("."); fflush(stdout);                          printf("."); fflush(stdout);
                         ndv_free(ps[i]);                          ndv_free(ps[i]);
Line 1644  again:
Line 1645  again:
                         ps[i] = ndtondv(m,nf);                          ps[i] = ndtondv(m,nf);
                         bound[i] = ndv_compute_bound(ps[i]);                          bound[i] = ndv_compute_bound(ps[i]);
                         nd_free(nf);                          nd_free(nf);
                           i++;
                 }                  }
         }          }
         printf("\n");          printf("\n");
Line 2000  void nd_gr(LIST f,LIST v,int m,struct order_spec *ord,
Line 2002  void nd_gr(LIST f,LIST v,int m,struct order_spec *ord,
         x = nd_gb(m,0);          x = nd_gb(m,0);
         fprintf(asir_out,"found=%d,notfirst=%d,create=%d\n",          fprintf(asir_out,"found=%d,notfirst=%d,create=%d\n",
                 nd_found,nd_notfirst,nd_create);                  nd_found,nd_notfirst,nd_create);
           x = nd_reducebase(x);
         x = nd_reduceall(m,x);          x = nd_reduceall(m,x);
         for ( r0 = 0, t = x; t; t = NEXT(t) ) {          for ( r0 = 0, t = x; t; t = NEXT(t) ) {
                 NEXTNODE(r0,r);                  NEXTNODE(r0,r);
Line 2063  void nd_gr_trace(LIST f,LIST v,int m,int homo,struct o
Line 2066  void nd_gr_trace(LIST f,LIST v,int m,int homo,struct o
                         initd(ord);                          initd(ord);
                         nd_init_ord(ord);                          nd_init_ord(ord);
                         nd_setup_parameters();                          nd_setup_parameters();
                         cand = nd_reducebase(cand);  
                 }                  }
                   cand = nd_reducebase(cand);
                 fprintf(asir_out,"found=%d,notfirst=%d,create=%d\n",                  fprintf(asir_out,"found=%d,notfirst=%d,create=%d\n",
                         nd_found,nd_notfirst,nd_create);                          nd_found,nd_notfirst,nd_create);
                 cand = nd_reduceall(0,cand);                  cand = nd_reduceall(0,cand);

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

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