我想使用 Delphi 2009 中的 FFTW C 库并根据此文档;
http://www.fftw.org/install/fftw_usage_from_delphi.txt
为了提高 FFTW 库内部的性能(以便它可以使用 SIMD 扩展),传入的 Single(float)或 Double(double)数组需要在 4 或 8 字节边界处对齐。我发现有关记录结构对齐的文档,但没有关于数组的具体内容。有没有办法在 Delphi 2009 中做到这一点。
所以代码(从上面的文档中复制)看起来像这样;
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 字节的边界,如果有的话可以明确这一点。
谢谢,布鲁斯