[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.47 and 1.48

version 1.47, 2003/08/25 09:19:43 version 1.48, 2003/08/26 01:42:12
Line 1 
Line 1 
 /* $OpenXM: OpenXM_contrib2/asir2000/engine/nd.c,v 1.46 2003/08/25 09:16:55 noro Exp $ */  /* $OpenXM: OpenXM_contrib2/asir2000/engine/nd.c,v 1.47 2003/08/25 09:19:43 noro Exp $ */
   
 #include "ca.h"  #include "ca.h"
 #include "inline.h"  #include "inline.h"
Line 271  void nd_reconstruct_direct(int mod,NDV *ps,int len);
Line 271  void nd_reconstruct_direct(int mod,NDV *ps,int len);
 void nd_setup(int mod,int trace,NODE f);  void nd_setup(int mod,int trace,NODE f);
 void nd_setup_parameters();  void nd_setup_parameters();
 BlockMask nd_create_blockmask(struct order_spec *ord);  BlockMask nd_create_blockmask(struct order_spec *ord);
   int nd_get_exporigin(struct order_spec *ord);
   
 /* ND functions */  /* ND functions */
 int nd_check_candidate(NODE input,NODE cand);  int nd_check_candidate(NODE input,NODE cand);
Line 1511  again:
Line 1512  again:
                 } else if ( nf ) {                  } else if ( nf ) {
                         if ( checkonly ) return 0;                          if ( checkonly ) return 0;
                         printf("+"); fflush(stdout);                          printf("+"); fflush(stdout);
                           ndl_print(HDL(nf));
                         nh = m?nd_newps(m,nf,0):nd_newps(m,0,nf);                          nh = m?nd_newps(m,nf,0):nd_newps(m,0,nf);
                         d = update_pairs(d,g,nh);                          d = update_pairs(d,g,nh);
                         g = update_base(g,nh);                          g = update_base(g,nh);
Line 2347  void ndv_dehomogenize(NDV p,struct order_spec *ord)
Line 2349  void ndv_dehomogenize(NDV p,struct order_spec *ord)
   
         len = p->len;          len = p->len;
         newnvar = nd_nvar-1;          newnvar = nd_nvar-1;
         newexporigin = ord->ord.block.length+1;          newexporigin = nd_get_exporigin(ord);
         newwpd = newnvar/nd_epw+(newnvar%nd_epw?1:0)+newexporigin;          newwpd = newnvar/nd_epw+(newnvar%nd_epw?1:0)+newexporigin;
         for ( m = BDY(p), i = 0; i < len; NMV_ADV(m), i++ )          for ( m = BDY(p), i = 0; i < len; NMV_ADV(m), i++ )
                 ndl_dehomogenize(DL(m));                  ndl_dehomogenize(DL(m));
Line 2503  unsigned int *ndv_compute_bound(NDV p)
Line 2505  unsigned int *ndv_compute_bound(NDV p)
         return t;          return t;
 }  }
   
 void nd_setup_parameters() {  int nd_get_exporigin(struct order_spec *ord)
         int i,n,elen;  {
   
         nd_epw = (sizeof(unsigned int)*8)/nd_bpe;  
         elen = nd_nvar/nd_epw+(nd_nvar%nd_epw?1:0);  
   
         switch ( nd_ord->id ) {          switch ( nd_ord->id ) {
                 case 0:                  case 0:
                         nd_exporigin = 1;                          return 1;
                         break;  
                 case 1:                  case 1:
                         /* block order */                          /* block order */
                         /* d[0]:weight d[1]:w0,...,d[nd_exporigin-1]:w(n-1) */                          /* d[0]:weight d[1]:w0,...,d[nd_exporigin-1]:w(n-1) */
                         nd_exporigin = nd_ord->ord.block.length+1;                          return ord->ord.block.length+1;
                         break;  
                 case 2:                  case 2:
                         error("nd_setup_parameters : matrix order is not supported yet.");                          error("nd_setup_parameters : matrix order is not supported yet.");
                         break;  
         }          }
   }
   
   void nd_setup_parameters() {
           int i,n,elen;
   
           nd_epw = (sizeof(unsigned int)*8)/nd_bpe;
           elen = nd_nvar/nd_epw+(nd_nvar%nd_epw?1:0);
   
           nd_exporigin = nd_get_exporigin(nd_ord);
         nd_wpd = nd_exporigin+elen;          nd_wpd = nd_exporigin+elen;
         nd_epos = (EPOS)MALLOC_ATOMIC(nd_nvar*sizeof(struct oEPOS));          nd_epos = (EPOS)MALLOC_ATOMIC(nd_nvar*sizeof(struct oEPOS));
         for ( i = 0; i < nd_nvar; i++ ) {          for ( i = 0; i < nd_nvar; i++ ) {

Legend:
Removed from v.1.47  
changed lines
  Added in v.1.48

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