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

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

?? fftrealpassdirect.hpp

?? Real Value FFT Algorithm
?? HPP
字號:
/*****************************************************************************

        FFTRealPassDirect.hpp
        Copyright (c) 2005 Laurent de Soras

--- Legal stuff ---

This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 of the License, or (at your option) any later version.

This library 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
Lesser General Public License for more details.

You should have received a copy of the GNU Lesser General Public
License along with this library; if not, write to the Free Software
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA

*Tab=3***********************************************************************/



#if defined (FFTRealPassDirect_CURRENT_CODEHEADER)
	#error Recursive inclusion of FFTRealPassDirect code header.
#endif
#define	FFTRealPassDirect_CURRENT_CODEHEADER

#if ! defined (FFTRealPassDirect_CODEHEADER_INCLUDED)
#define	FFTRealPassDirect_CODEHEADER_INCLUDED



/*\\\ INCLUDE FILES \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\*/

#include	"FFTRealUseTrigo.h"



/*\\\ PUBLIC \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\*/



template <>
void	FFTRealPassDirect <1>::process (long len, DataType dest_ptr [], DataType src_ptr [], const DataType x_ptr [], const DataType cos_ptr [], long cos_len, const long br_ptr [], OscType osc_list [])
{
	// First and second pass at once
	const long		qlen = len >> 2;

	long				coef_index = 0;
	do
	{
		// To do: unroll the loop (2x).
		const long		ri_0 = br_ptr [coef_index >> 2];
		const long		ri_1 = ri_0 + 2 * qlen;	// bit_rev_lut_ptr [coef_index + 1];
		const long		ri_2 = ri_0 + 1 * qlen;	// bit_rev_lut_ptr [coef_index + 2];
		const long		ri_3 = ri_0 + 3 * qlen;	// bit_rev_lut_ptr [coef_index + 3];

		DataType	* const	df2 = dest_ptr + coef_index;
		df2 [1] = x_ptr [ri_0] - x_ptr [ri_1];
		df2 [3] = x_ptr [ri_2] - x_ptr [ri_3];

		const DataType	sf_0 = x_ptr [ri_0] + x_ptr [ri_1];
		const DataType	sf_2 = x_ptr [ri_2] + x_ptr [ri_3];

		df2 [0] = sf_0 + sf_2;
		df2 [2] = sf_0 - sf_2;

		coef_index += 4;
	}
	while (coef_index < len);
}

template <>
void	FFTRealPassDirect <2>::process (long len, DataType dest_ptr [], DataType src_ptr [], const DataType x_ptr [], const DataType cos_ptr [], long cos_len, const long br_ptr [], OscType osc_list [])
{
	// Executes "previous" passes first. Inverts source and destination buffers
	FFTRealPassDirect <1>::process (
		len,
		src_ptr,
		dest_ptr,
		x_ptr,
		cos_ptr,
		cos_len,
		br_ptr,
		osc_list
	);

	// Third pass
	const DataType	sqrt2_2 = DataType (SQRT2 * 0.5);

	long				coef_index = 0;
	do
	{
		dest_ptr [coef_index    ] = src_ptr [coef_index] + src_ptr [coef_index + 4];
		dest_ptr [coef_index + 4] = src_ptr [coef_index] - src_ptr [coef_index + 4];
		dest_ptr [coef_index + 2] = src_ptr [coef_index + 2];
		dest_ptr [coef_index + 6] = src_ptr [coef_index + 6];

		DataType			v;

		v = (src_ptr [coef_index + 5] - src_ptr [coef_index + 7]) * sqrt2_2;
		dest_ptr [coef_index + 1] = src_ptr [coef_index + 1] + v;
		dest_ptr [coef_index + 3] = src_ptr [coef_index + 1] - v;

		v = (src_ptr [coef_index + 5] + src_ptr [coef_index + 7]) * sqrt2_2;
		dest_ptr [coef_index + 5] = v + src_ptr [coef_index + 3];
		dest_ptr [coef_index + 7] = v - src_ptr [coef_index + 3];

		coef_index += 8;
	}
	while (coef_index < len);
}

