/// <summary></summary> private void Butterfly(Sample *ps, Sample *pu, Sample *oj, Sample *ok) { _smpT->Real = pu->Real * ok->Real - pu->Imag * ok->Imag; _smpT->Imag = pu->Imag * ok->Real + pu->Real * ok->Imag; ok->Real = oj->Real - _smpT->Real; oj->Real += _smpT->Real; ok->Imag = oj->Imag - _smpT->Imag; oj->Imag += _smpT->Imag; _dTemp = ps->Real * pu->Real + ps->Imag * pu->Imag; pu->Imag += ps->Imag * pu->Real - ps->Real * pu->Imag; pu->Real -= _dTemp; }
public Fourier() { _smpS = Alloc(sizeof(Sample)); _smpT = Alloc(sizeof(Sample)); _smpU = Alloc(sizeof(Sample)); // set defaults _bUnknownSize = true; _smpValues = new Sample[0]; _dPi = 4 * Math.Atan(1); _dTwoPi = _dPi + _dPi; _bProcess = true; }
/// <summary></summary> private void Free(Sample *pmem) { HeapFree(GetProcessHeap(), 0, pmem); }
private static extern bool HeapFree(IntPtr hHeap, uint dwFlags, Sample *lpMem);