[BACK]Return to nd.c CVS log [TXT][DIR] Up to [local] / OpenXM_contrib2 / asir2018 / engine

Diff for /OpenXM_contrib2/asir2018/engine/nd.c between version 1.1 and 1.3

version 1.1, 2018/09/19 05:45:07 version 1.3, 2018/09/24 22:26:43
Line 1 
Line 1 
 /* $OpenXM$ */  /* $OpenXM: OpenXM_contrib2/asir2018/engine/nd.c,v 1.2 2018/09/21 07:06:51 noro Exp $ */
   
 #include "nd.h"  #include "nd.h"
   
Line 5796  int nd_to_vect_q(UINT *s0,int n,ND d,Z *r)
Line 5796  int nd_to_vect_q(UINT *s0,int n,ND d,Z *r)
     for ( i = 0, s = s0, m = BDY(d); m; m = NEXT(m) ) {      for ( i = 0, s = s0, m = BDY(d); m; m = NEXT(m) ) {
         t = DL(m);          t = DL(m);
         for ( ; !ndl_equal(t,s); s += nd_wpd, i++ );          for ( ; !ndl_equal(t,s); s += nd_wpd, i++ );
         r[i] = CQ(m);          dupz(CQ(m),&r[i]);
     }      }
     for ( i = 0; !r[i]; i++ );      for ( i = 0; !r[i]; i++ );
     return i;      return i;
Line 5966  int ndv_reduce_vect_q(Z *svect,int trace,int col,IndAr
Line 5966  int ndv_reduce_vect_q(Z *svect,int trace,int col,IndAr
     int maxrs;      int maxrs;
     double hmag;      double hmag;
     Z *cvect;      Z *cvect;
       int l;
   
     maxrs = 0;      maxrs = 0;
     for ( i = 0; i < col && !svect[i]; i++ );      for ( i = 0; i < col && !svect[i]; i++ );
Line 5993  int ndv_reduce_vect_q(Z *svect,int trace,int col,IndAr
Line 5994  int ndv_reduce_vect_q(Z *svect,int trace,int col,IndAr
                     ivc = ivect->index.c;                      ivc = ivect->index.c;
                     for ( j = 1, NMV_ADV(mr); j < len; j++, NMV_ADV(mr) ) {                      for ( j = 1, NMV_ADV(mr); j < len; j++, NMV_ADV(mr) ) {
                         pos = prev+ivc[j]; prev = pos;                          pos = prev+ivc[j]; prev = pos;
                         mulz(CQ(mr),mcs,&c2); addz(svect[pos],c2,&t); svect[pos] = t;                          muladdtoz(CQ(mr),mcs,&svect[pos]);
                     }                      }
                     break;                      break;
                 case 2:                  case 2:
                     ivs = ivect->index.s;                      ivs = ivect->index.s;
                     for ( j = 1, NMV_ADV(mr); j < len; j++, NMV_ADV(mr) ) {                      for ( j = 1, NMV_ADV(mr); j < len; j++, NMV_ADV(mr) ) {
                         pos = prev+ivs[j]; prev = pos;                          pos = prev+ivs[j]; prev = pos;
                         mulz(CQ(mr),mcs,&c2); addz(svect[pos],c2,&t); svect[pos] = t;                          muladdtoz(CQ(mr),mcs,&svect[pos]);
                     }                      }
                     break;                      break;
                 case 4:                  case 4:
                     ivi = ivect->index.i;                      ivi = ivect->index.i;
                     for ( j = 1, NMV_ADV(mr); j < len; j++, NMV_ADV(mr) ) {                      for ( j = 1, NMV_ADV(mr); j < len; j++, NMV_ADV(mr) ) {
                         pos = prev+ivi[j]; prev = pos;                          pos = prev+ivi[j]; prev = pos;
                         mulz(CQ(mr),mcs,&c2); addz(svect[pos],c2,&t); svect[pos] = t;                          muladdtoz(CQ(mr),mcs,&svect[pos]);
                     }                      }
                     break;                      break;
             }              }
Line 6713  NODE nd_f4(int m,int checkonly,int **indp)
Line 6714  NODE nd_f4(int m,int checkonly,int **indp)
         }          }
         get_eg(&eg1); init_eg(&eg_f4); add_eg(&eg_f4,&eg0,&eg1);          get_eg(&eg1); init_eg(&eg_f4); add_eg(&eg_f4,&eg0,&eg1);
         if ( DP_Print )          if ( DP_Print )
             fprintf(asir_out,"sugar=%d,symb=%.3fsec,",              fprintf(asir_out,"\nsugar=%d,symb=%.3fsec,",
                 sugar,eg_f4.exectime+eg_f4.gctime);                  sugar,eg_f4.exectime+eg_f4.gctime);
         nflist = nd_f4_red(m,nd_nzlist?lh:l,0,s0vect,col,rp0,nd_gentrace?&ll:0);          nflist = nd_f4_red(m,nd_nzlist?lh:l,0,s0vect,col,rp0,nd_gentrace?&ll:0);
         if ( checkonly && nflist ) return 0;          if ( checkonly && nflist ) return 0;
Line 6813  NODE nd_f4_trace(int m,int **indp)
Line 6814  NODE nd_f4_trace(int m,int **indp)
         }          }
         get_eg(&eg1); init_eg(&eg_f4); add_eg(&eg_f4,&eg0,&eg1);          get_eg(&eg1); init_eg(&eg_f4); add_eg(&eg_f4,&eg0,&eg1);
         if ( DP_Print )          if ( DP_Print )
             fprintf(asir_out,"sugar=%d,symb=%.3fsec,",              fprintf(asir_out,"\nsugar=%d,symb=%.3fsec,",
                 sugar,eg_f4.exectime+eg_f4.gctime);                  sugar,eg_f4.exectime+eg_f4.gctime);
         nflist = nd_f4_red(m,l,0,s0vect,col,rp0,&l0);          nflist = nd_f4_red(m,l,0,s0vect,col,rp0,&l0);
         if ( !l0 ) continue;          if ( !l0 ) continue;
Line 9104  NODE nd_f4_lf_trace_main(int m,int **indp)
Line 9105  NODE nd_f4_lf_trace_main(int m,int **indp)
         }          }
         get_eg(&eg1); init_eg(&eg_f4); add_eg(&eg_f4,&eg0,&eg1);          get_eg(&eg1); init_eg(&eg_f4); add_eg(&eg_f4,&eg0,&eg1);
         if ( DP_Print )          if ( DP_Print )
             fprintf(asir_out,"sugar=%d,symb=%.3fsec,",              fprintf(asir_out,"\nsugar=%d,symb=%.3fsec,",
                 sugar,eg_f4.exectime+eg_f4.gctime);                  sugar,eg_f4.exectime+eg_f4.gctime);
         nflist = nd_f4_red(m,l,0,s0vect,col,rp0,&l0);          nflist = nd_f4_red(m,l,0,s0vect,col,rp0,&l0);
         if ( !l0 ) continue;          if ( !l0 ) continue;

Legend:
Removed from v.1.1  
changed lines
  Added in v.1.3

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