template <int PASS>
void	FFTRealPassDirect <PASS>::process (long len, DataType dest_ptr [], DataType src_ptr [], const DataType x_ptr [], const DataType cos_ptr [], long cos_len, const long br_ptr [], OscType osc_list [])
{
	// Executes "previous" passes first. Inverts source and destination buffers
	FFTRealPassDirect <PASS - 1>::process (
		len,
		src_ptr,
		dest_ptr,
		x_ptr,
		cos_ptr,
		cos_len,
		br_ptr,
		osc_list
	);

	const long		dist = 1L << (PASS - 1);
	const long		c1_r = 0;
	const long		c1_i = dist;
	const long		c2_r = dist * 2;
	const long		c2_i = dist * 3;
	const long		cend = dist * 4;
	const long		table_step = cos_len >> (PASS - 1);

   enum {	TRIGO_OSC		= PASS - FFTRealFixLenParam::TRIGO_BD_LIMIT	};
	enum {	TRIGO_DIRECT	= (TRIGO_OSC >= 0) ? 1 : 0	};

	long				coef_index = 0;
	do
	{
		const DataType	* const	sf = src_ptr + coef_index;
		DataType			* const	df = dest_ptr + coef_index;

		// Extreme coefficients are always real
		df [c1_r] = sf [c1_r] + sf [c2_r];
		df [c2_r] = sf [c1_r] - sf [c2_r];
		df [c1_i] = sf [c1_i];
		df [c2_i] = sf [c2_i];

		FFTRealUseTrigo <TRIGO_DIRECT>::prepare (osc_list [TRIGO_OSC]);

		// Others are conjugate complex numbers
		for (long i = 1; i < dist; ++ i)
		{
			DataType			c;
			DataType			s;
			FFTRealUseTrigo <TRIGO_DIRECT>::iterate (
				osc_list [TRIGO_OSC],
				c,
				s,
				cos_ptr,
				i * table_step,
				(dist - i) * table_step
			);

			const DataType	sf_r_i = sf [c1_r + i];
			const DataType	sf_i_i = sf [c1_i + i];

			const DataType	v1 = sf [c2_r + i] * c - sf [c2_i + i] * s;
			df [c1_r + i] = sf_r_i + v1;
			df [c2_r - i] = sf_r_i - v1;

			const DataType	v2 = sf [c2_r + i] * s + sf [c2_i + i] * c;
			df [c2_r + i] = v2 + sf_i_i;
			df [cend - i] = v2 - sf_i_i;
		}

		coef_index += cend;
	}
	while (coef_index < len);
}



/*\\\ PROTECTED \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\*/



/*\\\ PRIVATE \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\*/



#endif	// FFTRealPassDirect_CODEHEADER_INCLUDED

#undef FFTRealPassDirect_CURRENT_CODEHEADER



