[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.165 and 1.166

version 1.165, 2009/02/02 02:40:42 version 1.166, 2009/02/03 08:08:01
Line 1 
Line 1 
 /* $OpenXM: OpenXM_contrib2/asir2000/engine/nd.c,v 1.164 2009/01/07 05:33:18 noro Exp $ */  /* $OpenXM: OpenXM_contrib2/asir2000/engine/nd.c,v 1.165 2009/02/02 02:40:42 noro Exp $ */
   
 #include "nd.h"  #include "nd.h"
   
Line 3767  void weyl_mul_nm_nmv(int n,int mod,NM m0,NMV m1,NM *ta
Line 3767  void weyl_mul_nm_nmv(int n,int mod,NM m0,NMV m1,NM *ta
     for ( i = 0; i < tlen; i++ ) tab[i] = 0;      for ( i = 0; i < tlen; i++ ) tab[i] = 0;
     if ( !m0 || !m1 ) return;      if ( !m0 || !m1 ) return;
     d0 = DL(m0); d1 = DL(m1); n2 = n>>1;      d0 = DL(m0); d1 = DL(m1); n2 = n>>1;
       if ( nd_module )
           if ( MPOS(d0) ) error("weyl_mul_nm_nmv : invalid operation");
   
     NEWNM(m); d = DL(m);      NEWNM(m); d = DL(m);
     if ( mod ) {      if ( mod ) {
         c0 = CM(m0); c1 = CM(m1); DMAR(c0,c1,0,mod,c); CM(m) = c;          c0 = CM(m0); c1 = CM(m1); DMAR(c0,c1,0,mod,c); CM(m) = c;
Line 3781  void weyl_mul_nm_nmv(int n,int mod,NM m0,NMV m1,NM *ta
Line 3784  void weyl_mul_nm_nmv(int n,int mod,NM m0,NMV m1,NM *ta
         TD(DL(m)) = h;          TD(DL(m)) = h;
         if ( nd_blockmask ) ndl_weight_mask(DL(m));          if ( nd_blockmask ) ndl_weight_mask(DL(m));
     }      }
     if ( nd_module ) {  
         mpos = MPOS(d1);  
                 TD(d1) = ndl_weight(d1);  
         if ( MPOS(d0) ) error("weyl_mul_nm_nmv : invalid operation");  
     }  
     tab[0] = m;      tab[0] = m;
     NEWNM(m); d = DL(m);      NEWNM(m); d = DL(m);
     for ( i = 0, curlen = 1; i < n2; i++ ) {      for ( i = 0, curlen = 1; i < n2; i++ ) {
Line 3799  void weyl_mul_nm_nmv(int n,int mod,NM m0,NMV m1,NM *ta
Line 3797  void weyl_mul_nm_nmv(int n,int mod,NM m0,NMV m1,NM *ta
                 if ( t = tab[j] ) {                  if ( t = tab[j] ) {
                     dt = DL(t);                      dt = DL(t);
                     PUT_EXP(dt,i,a); PUT_EXP(dt,n2+i,b); TD(dt) += s;                      PUT_EXP(dt,i,a); PUT_EXP(dt,n2+i,b); TD(dt) += s;
                         if ( nd_module ) {  
                                                 MPOS(dt) = mpos;  
                                                 TD(dt) = ndl_weight(dt);  
                                         }  
                     if ( nd_blockmask ) ndl_weight_mask(dt);                      if ( nd_blockmask ) ndl_weight_mask(dt);
                 }                  }
             curlen *= k+1;              curlen *= k+1;
Line 3824  void weyl_mul_nm_nmv(int n,int mod,NM m0,NMV m1,NM *ta
Line 3818  void weyl_mul_nm_nmv(int n,int mod,NM m0,NMV m1,NM *ta
                 TD(d) = s;                  TD(d) = s;
                 PUT_EXP(d,n-1,s-h);                  PUT_EXP(d,n-1,s-h);
             } else TD(d) = h;              } else TD(d) = h;
             if ( nd_module ) {  
                                 MPOS(d) = mpos;  
                                 TD(d) = ndl_weight(d);  
                         }  
             if ( nd_blockmask ) ndl_weight_mask(d);              if ( nd_blockmask ) ndl_weight_mask(d);
             if ( mod ) c = ctab[j];              if ( mod ) c = ctab[j];
             else q = ctab_q[j];              else q = ctab_q[j];
Line 3860  void weyl_mul_nm_nmv(int n,int mod,NM m0,NMV m1,NM *ta
Line 3850  void weyl_mul_nm_nmv(int n,int mod,NM m0,NMV m1,NM *ta
         curlen *= k+1;          curlen *= k+1;
     }      }
     FREENM(m);      FREENM(m);
           if ( nd_module ) {
           mpos = MPOS(d1);
                   for ( i = 0; i < tlen; i++ )
                           if ( tab[i] ) {
                                   d = DL(tab[i]);
                                   MPOS(d) = mpos;
                                   TD(d) = ndl_weight(d);
                           }
           }
 }  }
   
 ND ndv_mul_nm_symbolic(NM m0,NDV p)  ND ndv_mul_nm_symbolic(NM m0,NDV p)

Legend:
Removed from v.1.165  
changed lines
  Added in v.1.166

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