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

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

?? math_lib.c

?? MELPe 1200 bps, fixed point
?? C
?? 第 1 頁 / 共 2 頁
字號:
 *
 *	 PURPOSE:
 *
 *	   Compute the square root of x.
 *
 *
 *	 INPUTS:
 *
 *	   x
 *					   16 bit short signed integer (Shortword).
 *	   Q
 *					   16 bit short signed integer (Shortword) represents
 *					   Q value of x.
 *
 *	 OUTPUTS:
 *
 *	   none
 *
 *	 RETURN VALUE:
 *
 *	   temp
 *					   16 bit short signed integer (Shortword) in same Q.
 *
 *************************************************************************/
Shortword sqrt_fxp(Shortword x, Shortword Q)
{
	Shortword	temp;


	if (!x)
		return((Shortword) 0);

	temp = shr(log10_fxp(x, Q), 1);                        /* temp is now Q12 */
	temp = pow10_fxp(temp, Q);
	return(temp);
}


/***************************************************************************
 *
 *	 FUNCTION NAME: L_sqrt_fxp
 *
 *	 PURPOSE:
 *
 *	   Compute the square root of x.
 *
 *
 *	 INPUTS:
 *
 *	   x
 *					   32 bit long signed integer (Longword).
 *	   Q
 *					   16 bit short signed integer (Shortword) represents
 *					   Q value of x.
 *
 *	 OUTPUTS:
 *
 *	   none
 *
 *	 RETURN VALUE:
 *
 *	   temp
 *					   16 bit short signed integer (Shortword) in same Q.
 *
 *************************************************************************/
Shortword L_sqrt_fxp(Longword x, Shortword Q)
{
	Shortword	temp;


	if (!x)
		return((Shortword) 0);

	temp = L_log10_fxp(x, Q);
	/* temp in Q11, pow10 treat it as Q12, => no need to shr by 1. */
	temp = pow10_fxp(temp, Q);

	return(temp);
}


/***************************************************************************
 *
 *	 FUNCTION NAME: L_pow_fxp
 *
 *	 PURPOSE:
 *
 *	   Compute the value of x raised to the power 'power'.
 *
 *
 *	 INPUTS:
 *
 *	   x
 *					   32 bit long signed integer (Longword).
 *	   power
 *					   16 bit short signed integer (Shortword) in Q15.
 *	   Q_in
 *					   16 bit short signed integer (Shortword) represents
 *					   Q value of x.
 *	   Q_out
 *					   16 bit short signed integer (Shortword) represents
 *					   required Q value of returned result.
 *
 *	 OUTPUTS:
 *
 *	   none
 *
 *	 RETURN VALUE:
 *
 *	   temp
 *					   16 bit short signed integer (Shortword).
 *
 *************************************************************************/
Shortword L_pow_fxp(Longword x, Shortword power, Shortword Q_in,
					Shortword Q_out)
{
	Shortword	temp;


	if (!x)
		return((Shortword) 0);

	temp = L_log10_fxp(x, Q_in);                               /* temp in Q11 */
	temp = mult(power, shl(temp, 1));                          /* temp in Q12 */
	temp = pow10_fxp(temp, Q_out);
	return(temp);
}


/***************************************************************************
 *
 *	 FUNCTION NAME: sin_fxp
 *
 *	 PURPOSE:
 *
 *	   Compute the sine of x whose value is expressed in radians/PI.
 *
 *
 *	 INPUTS:
 *
 *	   x
 *					   16 bit short signed integer (Shortword) in Q15.
 *
 *	 OUTPUTS:
 *
 *	   none
 *
 *	 RETURN VALUE:
 *
 *	   ty
 *					   16 bit short signed integer (Shortword) in Q15.
 *
 *************************************************************************/

