我试图让kiss fft使用visual studio 2013在同一个应用程序中编译float和double实现。我看到我需要做的就是将kiss_fft_scalar设置为double并重新编译以获得double。
为此,我整理了一个标头,其中包含带有 Kiss_fft_scalar 的标头在 2 个不同的命名空间中更改,如下所示:
namespace KissFloat
{
#undef KISS_FFT_H
#undef KISS_FTR_H
#define kiss_fft_scalar float
#include "kiss_fft.h"
#include "tools/kiss_fftr.h"
};
namespace KissDouble
{
#undef KISS_FFT_H
#undef KISS_FTR_H
#define kiss_fft_scalar double
#include "kiss_fft.h"
#include "tools/kiss_fftr.h"
};
但是,我无法弄清楚如何包含 cpp 代码。我试过单独的 KissFloat 和 KissDouble 文件。然后我在 cpp 文件中尝试了一些东西,但我尝试的一切都以编译错误结束。通常与结构重定义有关。
任何人都可以想出一种方法来完成这项工作吗?还是我最好使用模板重写kiss fft?