cbitrev_T.cpp
上传用户:jtjnyq9001
上传日期:2014-11-21
资源大小:3974k
文件大小:1k
源码类别:

3G开发

开发平台:

Visual C++

  1.  //
  2.  //  File = cbitrev_T.cpp
  3.  //
  4.  #include "cbitrev_T.h"
  5.  using std::complex;
  6.  template <class T>
  7.  void ComplexBitReverse( complex<T> *array, int size)
  8.  {
  9.   complex<T> tt;
  10.   int nv2, nm1, i, j, k;
  11.   
  12.   nv2 = size/2;
  13.   nm1 = size - 1;
  14.   
  15.   j=0;
  16.   for (i=0; i<nm1; i++)
  17.     {
  18.      if (i<j)
  19.        {
  20.         tt = array[j];
  21.         array[j] = array[i];
  22.         array[i] = tt;
  23.        }
  24.      k = nv2;
  25.      while (k<=j)
  26.        {
  27.         j -= k;
  28.         k /= 2;
  29.        }
  30.      j += k;
  31.     }
  32.  }
  33.  //++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  34.   template void ComplexBitReverse<double>( complex<double> *array, int size);
  35.   template void ComplexBitReverse<float>( complex<float> *array, int size);