Shortword sin_fxp(Shortword x)
{
	static const Shortword	table[129] = {
			0,	 402,	804,  1206,  1608,	2009,  2411,  2811,  3212,
		 3612,	4011,  4410,  4808,  5205,	5602,  5998,  6393,  6787,
		 7180,	7571,  7962,  8351,  8740,	9127,  9512,  9896, 10279,
		10660, 11039, 11417, 11793, 12167, 12540, 12910, 13279, 13646,
		14010, 14373, 14733, 15091, 15447, 15800, 16151, 16500, 16846,
		17190, 17531, 17869, 18205, 18538, 18868, 19195, 19520, 19841,
		20160, 20475, 20788, 21097, 21403, 21706, 22006, 22302, 22595,
		22884, 23170, 23453, 23732, 24008, 24279, 24548, 24812, 25073,
		25330, 25583, 25833, 26078, 26320, 26557, 26791, 27020, 27246,
		27467, 27684, 27897, 28106, 28311, 28511, 28707, 28899, 29086,
		29269, 29448, 29622, 29792, 29957, 30118, 30274, 30425, 30572,
		30715, 30853, 30986, 31114, 31238, 31357, 31471, 31581, 31686,
		31786, 31881, 31972, 32058, 32138, 32214, 32286, 32352, 32413,
		32470, 32522, 32568, 32610, 32647, 32679, 32706, 32729, 32746,
		32758, 32766, 32767
	};
	Shortword	tx, ty;
	Shortword	sign;
	Shortword	index1, index2;
	Shortword	m;
	Shortword	temp;


	sign = 0;
	if (x < 0){
		tx = negate(x);
		sign = -1;
	} else {
		tx = x;
	}

	/* if angle > pi/2, sin(angle) = sin(pi-angle) */
	if (tx > X05_Q15){
		tx = sub(ONE_Q15, tx);
	}
	/* convert input to be within range 0-128 */
	index1 = shr(tx, 7);
	index2 = add(index1, 1);

	if (index1 == 128){
		if (sign != 0)
			return(negate(table[index1]));
		else
			return(table[index1]);
	}

	m = sub(tx, shl(index1, 7));
	/* convert decimal part to Q15 */
	m = shl(m, 8);

	/* interpolate */
	temp = sub(table[index2], table[index1]);
	temp = mult(m, temp);
	ty = add(table[index1], temp);

	if (sign != 0)
		return(negate(ty));
	else
		return(ty);
}


/***************************************************************************
 *
 *	 FUNCTION NAME: cos_fxp
 *
 *	 PURPOSE:
 *
 *	   Compute the cosine of x whose value is expressed in radians/PI.
 *
 *
 *	 INPUTS:
 *
 *	   x
 *					   16 bit short signed integer (Shortword) in Q15.
 *
 *	 OUTPUTS:
 *
 *	   none
 *
 *	 RETURN VALUE:
 *
 *	   ty
 *					   16 bit short signed integer (Shortword) in Q15.
 *
 *************************************************************************/
