/// <summary> /// 複素数がインターリーブされたデータを離散フーリエ変換します。 /// </summary> /// <param name="invert">逆離散フーリエ変換を行うかの真偽値。</param> /// <param name="data">複素数がインターリーブされた配列。</param> public void TransformComplex(bool invert, double[] data) { if (data == null) { throw new ArgumentNullException("data"); } if (data.Length != this.n) { throw new ArgumentOutOfRangeException("data"); } FastFourier.cdft(this.n, invert, data, this.ip, this.w); if (invert) { double f = 2.0 / this.n; for (int j = 0; j < this.n; j++) { data[j] *= f; } } }