このドキュメントによると、Delphi2009のFFTWCライブラリを使用したいと思います。
http://www.fftw.org/install/fftw_usage_from_delphi.txt
FFTWライブラリ内のパフォーマンスを向上させるには(SIMD拡張命令を使用できるように)、シングル(浮動小数点)またはダブル(ダブル)のいずれかで渡される配列は、4バイトまたは8バイトの境界で整列する必要があります。レコード構造の配置について説明しているドキュメントを見つけましたが、配列については特に何もありません。Delphi2009でこれを行う方法はありますか。
したがって、コード(上記のドキュメントからコピー)は次のようになります。
var
in, out : Array of Single; // Array aligned at 4 byte boundary
plan : Pointer;
{$APPTYPE CONSOLE}
begin
...
SetLength(in, N);
SetLength(out, N);
plan := _fftwf_plan_dft_1d(dataLength, @in[0], @out[0],
FFTW_FORWARD, FFTW_ESTIMATE);
また、上記のドキュメントでは、8バイトと16バイトの境界について説明していますが、それまでは4バイトと8バイトの境界である必要があります。
ありがとう、ブルース