原文:http://bbs.csdn.net/topics/330133751

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <math.h>
#include <time.h>
#include "fftw3.h"

#define NNx 1025
#define NNy 1025
// ================= Main ================= //
int main(int argc, char *argv[])
{
    fftw_complex *in, *out, *in2;
    fftw_plan p,q;
    clock_t start, end;
    int i=0, j=0, k=0;
    in = (fftw_complex*) fftw_malloc(sizeof(fftw_complex) *NNx*NNy );
    in2 = (fftw_complex*) fftw_malloc(sizeof(fftw_complex) *NNx*NNy );
    out = (fftw_complex*) fftw_malloc(sizeof(fftw_complex) *NNx*NNy );

for(  i=0; i < NNx*NNy; i++)
    {
        in[i][0] = i;
        in[i][1] = 0.0;
    }

start=clock();
    for( k=0; k<100; k++)
    {
    p=fftw_plan_dft_2d( NNx, NNy, in, out, FFTW_FORWARD, FFTW_ESTIMATE);
    q=fftw_plan_dft_2d( NNx, NNy, out, in2, FFTW_BACKWARD, FFTW_ESTIMATE);
    fftw_execute( p ); // repeat as needed//
    fftw_execute( q );
    }
    end=clock();
    printf(" FFTW : %f second\n", (double)  (end-start)/CLOCKS_PER_SEC  );

fftw_destroy_plan(p);
    fftw_destroy_plan(q);
    fftw_free(in);
    fftw_free(out);

system("PAUSE");
 return 0;

}

建议优化:

 // 这里初始化plan可能要花费几秒钟

    p=fftw_plan_dft_2d( NNx, NNy, in, out, FFTW_FORWARD, FFTW_MEASURE); 
    q=fftw_plan_dft_2d( NNx, NNy, out, in2, FFTW_BACKWARD, FFTW_MEASURE);
    for(  i=0; i < NNx*NNy; i++) 
    
        in[i][0] = i;
        in[i][1] = 0.0;
    
    // 以下执行部分将获得最佳性能
    start=clock(); 
    for( k=0; k <100; k++) 
    
    fftw_execute_dft( p, in, out ); 
    fftw_execute_dft( q, out, in2 ); 
    }
    end = clock();

备注:

如果in和out指针相同为原位运算,否则为非原位运算。

sign可以为正变换FFTW_FORWARD(-1),也可以为逆变换FFTW_BACKWORD(+1),实际上就是变换公式中指数项的符号。需注意FFTW的逆变换没有除以N,即数据正变换再反变换后是原始数据的N倍。

fftw_plan_dft_2d重复优化相关推荐

  1. 利用Matlab优化工具箱求解旅行商最短路径问题

    前面介绍了利用Matlab二元整数规划求解数独问题,对于另一个问题-旅行商问题也可以用它来求解. 旅行商问题就是找到经过所有站点的最短闭合路径,如下图为在美国地图框架内产生的200个旅行站点,而旅行商 ...

  2. 关于MongoDB使用的优化总结

    摘要: 综合分析之后,我们确定了仍使用MongoDB的最终的方案:"使用独立集合存储每个版本的人群包数据,集合名称中包含数据版本+无效的数据直接使用drop集合的方式进行删除". ...

  3. 热门 | Google Brain前员工深度盘点2017人工智能和深度学习各大动态

    翻译 | AI科技大本营 参与 | shawn 编辑 | Donna 2017年是人工智能井喷的一年.Google Brain团队前成员Denny Britz在自己的博客WILDML上对过去一年人工智 ...

  4. LiDAR-Camera Fusion for 3D Reconstruction

    点击上方"3D视觉工坊",选择"星标" 干货第一时间送达 本文由知乎作者robot L授权转载,不得擅自二次转载.原文链接:https://zhuanlan.z ...

  5. 《LeetCode力扣练习》第16题 C语言版 (做出来就行,别问我效率。。。。)

    库你急哇,哈集美马戏特~~ 看完题目,哦,三层循环,简单粗暴 提交之后,emm,不愧是我 本题采用和上题一样的思路,双指针,并使用排除重复优化,如果上一题做出来,这题就没什么问题了.这次在优化过程中, ...

  6. ssl1692-魔板【HSAH,bfs】

    前言 好的,首先说明一下,这里用的是字符串的方法.根据c++字符串的尿性,速度比较慢,当然也可以改成字符数组,只不过我比较懒(没错╭(╯^╰)╮) 正题 有个2*4的矩阵被称为魔板,有三种操作 &qu ...

  7. 阿里巴巴下一代云分析型数据库AnalyticDB入选Forrester Wave™ 云数仓评估报告 解读

    前言 近期, 全球权威IT咨询机构Forrester发布"The Forrester WaveTM: CloudData Warehouse Q4 2018"研究报告,阿里巴巴分析 ...

  8. 阿里下一代云分析型数据库AnalyticDB入选Forrester云化数仓象限

    前言 近期, 全球权威IT咨询机构Forrester发布"The Forrester Wave: CloudData Warehouse Q4 2018"研究报告,阿里巴巴分析型数 ...

  9. 网易云音乐评论催泪刷屏?我用Python抓取了1008328条热评告诉你为什么!

    如果再过20年,你还会记得那些年上过的网易云热评吗? 看了那么多的网易云热评,技术思维作祟,我终于也忍不住写个爬虫,用Python通过对1008328条网易云音乐热评的抓取,我们可以得出一个对百万热评 ...

最新文章

  1. Spring Cloud 2020 年路线图:二季度Spring Boot 2.3、四季度Spring Cloud Ilford
  2. 跪求AI编程语言--纯中文代码
  3. 大数据之hadoop伪集群搭建与MapReduce编程入门
  4. 【web前端优化】前端无优化,庸人自扰之!
  5. 模板标签及模板的继承与引用
  6. 前端学习(1046):todolist删除数据1
  7. linux文件权限报错实例,自定义系统service SELinux权限报错
  8. P2548 [AHOI2004]智能探险车
  9. 字符串比较函数实现,超简单的面试题,回过头来发现原来我的c多么的薄弱
  10. c++ opencv编程实现暗通道图像去雾算法_OpenCV图像处理专栏十三 | 利用多尺度融合提升图像细节...
  11. SpringCloud工作笔记070---SpringCloud中使用Redis存储List类型数据
  12. JavaScript 中的日期和时间
  13. 老师常用选择题,选择框,单选框,以及各行业产品配置表单选配置明细等
  14. 数控g71编程实例带图_数控车床编程G71 二型,编程实例
  15. 4g/5g信号远程遥控小车解决方案二
  16. 尊诺百度SEO快速排名、发包、模拟点击软件
  17. 转:vue+canvas如何实现b站萌系登录界面
  18. Android ocr识别文字介绍(文字识别)
  19. 用大数据提升食品安全
  20. Windows 10打开远程桌面的方法

热门文章

  1. Node_exporter+Prometheus+Grafana 快速实现Linux系统性能数据提取、存储和可视化展示
  2. k8s 命令 重启_快速入门Kubernetes(K8S)——资源清单
  3. python unix时间戳格式化输出_python正常时间和unix时间戳相互转换的方法
  4. 豆瓣9分以上,这7本Java经典名著,你还缺哪本?
  5. 皮一皮:这是谁的脚???
  6. 奇奇怪怪的大佬:理发店小弟到阿里P10
  7. 微信支付代金券开发包分享
  8. Windows 95 诞生 25 周年
  9. MySQL 如何优化 CPU 消耗?
  10. Spring Cloud 加盟重量级成员Spring Cloud Alibaba,打造更符合中国国情的微服务体系...