Shortword cos_fxp(Shortword x)
{
	static const Shortword	table[129] = {
		32767, 32766, 32758, 32746, 32729, 32706, 32679, 32647, 32610,
		32568, 32522, 32470, 32413, 32352, 32286, 32214, 32138, 32058,
		31972, 31881, 31786, 31686, 31581, 31471, 31357, 31238, 31114,
		30986, 30853, 30715, 30572, 30425, 30274, 30118, 29957, 29792,
		29622, 29448, 29269, 29086, 28899, 28707, 28511, 28311, 28106,
		27897, 27684, 27467, 27246, 27020, 26791, 26557, 26320, 26078,
		25833, 25583, 25330, 25073, 24812, 24548, 24279, 24008, 23732,
		23453, 23170, 22884, 22595, 22302, 22006, 21706, 21403, 21097,
		20788, 20475, 20160, 19841, 19520, 19195, 18868, 18538, 18205,
		17869, 17531, 17190, 16846, 16500, 16151, 15800, 15447, 15091,
		14733, 14373, 14010, 13646, 13279, 12910, 12540, 12167, 11793,
		11417, 11039, 10660, 10279,  9896,	9512,  9127,  8740,  8351,
		7962,	7571,  7180,  6787,  6393,	5998,  5602,  5205,  4808,
		4410,	4011,  3612,  3212,  2811,	2411,  2009,  1608,  1206,
		804,	 402,	  0
	};
	Shortword	tx, ty;
	Shortword	sign;
	Shortword	index1, index2;
	Shortword	m;
	Shortword	temp;


	sign = 0;
	if (x < 0){
		tx = negate(x);
	} else {
		tx = x;
	}

	/* if angle > pi/2, cos(angle) = -cos(pi-angle) */
	if (tx > X05_Q15){
		tx = sub(ONE_Q15, tx);
		sign = -1;
	}
	/* convert input to be within range 0-128 */
	index1 = shr(tx, 7);
	index2 = add(index1, 1);

	if (index1 == 128)
		return((Shortword) 0);

	m = sub(tx, shl(index1, 7));
	/* convert decimal part to Q15 */
	m = shl(m, 8);

	temp = sub(table[index2], table[index1]);
	temp = mult(m, temp);
	ty = add(table[index1], temp);

	if (sign != 0)
		return(negate(ty));
	else
		return(ty);
}

/***************************************************************************
 *
 *	 FUNCTION NAME: sqrt_Q15
 *
 *	 PURPOSE:
 *
 *	   Compute the Square Root of x Q15
 *		Based on 6-term Taylor-series
 *
 *	 INPUTS:
 *
 *	   x
 *					   16 bit short signed integer (Shortword) in Q15.
 *
 *	 OUTPUTS:
 *
 *	   none
 *
 *	 RETURN VALUE:
 *
 *	   A
 *					   16 bit short signed integer (Shortword) in Q15.
 *
 *************************************************************************/

/*************************************************************************/
/*  We calculate sqrt(y) = sqrt(x+1) :                                   */
/*  Approximated by:                                                     */
/*  1 + (x/2) - 0.5(x/2)^2 + 0.5(x/2)^3 - 0.625(x/2)^4 + 0.875(x/2)^5    */
/*  before this operation, y is normalized to [0.5; 1[                   */
/*************************************************************************/

Shortword sqrt_Q15(Shortword x)
{
	Shortword	shift, odd;
	Shortword	temp, x_2, x_24;
	Longword	L_temp, L_temp2;
	Longword	L_A;

	if (x==0) return 0;		/* return zero */
	L_A		= L_deposit_h(x);
	shift	= norm_l(L_A);
	L_A		= L_shl(L_A, shift); /* Normalize */
	odd		= 0;
	if (shift & 0x1) odd = 1; /* Odd exponent */
	shift	= shl(shift, -1);
	shift	= negate(shift);
	L_A		= L_shl(L_A, -1);
	L_A		= L_sub(L_A, L_deposit_h(0x4000));
	temp	= extract_h(L_A);
	x_2		= temp;
	L_A		= L_add(L_A, L_deposit_h(0x4000));
	L_A		= L_add(L_A, L_deposit_h(0x4000));
	L_temp	= L_mult(temp, temp);
 	L_temp	= -L_temp;
	L_temp2	= L_shl(L_temp, -1);
	L_A		= L_add(L_A, L_temp2);
	L_temp	= L_mult((Shortword) L_shl(L_temp, -16), (Shortword) L_shl(L_temp, -16));
	x_24	= extract_h(L_temp);
	L_temp	= L_mult(x_24, 0x5000);
	L_A		= L_sub(L_A, L_temp);
	temp	= mult(x_24, x_2);
	L_A		= L_add(L_A, L_mult(0x7000,temp));
	temp	= mult(x_2, x_2);
	L_temp2	= L_mult(temp, x_2);
	L_A		= L_add(L_A, L_shl(L_temp2, -1));
	L_A		= L_add(L_A, L_shl(0x80,8));
	if (odd){ /* Adjust, if odd exponent! */
		L_A		= L_mult((Shortword) L_shl(L_A, -16), 0x5A82); /* L_A*=1/sqrt(2) */
		L_A		= L_add(L_A, L_shl(0x80,8)); /* Round */
	}
	L_A		= L_shl(L_A,shift);
	temp	= extract_h(L_A);
	return	temp;
}


