dft method

void dft(
  1. List<MathComplex> ret,
  2. int retNum,
  3. List<int> src,
  4. int srcStart,
  5. int srcNum,
)

Implementation

void dft( List<MathComplex> ret, int retNum, List<int> src, int srcStart, int srcNum ){
  double T = 6.28318530717958647692 / retNum;
  int t, x;
  double U, V;
  for( t = retNum - 1; t >= 0; t-- ){
    U = T * t;
    ret[t] = MathComplex();
    for( x = 0; x < srcNum; x++ ){
      V = U * x;
      ret[t].setReal( ret[t].real() + src[srcStart + x] * ClipMath.cos( V ) );
      ret[t].setImag( ret[t].imag() - src[srcStart + x] * ClipMath.sin( V ) );
    }
  }
}