[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.35 and 1.36

version 1.35, 2003/08/20 07:04:31 version 1.36, 2003/08/20 07:55:45
Line 1 
Line 1 
 /* $OpenXM: OpenXM_contrib2/asir2000/engine/nd.c,v 1.34 2003/08/20 06:06:07 noro Exp $ */  /* $OpenXM: OpenXM_contrib2/asir2000/engine/nd.c,v 1.35 2003/08/20 07:04:31 noro Exp $ */
   
 #include "ca.h"  #include "ca.h"
 #include "inline.h"  #include "inline.h"
Line 372  void ndl_dehomogenize(unsigned int *d)
Line 372  void ndl_dehomogenize(unsigned int *d)
                         h = (d[1]>>((nd_epw-1)*nd_bpe))&nd_mask0;                          h = (d[1]>>((nd_epw-1)*nd_bpe))&nd_mask0;
                         for ( i = 1; i <= nd_wpd; i++ )                          for ( i = 1; i <= nd_wpd; i++ )
                                 d[i] = ((d[i]<<nd_bpe)&mask)                                  d[i] = ((d[i]<<nd_bpe)&mask)
                                         |(i+1<nd_wpd?((d[i+1]>>((nd_epw-1)*nd_bpe))&nd_mask0):0);                                          |(i+1<=nd_wpd?((d[i+1]>>((nd_epw-1)*nd_bpe))&nd_mask0):0);
                         TD(d) -= h;                          TD(d) -= h;
                 }                  }
         } else          } else
Line 505  INLINE void ndl_copy(unsigned int *d1,unsigned int *d2
Line 505  INLINE void ndl_copy(unsigned int *d1,unsigned int *d2
         }          }
 }  }
   
 /* XXX : TD is not added */  
   
 INLINE void ndl_add(unsigned int *d1,unsigned int *d2,unsigned int *d)  INLINE void ndl_add(unsigned int *d1,unsigned int *d2,unsigned int *d)
 {  {
         int i;          int i;
   
           TD(d) = TD(d1)+TD(d2);
         switch ( nd_wpd ) {          switch ( nd_wpd ) {
                 case 1:                  case 1:
                         d[1] = d1[1]+d2[1];                          d[1] = d1[1]+d2[1];
Line 2706  ND ndv_mul_nm(int mod,NDV p,NM m0)
Line 2705  ND ndv_mul_nm(int mod,NDV p,NM m0)
                                 c1 = CM(m);                                  c1 = CM(m);
                                 DMAR(c1,c,0,mod,c2);                                  DMAR(c1,c,0,mod,c2);
                                 CM(mr) = c2;                                  CM(mr) = c2;
                                 TD(DL(mr)) = TD(DL(m))+td;  
                                 ndl_add(DL(m),d,DL(mr));                                  ndl_add(DL(m),d,DL(mr));
                         }                          }
                 } else {                  } else {
Line 2714  ND ndv_mul_nm(int mod,NDV p,NM m0)
Line 2712  ND ndv_mul_nm(int mod,NDV p,NM m0)
                         for ( i = 0; i < len; i++, NMV_ADV(m) ) {                          for ( i = 0; i < len; i++, NMV_ADV(m) ) {
                                 NEXTNM(mr0,mr);                                  NEXTNM(mr0,mr);
                                 mulq(CQ(m),q,&CQ(mr));                                  mulq(CQ(m),q,&CQ(mr));
                                 TD(DL(mr)) = TD(DL(m))+td;  
                                 ndl_add(DL(m),d,DL(mr));                                  ndl_add(DL(m),d,DL(mr));
                         }                          }
                 }                  }

Legend:
Removed from v.1.35  
changed lines
  Added in v.1.36

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