---
title: 函数说明
description: "快速傅里叶（Fast Fourier Transform）运算库，是快速计算序列的离散傅里叶变换（DFT）或其逆变换的方法，广泛的应用于工程、科学和数学领域，将傅里叶变换计算需要的复杂度从O(n2)降到了O(n log n)，被IEEE科学与工程计算期刊列入20世纪十大算法。"
url: https://www.hikunpeng.com/document/detail/zh/kunpenghpcs/hpckit/devg/kunpengaccel_kml_0285.html
sourcePath: /source/zh/kunpenghpcs/hpckit/devg/kunpengaccel_kml_0285.html
indexId: 92b76fd768b97b9456a9aa31cfae1dd083e5002823666a824abe17347129d19f61
---
# 函数说明

快速傅里叶（Fast Fourier Transform）运算库，是快速计算序列的离散傅里叶变换（DFT）或其逆变换的方法，广泛的应用于工程、科学和数学领域，将傅里叶变换计算需要的复杂度从O(n2)降到了O(n log n)，被IEEE科学与工程计算期刊列入20世纪十大算法。

FFT（Fast Fourier Transform）库包含一系列快速傅里叶变换函数的接口标准，KML_FFT库包含以下六大类函数：

- plan函数：用于建立FFT变换的plan，plan使用完毕后需要通过调用kml_fft(f/h)_destroy_plan函数来释放。

  -     C2C变换
：复数形式到复数形式的FFT变换
  -     R2C变换
：实数形式到复数形式的FFT变换
  -     C2R变换
：复数形式到实数形式的FFT变换
  -     R2R变换
：实数形式到实数形式的FFT变换
- 变换执行函数：用于根据plan执行对应的FFT变换。
- 内存函数：内存分配、释放函数。
- 线程函数：线程初始化、资源释放相关函数。
- MPI Local Size函数：在进程间划分数据。
- MPI transposition函数：转置变换。

对于上述变换，KML_FFT库均支持：

- in-place变换（输入in与输出out是同一个指针），以及out-place变换。
- 单精度以及双精度：单精度函数以kml_fftf_为函数前缀，双精度函数以kml_fft_为函数前缀。其中，  单进程函数定义
和  多进程函数定义
的函数说明以双精度为例进行说明。
- planning选项：对于plan函数，参数flags支持选择ESTIMATE模式或PATIENT模式

  - ESTIMATE模式：不对不同算法进行实际计算评估，快速选择一个变换方案，可能不是最优的。
  - PATIENT模式：实际评估计算多个变换方案，并测量其执行时间，期望得到一个更优的变换方案，代价是plan函数耗时会增加。

以下接口仅适用于Taishan 200 1280 V2和Taishan 200 2280 V2服务器。

- C Interface以“kml_ffth”开头的接口
- Fortran Interface以“RES = KML_FFTH”的接口
