亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? bflymacro.h

?? FFT算法c程序for ARM
?? H
字號:
/* bflymacro.h   Contains macros for radix-4/5 butterflies,   and some useful derivates. Most routines are based   on the algorithms in "Fast algorithms for digital    signal processing" by Richard E. Blahut, published   by Addison-Wesley Publishing Company.   The macros are optimized for ARM CPUs, but should   work well on any register-rich architecture.   Created: 20001227, JDB.   This program is free software; you can redistribute it and/or modify   it under the terms of the GNU General Public License as published by   the Free Software Foundation; either version 2 of the License, or   (at your option) any later version.      This program is distributed in the hope that it will be useful,   but WITHOUT ANY WARRANTY; without even the implied warranty of   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the   GNU General Public License for more details.      You should have received a copy of the GNU General Public License   along with this program; if not, write to the Free Software   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA   Copyright (C)2001 Jan-Derk Bakker, jdb@lartmaker.nl*/#ifndef __BFLYMACRO__#define __BFLYMACRO__/* All DI*_BFLY4* macros require register fixpoint r0...r7 and accu to   be declared in the including function. */#define BFLY4CORE do {   	\	r0 = r0 + r4;				\	r1 = r1 + r5;				\	r4 = r0 - (r4 << 1);			\	r5 = r1 - (r5 << 1);			\	r2 = r2 + r6;				\	r3 = r3 + r7;				\	r6 = r2 - (r6 << 1);			\	r7 = r3 - (r7 << 1);			\	r0 = r0 + r2;				\	r1 = r1 + r3;				\	r2 = r0 - (r2 << 1);			\	r3 = r1 - (r3 << 1);			\	/* 12 insns */				\						\	r4 = r4 + r7;				\	r5 = r5 + r6;				\	r6 = r5 - (r6 << 1);			\	r7 = r4 - (r7 << 1);			\	/* 4 insns */				\     } while(0)#define DIF_LOAD4(INBUF,BASE,STRIDE) do {   	        \						\	r0 = INBUF[BASE];	       		\	r1 = INBUF[BASE + 1];			\	r2 = INBUF[BASE + 2*STRIDE];		\	r3 = INBUF[BASE + 2*STRIDE + 1];		\	r4 = INBUF[BASE + 4*STRIDE];		\	r5 = INBUF[BASE + 4*STRIDE + 1];		\	r6 = INBUF[BASE + 6*STRIDE];		\	r7 = INBUF[BASE + 6*STRIDE + 1];		\	/* 8 insns */				\     } while(0)#define DIF_BFLY4(INBUF,OUTBUF,BASE,STRIDE,SHIFT,TWIDDLE) do {   	        \						\	DIF_LOAD4(INBUF,BASE,STRIDE);   		\	BFLY4CORE;   		\						\	r0 >>= SHIFT;				\	r1 >>= SHIFT;				\	OUTBUF[BASE] = r0;		       	\	OUTBUF[BASE + 1] = r1;			\	r0 = *TWIDDLE++;				\	r1 = *TWIDDLE++;				\	accu = r4 * r1;				\	accu = r6 * r0 + accu;			\	accu >>= (SHIFT + EXP);				\	OUTBUF[BASE + 2*STRIDE + 1] = accu;		\	r1 = -r1;				\	accu = r6 * r1;				\	accu = r4 * r0 + accu;			\	accu >>= (SHIFT + EXP);				\	OUTBUF[BASE + 2*STRIDE] = accu;		\	r0 = *TWIDDLE++;				\	r1 = *TWIDDLE++;				\	accu = r2 * r1;				\	accu = r3 * r0 + accu;			\	accu >>= (SHIFT + EXP);				\	OUTBUF[BASE + 4*STRIDE + 1] = accu;		\	r1 = -r1;				\	accu = r3 * r1;				\	accu = r2 * r0 + accu;			\	accu >>= (SHIFT + EXP);				\	OUTBUF[BASE + 4*STRIDE] = accu;		\	r0 = *TWIDDLE++;				\	r1 = *TWIDDLE++;				\	accu = r7 * r1;				\	accu = r5 * r0 + accu;			\	accu >>= (SHIFT + EXP);				\	OUTBUF[BASE + 6*STRIDE + 1] = accu;		\	r1 = -r1;				\	accu = r5 * r1;				\	accu = r7 * r0 + accu;			\	accu >>= (SHIFT + EXP);				\	OUTBUF[BASE + 6*STRIDE] = accu;		\	/* 37 insns */				\     } while(0)#define DIF_BFLY4NOMUL(INBUF,OUTBUF,BASE,STRIDE,SHIFT) do { \						\	DIF_LOAD4(INBUF,BASE,STRIDE);   		\	BFLY4CORE;   		\						\	r0 >>= SHIFT;				\	r1 >>= SHIFT;				\	OUTBUF[BASE] = r0;		       	\	OUTBUF[BASE + 1] = r1;			\	r4 >>= SHIFT;				\	r6 >>= SHIFT;				\	OUTBUF[BASE + 2*STRIDE] = r4;		\	OUTBUF[BASE + 2*STRIDE + 1] = r6;		\	r2 >>= SHIFT;				\	r3 >>= SHIFT;				\	OUTBUF[BASE + 4*STRIDE] = r2;		\	OUTBUF[BASE + 4*STRIDE + 1] = r3;		\	r7 >>= SHIFT;				\	r5 >>= SHIFT;				\	OUTBUF[BASE + 6*STRIDE] = r7;		\	OUTBUF[BASE + 6*STRIDE + 1] = r5;		\	/* 16 insns */				\     } while(0)/* Radix-4 Decimation-in-time macros */#define DIT_STORE4(OUTBUF,BASE,STRIDE) do {   	        \						\	OUTBUF[BASE] = r0;		       	\	OUTBUF[BASE + 1] = r1;			\	OUTBUF[BASE + 2*STRIDE] = r4;		\	OUTBUF[BASE + 2*STRIDE + 1] = r6;		\	OUTBUF[BASE + 4*STRIDE] = r2;		\	OUTBUF[BASE + 4*STRIDE + 1] = r3;		\	OUTBUF[BASE + 6*STRIDE] = r7;		\	OUTBUF[BASE + 6*STRIDE + 1] = r5;		\	/* 8 insns */				\     } while(0)#define DIT_BFLY4(INBUF,OUTBUF,BASE,STRIDE,SHIFT,TWIDDLE) do {   	        \						\	r2 = INBUF[BASE + 2*STRIDE];		\	r3 = INBUF[BASE + 2*STRIDE + 1];		\	r0 = *TWIDDLE++;				\	r1 = *TWIDDLE++;				\	accu = r2 * r1;				\	r1 = -r1;				\	r1 = r3 * r1;				\	r2 = r2 * r0 + r1;			\	r3 = r3 * r0 + accu;			\	r2 >>= (SHIFT + EXP);		\	r3 >>= (SHIFT + EXP);		\	/* 11 insns */				\						\	r4 = INBUF[BASE + 2*STRIDE];		\	r5 = INBUF[BASE + 2*STRIDE + 1];		\	r0 = *TWIDDLE++;				\	r1 = *TWIDDLE++;				\	accu = r4 * r1;				\	r1 = -r1;				\	r1 = r5 * r1;				\	r4 = r4 * r0 + r1;			\	r5 = r5 * r0 + accu;			\	r4 >>= (SHIFT + EXP);		\	r5 >>= (SHIFT + EXP);		\	/* 11 insns */				\						\	r6 = INBUF[BASE + 2*STRIDE];		\	r7 = INBUF[BASE + 2*STRIDE + 1];		\	r0 = *TWIDDLE++;				\	r1 = *TWIDDLE++;				\	accu = r6 * r1;				\	r1 = -r1;				\	r1 = r7 * r1;				\	r6 = r6 * r0 + r1;			\	r7 = r7 * r0 + accu;			\	r6 >>= (SHIFT + EXP);		\	r7 >>= (SHIFT + EXP);		\	/* 11 insns */				\						\	r0 = INBUF[BASE];	       		\	r1 = INBUF[BASE + 1];			\	/* 2 insns */				\						\	BFLY4CORE;   		\	DIT_STORE4(OUTBUF,BASE,STRIDE);		       	\						\     } while(0)#define DIT_BFLY4NOMUL(INBUF,OUTBUF,BASE,STRIDE,SHIFT) do { \						\	r0 = INBUF[BASE];	       		\	r1 = INBUF[BASE + 1];			\	r2 = INBUF[BASE + 2*STRIDE];		\	r3 = INBUF[BASE + 2*STRIDE + 1];		\	r4 = INBUF[BASE + 4*STRIDE];		\	r5 = INBUF[BASE + 4*STRIDE + 1];		\	r6 = INBUF[BASE + 6*STRIDE];		\	r7 = INBUF[BASE + 6*STRIDE + 1];		\	r0 >>= SHIFT;				\	r1 >>= SHIFT;				\	r2 >>= SHIFT;				\	r3 >>= SHIFT;				\	r4 >>= SHIFT;				\	r5 >>= SHIFT;				\	r6 >>= SHIFT;				\	r7 >>= SHIFT;				\	/* 16 insns */				\						\	BFLY4CORE;   		\	DIT_STORE4(OUTBUF,BASE,STRIDE);		       	\						\     } while(0)/* DIF_BFLY5NOMUL requires register fixpoint r0...r10 to be declared.   Note that DIF_BFLY5NOMUL auto-increments IOBUF; as BFLY5NOMUL is    normally only used in the final stage of a Decimation-in-frequency   FFT this is not a problem. */#define DIF_BFLY5NOMUL(IOBUF,SHIFT) do {		\	r0 = IOBUF[0];				\	r1 = IOBUF[1];				\	r2 = IOBUF[2];				\	r3 = IOBUF[3];				\	r4 = IOBUF[4];				\	r5 = IOBUF[5];				\	r6 = IOBUF[6];				\	r7 = IOBUF[7];				\	r8 = IOBUF[8];				\	r9 = IOBUF[9];				\	/* 10 insns */				\						\	r2 = r2 + r8;				\	r3 = r3 + r9;				\	r8 = r2 - (r8 << 1);			\	r9 = r3 - (r9 << 1);			\	r6 = r6 + r4;				\	r7 = r7 + r5;				\	r4 = r6 - (r4 << 1);			\	r5 = r7 - (r5 << 1);			\	r2 = r2 + r6;				\	r3 = r3 + r7;				\	r6 = r2 - (r6 << 1);			\	r7 = r3 - (r7 << 1);			\	r0 = r0 + r2;				\	r1 = r1 + r3;				\	/* 14 insns */				\						\	r10 = B[0];				\	r0 = r0 * r10; 				\	r1 = r1 * r10; 				\	r10 = B[1];				\	r2 = r0 + r2 * r10;    			\	r3 = r1 + r3 * r10;    			\	r0 >>= (EXP + SHIFT);			\	r1 >>= (EXP + SHIFT);			\	*IOBUF++ = r0;				\	*IOBUF++ = r1;				\	/* 10 insns */				\						\	/* Reuse of r0/1 ! */			\	r0 = r4 + r8;				\	r1 = r5 + r9;				\	r10 = B[2];				\	r6 = r6 * r10; 				\	r7 = r7 * r10; 				\	r10 = B[3];				\	r0 = r0 * r10; 				\	r1 = r1 * r10; 				\	r10 = B[4];				\	r4 = r4 * r10; 				\	r5 = r5 * r10; 				\	r10 = B[5];				\	r8 = r0 + r8 * r10; 	       		\	r9 = r1 + r9 * r10;	       		\	/* 14 insns */				\						\	r2 = r2 + r6;				\	r3 = r3 + r7;				\	r6 = r2 - (r6 << 1);			\	r7 = r3 - (r7 << 1);			\	r4 = r0 - r4;				\	r5 = r1 - r5;				\	r2 = r2 + r5;				\	r3 = r3 - r4;				\	r5 = r2 - (r5 << 1);			\	r4 = r3 + (r4 << 1);			\	r6 = r6 + r9;				\	r7 = r7 - r8;				\	r9 = r6 - (r9 << 1);			\	r8 = r7 + (r8 << 1);			\	/* 14 insns */				\						\	r5 >>= (EXP + SHIFT);			\	r4 >>= (EXP + SHIFT);			\	r9 >>= (EXP + SHIFT);			\	r8 >>= (EXP + SHIFT);			\	r6 >>= (EXP + SHIFT);			\	r7 >>= (EXP + SHIFT);			\	r2 >>= (EXP + SHIFT);			\        r3 >>= (EXP + SHIFT);			\	*IOBUF++ = r5;				\	*IOBUF++ = r4;				\	*IOBUF++ = r9;				\	*IOBUF++ = r8;				\	*IOBUF++ = r6;				\	*IOBUF++ = r7;				\	*IOBUF++ = r2;				\	*IOBUF++ = r3;				\	/* 16 insns */				\      } while(0)#endif /* __BFLYMACRO__ */

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品久久福利| 2020国产精品久久精品美国| 国产凹凸在线观看一区二区| 麻豆精品新av中文字幕| 蜜臀av一区二区| 蜜臀国产一区二区三区在线播放| 亚洲一区二区在线免费观看视频| 亚洲欧美日韩国产一区二区三区| 亚洲欧洲国产日韩| 一区二区三区在线免费视频| 亚洲精品视频观看| 亚洲狠狠爱一区二区三区| 一区二区三区.www| 日韩成人伦理电影在线观看| 玖玖九九国产精品| 成人午夜免费av| 色婷婷一区二区| 欧美理论电影在线| 久久久欧美精品sm网站| 欧美国产激情一区二区三区蜜月 | 国内成+人亚洲+欧美+综合在线| 久久精品国产亚洲a| 国产精品一级黄| 成人aa视频在线观看| 欧美午夜电影网| 日韩欧美在线网站| 中文一区二区在线观看| 一区二区三区资源| 久久精品国产99国产| 成人免费毛片a| 欧美一二区视频| 亚洲国产精品精华液ab| 亚洲一区二区三区四区五区中文| 日韩国产精品大片| av一区二区三区在线| 视频在线在亚洲| 一区二区三区加勒比av| 免费观看在线色综合| 成人午夜大片免费观看| 在线看日韩精品电影| 精品免费国产二区三区 | 51午夜精品国产| 国产亚洲一区二区三区四区| 亚洲免费观看在线视频| 久久av资源站| 欧美午夜电影网| 中文字幕一区免费在线观看| 五月天久久比比资源色| 99久久精品一区二区| 欧美tickle裸体挠脚心vk| 亚洲精品第一国产综合野| 国产精品综合视频| 日韩三级中文字幕| 亚洲免费av观看| www.视频一区| 国产亚洲欧美在线| 麻豆极品一区二区三区| 欧美日本国产一区| 中文字幕亚洲一区二区av在线| 久久精品99国产国产精| 欧美日韩精品一区二区| 亚洲日本青草视频在线怡红院| 国产成人精品综合在线观看| 精品国产a毛片| 国内成+人亚洲+欧美+综合在线| 4hu四虎永久在线影院成人| 亚洲综合小说图片| 欧美在线一二三| 亚洲激情图片小说视频| 91蝌蚪国产九色| 国产精品成人免费在线| 成人国产亚洲欧美成人综合网| 精品成人一区二区三区四区| 麻豆一区二区三| 欧美va亚洲va国产综合| 狠狠久久亚洲欧美| 26uuu精品一区二区在线观看| 蜜桃久久久久久| 久久久综合视频| 国产成人精品www牛牛影视| 中文字幕精品三区| av在线不卡观看免费观看| 欧美激情自拍偷拍| 99国产欧美另类久久久精品| 亚洲乱码国产乱码精品精可以看| 91麻豆免费视频| 亚洲国产精品一区二区久久恐怖片| 91麻豆福利精品推荐| 午夜精品一区二区三区电影天堂| 欧美性感一区二区三区| 日韩电影在线一区二区三区| 日韩一区二区电影网| 国产一区二区视频在线播放| 欧美激情中文字幕一区二区| 97久久超碰国产精品| 亚洲国产中文字幕| 欧美成人女星排行榜| 懂色av一区二区在线播放| 亚洲色图一区二区| 91精品国产综合久久精品| 国产一区二区三区在线观看免费 | 亚洲欧美视频在线观看视频| 91在线云播放| 麻豆一区二区三区| 亚洲天堂精品在线观看| 91精品国产综合久久久久久久久久| 蓝色福利精品导航| 伊人婷婷欧美激情| 精品日韩在线观看| 一本一道久久a久久精品综合蜜臀| 爽爽淫人综合网网站| 日本一区二区三级电影在线观看 | 99久久精品免费| 天天免费综合色| 国产精品欧美一级免费| 欧美日韩不卡一区| 成人ar影院免费观看视频| 日韩精品一级二级 | 日韩一区二区影院| 91在线你懂得| 国产乱码精品1区2区3区| 亚洲成a人v欧美综合天堂下载| 国产亚洲精品免费| 欧美一区二区视频免费观看| 成人手机在线视频| 玖玖九九国产精品| 天天综合天天综合色| 亚洲欧美另类小说视频| 国产亚洲美州欧州综合国| 在线电影国产精品| 色狠狠桃花综合| av激情亚洲男人天堂| 国产精品一区二区久久精品爱涩| 亚洲444eee在线观看| 怡红院av一区二区三区| 中文字幕一区二区三区乱码在线 | 在线电影国产精品| 日本乱人伦一区| 成人福利视频网站| 国产精品性做久久久久久| 精品一二线国产| 日韩激情一区二区| 日韩av电影一区| 三级一区在线视频先锋| 亚洲午夜国产一区99re久久| 亚洲美女区一区| 亚洲乱码国产乱码精品精的特点| 国产精品亲子乱子伦xxxx裸| 国产精品午夜免费| 欧美国产精品一区| 国产精品人人做人人爽人人添| 久久麻豆一区二区| 中文成人综合网| 亚洲欧美一区二区三区久本道91| 国产精品女同一区二区三区| 国产精品嫩草影院com| 国产精品女同互慰在线看| 国产精品久久网站| 亚洲欧美电影一区二区| 亚洲情趣在线观看| 午夜影院久久久| 日韩av二区在线播放| 黑人巨大精品欧美黑白配亚洲| 国产资源在线一区| 99亚偷拍自图区亚洲| 色综合色综合色综合| 欧美亚洲国产一区在线观看网站| 欧美色电影在线| 精品日韩在线观看| 国产精品污网站| 亚洲精品国产无套在线观| 午夜精品在线视频一区| 极品少妇一区二区| 91老司机福利 在线| 欧美日韩成人在线一区| 精品福利在线导航| 国产精品麻豆视频| 午夜精品免费在线观看| 日本少妇一区二区| 国产成人精品www牛牛影视| 色综合久久综合| 亚洲精品在线免费观看视频| 国产日韩欧美制服另类| 一区二区三区成人在线视频| 久久成人18免费观看| av午夜一区麻豆| 日韩欧美一区二区在线视频| 国产日韩v精品一区二区| 亚洲国产精品一区二区www在线 | 亚洲影视在线播放| 精品影视av免费| 色美美综合视频| 久久久不卡网国产精品二区 | 久久久久综合网| 一二三四社区欧美黄| 国产真实精品久久二三区| 欧美午夜精品一区二区蜜桃| 欧美激情在线免费观看| 日韩电影免费在线观看网站| 97精品久久久久中文字幕|