Пример #1
0
 arma_hot
 inline
 void
 butterfly_N(cx_type* Y, const uword stride, const uword m, const uword r)
   {
   arma_extra_debug_sigprint();
   
   const cx_type* coeffs = coeffs_ptr();
   
   tmp_array.set_min_size(r);
   cx_type* tmp = tmp_array.memptr();
   
   for(uword u=0; u < m; ++u)
     {
     uword k = u;
     
     for(uword v=0; v < r; ++v)
       {
       tmp[v] = Y[k];
       k += m;
       }
     
     k = u;
     
     for(uword v=0; v < r; ++v)
       {
       Y[k] = tmp[0];
       
       uword j = 0;
       
       for(uword w=1; w < r; ++w)
         {
         j += stride * k;
         
         if(j >= N) { j -= N; }
         
         Y[k] += tmp[w] * coeffs[j];
         }
       
       k += m;
       }
     }
   }