迁移步骤
C语言迁移步骤
用户可以通过以下两种方法将FFTW迁移到KML_FFT。
第一种:直接迁移(需要修改部分代码)。
- 使用全局替换,将带有fftw前缀的接口替换成kml_fft前缀,将带有fftwf前缀的接口替换成kml_fftf前缀,如果有使用到FFTW头文件定义的宏定义常量,也需要将FFTW前缀替换成KML_FFT前缀。将#include <fftw.h>替换成#include <kfft.h> 。
- 在编译选项中将-lfftw/-lfftwf替换为-lkfft/-lkfftf。
- 添加环境变量,/PATH_TO_KFFT为KML_FFT的安装路径。
export LD_LIBRARY_PATH=/PATH_TO_KFFT:$LD_LIBRARY_PATH
第二种:通过适配层迁移(不需要修改源码,推荐使用该方法)
- 添加环境变量,应用适配层so,替换原来软件中链接的fftw库。
export LD_LIBRARY_PATH=/PATH_TO_KML_ADAPTER/:$LD_LIBRARY_PATH
- 添加环境变量,使用kfft链接到适配层。
export LD_LIBRARY_PATH=/PATH_TO_KML_FFT/:$LD_LIBRARY_PATH
- 编译时将-llapack替换为-lklapack_full
Fortran接口迁移步骤
FFTW包含f77,f90,f03接口,其中f77接口定义与KML_FFT提供的Fortran接口不同,但内部逻辑实现基本相同。需要在KML_FFT外层封装一层适配f77的头文件。