/*\\\ EOF \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\*/

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
高清久久久久久| 韩国精品免费视频| 久久不见久久见免费视频7| 丰满白嫩尤物一区二区| 欧美日韩精品高清| 中文字幕一区二| 久久99精品久久只有精品| 一本一道综合狠狠老| 久久精品视频免费观看| 日本成人在线看| 欧美亚洲高清一区| 中文字幕亚洲视频| 国产一区二区三区免费在线观看| 在线欧美一区二区| 国产天堂亚洲国产碰碰| 美女www一区二区| 欧美群妇大交群的观看方式| 亚洲欧美另类久久久精品| 丁香六月综合激情| 亚洲精品在线免费播放| 日本亚洲最大的色成网站www| 色综合久久九月婷婷色综合| 亚洲欧洲无码一区二区三区| 国产成人精品影视| 精品国产乱码久久久久久夜甘婷婷| 亚洲电影第三页| 欧美亚洲动漫制服丝袜| 亚洲高清不卡在线| 欧美日韩在线观看一区二区| 一级日本不卡的影视| 99久久99久久久精品齐齐| 国产精品麻豆一区二区| 99在线视频精品| 中文字幕在线视频一区| 成人午夜视频在线| 中文字幕一区二区三区在线播放| va亚洲va日韩不卡在线观看| 亚洲欧洲性图库| 色欧美日韩亚洲| 亚洲一区二区三区四区中文字幕| 在线欧美日韩国产| 首页综合国产亚洲丝袜| 欧美一二三区在线| 精品一区二区三区免费观看| 亚洲精品一区二区精华| 国产成人精品aa毛片| 成人欧美一区二区三区在线播放| av综合在线播放| 亚洲午夜免费视频| 日韩视频一区二区在线观看| 国产美女视频一区| 国产精品全国免费观看高清| 99re8在线精品视频免费播放| 亚洲免费观看高清在线观看| 欧美性受xxxx| 久久精品国产色蜜蜜麻豆| 亚洲精品在线电影| 国产高清亚洲一区| 亚洲国产精品一区二区尤物区| 91麻豆精品国产91久久久久久| 久久国产精品第一页| 国产亚洲欧洲997久久综合 | 免费观看一级欧美片| 久久九九99视频| 日本精品免费观看高清观看| 午夜久久久久久久久| 精品国产一区二区三区忘忧草 | 91女厕偷拍女厕偷拍高清| 亚洲一级片在线观看| www激情久久| 91久久精品一区二区| 美国一区二区三区在线播放| 成人免费小视频| 精品国产免费视频| 97精品视频在线观看自产线路二| 日韩av不卡一区二区| 国产精品超碰97尤物18| 91精品国产乱码| 91欧美一区二区| 国产最新精品精品你懂的| 亚洲精品国产a| 国产欧美一区二区精品秋霞影院| 欧美最猛性xxxxx直播| 国产酒店精品激情| 丝袜亚洲另类丝袜在线| 日韩毛片精品高清免费| 久久在线观看免费| 欧美一区二区性放荡片| 色成年激情久久综合| 国产黄色成人av| 老司机午夜精品| 爽好多水快深点欧美视频| 亚洲卡通动漫在线| 国产精品色噜噜| 久久久久久黄色| 亚洲精品在线免费观看视频| 欧美日韩国产影片| 色综合一个色综合| fc2成人免费人成在线观看播放| 久久精品国产一区二区三区免费看| 亚洲永久免费av| 亚洲日本丝袜连裤袜办公室| 中文文精品字幕一区二区| 日韩精品中文字幕一区| 欧美曰成人黄网| 色婷婷av久久久久久久| 成人的网站免费观看| 国产成人av电影免费在线观看| 美女任你摸久久| 久久精品国产亚洲a| 美腿丝袜亚洲色图| 久久精品国产99国产精品| 日本特黄久久久高潮| 欧美a级一区二区| 日本少妇一区二区| 美女一区二区三区| 国产在线看一区| 国产一区二区视频在线| 国产真实乱子伦精品视频| 久久91精品国产91久久小草| 九色|91porny| 国产一区二区91| 成人av资源网站| 91丨九色丨黑人外教| 色综合网站在线| 欧美三级电影在线观看| 欧美伊人精品成人久久综合97| 91黄色免费版| 欧美日韩国产首页| 日韩欧美亚洲国产另类| 欧美va亚洲va国产综合| 久久久久久久久蜜桃| 国产精品久久二区二区| 亚洲精品视频一区二区| 亚洲一区二区三区不卡国产欧美| 亚洲图片一区二区| 麻豆精品精品国产自在97香蕉| 激情都市一区二区| 99这里只有久久精品视频| 久久久天堂av| 国产成人久久精品77777最新版本| 日本在线观看不卡视频| 麻豆91精品视频| 国产一区二区福利| 94-欧美-setu| 欧美日韩精品综合在线| 欧美一卡二卡三卡| 国产日产欧美一区二区视频| 亚洲人123区| 免费在线观看日韩欧美| 国产精品亚洲一区二区三区妖精| 国产成人a级片| 欧美色图第一页| 精品国产百合女同互慰| 最新中文字幕一区二区三区| 亚洲成a人v欧美综合天堂下载| 免费在线观看视频一区| 成人黄动漫网站免费app| 在线成人免费观看| fc2成人免费人成在线观看播放| 99久久久精品免费观看国产蜜| 欧洲在线/亚洲| 26uuu国产在线精品一区二区| 国产精品超碰97尤物18| 免费观看在线综合色| 99在线精品一区二区三区| 555www色欧美视频| 国产精品视频麻豆| 麻豆久久久久久久| 日本韩国欧美一区二区三区| 日韩免费视频一区| 亚洲最新视频在线观看| 国产成人在线看| 日韩小视频在线观看专区| 亚洲欧洲国产日韩| 国产专区欧美精品| 91精品国产综合久久国产大片| 国产精品女同一区二区三区| 日本aⅴ精品一区二区三区| 色综合一个色综合| 国产精品天干天干在线综合| 久久激情五月婷婷| 欧美精品粉嫩高潮一区二区| 亚洲欧美日本在线| www.欧美色图| 中文一区二区完整视频在线观看| 老司机免费视频一区二区三区| 欧美三级电影在线观看| 亚洲精品成a人| av成人老司机| 国产精品人成在线观看免费 | 极品少妇xxxx精品少妇偷拍| 91传媒视频在线播放| 久久精品夜色噜噜亚洲a∨| 日韩精品一级中文字幕精品视频免费观看| 色综合天天综合在线视频| 欧美日韩在线观看一区二区| 国产精品麻豆视频| 高清免费成人av| 中文欧美字幕免费|