Shortword add_shr(Shortword Var1, Shortword Var2)
{
	Shortword	temp;
	Longword	L_1, L_2;


	L_1		= L_deposit_l(Var1);
	L_2		= L_deposit_l(Var2);
	temp	= (Shortword) L_shr(L_add(L_1, L_2),1);
	return temp;
}


Shortword sub_shr(Shortword Var1, Shortword Var2)
{
	Shortword	temp;
	Longword	L_1, L_2;


	L_1		= L_deposit_l(Var1);
	L_2		= L_deposit_l(Var2);
	temp	= (Shortword) L_shr(L_sub(L_1, L_2), 1);
	return temp;
}


?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产日韩欧美a| 日本一区二区三区国色天香 | 欧美在线制服丝袜| 久久精品国产99久久6| 中文字幕一区免费在线观看| 欧美一区二区精美| 在线欧美小视频| 成人的网站免费观看| 老司机免费视频一区二区三区| 亚洲日本一区二区三区| 久久精品视频免费观看| 欧美日韩亚洲丝袜制服| av在线不卡免费看| 国产在线播放一区| 青青青伊人色综合久久| 一区二区三区电影在线播| 国产精品嫩草99a| 日韩欧美一级二级三级久久久| 欧美三级中文字幕| 91视频一区二区| 成人激情开心网| 国产电影精品久久禁18| 久久电影网电视剧免费观看| 亚洲成在线观看| 亚洲最新在线观看| 一区二区三区资源| 亚洲欧洲日产国码二区| 亚洲一区在线电影| 亚洲欧美区自拍先锋| 欧美国产在线观看| 久久欧美中文字幕| 久久久久高清精品| 欧美本精品男人aⅴ天堂| 欧美一级一区二区| 日韩一级在线观看| 日韩一区二区精品在线观看| 欧美日本一区二区| 欧美日韩精品综合在线| 制服丝袜亚洲网站| 69av一区二区三区| 日韩欧美国产综合| 欧美v亚洲v综合ⅴ国产v| 日韩欧美成人一区| 2欧美一区二区三区在线观看视频| 91精品国产综合久久久蜜臀粉嫩| 91麻豆精品国产自产在线观看一区| 欧美性欧美巨大黑白大战| 欧亚一区二区三区| 正在播放亚洲一区| 日韩欧美成人一区| 久久精品人人爽人人爽| 国产精品欧美一区喷水| 亚洲同性同志一二三专区| 综合欧美一区二区三区| 亚洲国产精品视频| 日日夜夜精品视频天天综合网| 日本麻豆一区二区三区视频| 国内精品自线一区二区三区视频| 国产精品一区二区久久精品爱涩| 国产99久久精品| 91美女福利视频| 欧美性猛交xxxxxx富婆| 69久久99精品久久久久婷婷| 精品国产99国产精品| 日本一区二区成人| 一区二区欧美国产| 蜜臀91精品一区二区三区 | 婷婷综合另类小说色区| 麻豆一区二区三区| 国产福利一区二区| 91久久一区二区| 日韩欧美在线影院| 欧美激情中文不卡| 亚洲mv大片欧洲mv大片精品| 国产一区二区三区黄视频| 一本色道久久综合亚洲91| 欧美一二三四在线| 中文在线资源观看网站视频免费不卡| 亚洲综合在线电影| 成人小视频在线| 欧美色图激情小说| 久久久久久99精品| 亚洲一区二区五区| 成人免费不卡视频| 91精品欧美久久久久久动漫| 国产欧美精品一区| 亚洲午夜久久久久久久久久久| 黑人精品欧美一区二区蜜桃 | 色诱亚洲精品久久久久久| 9191久久久久久久久久久| 中文字幕欧美国产| 亚洲成人www| 99久久伊人精品| 欧美刺激脚交jootjob| 一区二区三区四区蜜桃 | 国产乱妇无码大片在线观看| 在线观看欧美黄色| 国产欧美一区二区精品忘忧草| 午夜视频在线观看一区二区三区| 国产成人在线观看免费网站| 欧美精品自拍偷拍| 国产精品成人一区二区三区夜夜夜| 轻轻草成人在线| 欧美日韩精品一区二区三区四区| 国产精品国模大尺度视频| 久久se精品一区精品二区| 欧美三级蜜桃2在线观看| 国产精品电影一区二区三区| 国产一区免费电影| 日韩精品一区二区三区在线 | 在线亚洲一区观看| 久久久久久99精品| 久久成人综合网| 欧美精品国产精品| 亚洲国产欧美一区二区三区丁香婷| 国产一区二区免费视频| 日韩欧美亚洲国产精品字幕久久久| 亚洲国产成人av| 一本高清dvd不卡在线观看| 中文字幕精品在线不卡| 国内精品伊人久久久久av影院 | 成人免费高清在线观看| 久久综合色8888| 激情av综合网| 精品盗摄一区二区三区| 99久久99精品久久久久久| 国产精品沙发午睡系列990531| 国产成人综合自拍| 久久久久亚洲蜜桃| 国产一区91精品张津瑜| 日韩欧美高清在线| 六月丁香婷婷久久| 日韩欧美www| 精品一区精品二区高清| 欧美xxxxxxxx| 国产一区二区伦理| 欧美激情综合五月色丁香| 成人美女视频在线看| 国产精品精品国产色婷婷| 91丝袜美腿高跟国产极品老师| 中文字幕精品一区二区精品绿巨人| 国产aⅴ综合色| 国产精品久久二区二区| 色综合久久天天| 亚洲精品国产成人久久av盗摄| 在线一区二区三区四区五区 | 欧美日韩大陆在线| 无吗不卡中文字幕| 日韩欧美国产系列| 国产激情视频一区二区三区欧美| 国产亚洲美州欧州综合国| 国产成人精品免费网站| 国产精品麻豆欧美日韩ww| 一本色道a无线码一区v| 视频在线观看一区二区三区| 日韩三级中文字幕| 国产一区二区三区久久悠悠色av| 欧美国产精品久久| 日本韩国欧美三级| 日韩激情中文字幕| 久久女同性恋中文字幕| 99久久久久免费精品国产| 一区二区三区欧美亚洲| 欧美一级国产精品| 国产乱码精品一区二区三区忘忧草 | 亚洲宅男天堂在线观看无病毒| 欧美日韩国产美女| 国产在线播放一区二区三区| 亚洲免费在线观看视频| 欧美精品欧美精品系列| 国产一区二区免费在线| 亚洲一区二区三区爽爽爽爽爽| 91精品欧美一区二区三区综合在| 国产精品性做久久久久久| 亚洲精品国产无套在线观| 欧美一级电影网站| 95精品视频在线| 美女网站在线免费欧美精品| 中文在线资源观看网站视频免费不卡| 欧美一级高清片| 成人短视频下载| 亚洲综合激情网| 精品国产一区二区三区久久久蜜月 | 成人小视频免费在线观看| 亚洲午夜在线观看视频在线| 精品国产91久久久久久久妲己| 91麻豆6部合集magnet| 久久av资源站| 亚洲女同女同女同女同女同69| 精品少妇一区二区三区免费观看| 91玉足脚交白嫩脚丫在线播放| 美女在线观看视频一区二区| 亚洲免费视频中文字幕| 久久精品欧美日韩| 欧美精品 日韩| 91年精品国产| 国产成人自拍在线| 青青草精品视频| 亚洲国产精品视频| 亚洲色欲色欲www在线观看|