fftw_plan_dft_2d重复优化
原文: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重复优化相关推荐
- 利用Matlab优化工具箱求解旅行商最短路径问题
前面介绍了利用Matlab二元整数规划求解数独问题,对于另一个问题-旅行商问题也可以用它来求解. 旅行商问题就是找到经过所有站点的最短闭合路径,如下图为在美国地图框架内产生的200个旅行站点,而旅行商 ...
- 关于MongoDB使用的优化总结
摘要: 综合分析之后,我们确定了仍使用MongoDB的最终的方案:"使用独立集合存储每个版本的人群包数据,集合名称中包含数据版本+无效的数据直接使用drop集合的方式进行删除". ...
- 热门 | Google Brain前员工深度盘点2017人工智能和深度学习各大动态
翻译 | AI科技大本营 参与 | shawn 编辑 | Donna 2017年是人工智能井喷的一年.Google Brain团队前成员Denny Britz在自己的博客WILDML上对过去一年人工智 ...
- LiDAR-Camera Fusion for 3D Reconstruction
点击上方"3D视觉工坊",选择"星标" 干货第一时间送达 本文由知乎作者robot L授权转载,不得擅自二次转载.原文链接:https://zhuanlan.z ...
- 《LeetCode力扣练习》第16题 C语言版 (做出来就行,别问我效率。。。。)
库你急哇,哈集美马戏特~~ 看完题目,哦,三层循环,简单粗暴 提交之后,emm,不愧是我 本题采用和上题一样的思路,双指针,并使用排除重复优化,如果上一题做出来,这题就没什么问题了.这次在优化过程中, ...
- ssl1692-魔板【HSAH,bfs】
前言 好的,首先说明一下,这里用的是字符串的方法.根据c++字符串的尿性,速度比较慢,当然也可以改成字符数组,只不过我比较懒(没错╭(╯^╰)╮) 正题 有个2*4的矩阵被称为魔板,有三种操作 &qu ...
- 阿里巴巴下一代云分析型数据库AnalyticDB入选Forrester Wave™ 云数仓评估报告 解读
前言 近期, 全球权威IT咨询机构Forrester发布"The Forrester WaveTM: CloudData Warehouse Q4 2018"研究报告,阿里巴巴分析 ...
- 阿里下一代云分析型数据库AnalyticDB入选Forrester云化数仓象限
前言 近期, 全球权威IT咨询机构Forrester发布"The Forrester Wave: CloudData Warehouse Q4 2018"研究报告,阿里巴巴分析型数 ...
- 网易云音乐评论催泪刷屏?我用Python抓取了1008328条热评告诉你为什么!
如果再过20年,你还会记得那些年上过的网易云热评吗? 看了那么多的网易云热评,技术思维作祟,我终于也忍不住写个爬虫,用Python通过对1008328条网易云音乐热评的抓取,我们可以得出一个对百万热评 ...
最新文章
- Spring Cloud 2020 年路线图:二季度Spring Boot 2.3、四季度Spring Cloud Ilford
- 跪求AI编程语言--纯中文代码
- 大数据之hadoop伪集群搭建与MapReduce编程入门
- 【web前端优化】前端无优化,庸人自扰之!
- 模板标签及模板的继承与引用
- 前端学习(1046):todolist删除数据1
- linux文件权限报错实例,自定义系统service SELinux权限报错
- P2548 [AHOI2004]智能探险车
- 字符串比较函数实现,超简单的面试题,回过头来发现原来我的c多么的薄弱
- c++ opencv编程实现暗通道图像去雾算法_OpenCV图像处理专栏十三 | 利用多尺度融合提升图像细节...
- SpringCloud工作笔记070---SpringCloud中使用Redis存储List类型数据
- JavaScript 中的日期和时间
- 老师常用选择题,选择框,单选框,以及各行业产品配置表单选配置明细等
- 数控g71编程实例带图_数控车床编程G71 二型,编程实例
- 4g/5g信号远程遥控小车解决方案二
- 尊诺百度SEO快速排名、发包、模拟点击软件
- 转:vue+canvas如何实现b站萌系登录界面
- Android ocr识别文字介绍(文字识别)
- 用大数据提升食品安全
- Windows 10打开远程桌面的方法
热门文章
- Node_exporter+Prometheus+Grafana 快速实现Linux系统性能数据提取、存储和可视化展示
- k8s 命令 重启_快速入门Kubernetes(K8S)——资源清单
- python unix时间戳格式化输出_python正常时间和unix时间戳相互转换的方法
- 豆瓣9分以上,这7本Java经典名著,你还缺哪本?
- 皮一皮:这是谁的脚???
- 奇奇怪怪的大佬:理发店小弟到阿里P10
- 微信支付代金券开发包分享
- Windows 95 诞生 25 周年
- MySQL 如何优化 CPU 消耗?
- Spring Cloud 加盟重量级成员Spring Cloud Alibaba,打造更符合中国国情的微服务体系...