注册 登录
    • 为了保证你在浏览本网站时有着更好的体验,建议使用类似Chrome、Firefox之类的浏览器~~
    • 如果你喜欢本站的内容何不Ctrl+D收藏一下呢,与大家一起分享各种编程知识~
    • 本网站研究机器学习、计算机视觉、模式识别~当然不局限于此,生命在于折腾,何不年轻时多折腾一下

Cordic算法之log应用

Alg admin 1394次浏览 0个评论 扫描二维码
#include
using namespace std;

int fxlog(int x) {
	int t, y;


	y = 0x157cd3;
	if (x < 0x00008000) x <<= 16, y -= 0xb1721;
	if (x < 0x00800000) x <<= 8, y -= 0x58b91;
	if (x < 0x08000000) x <<= 4, y -= 0x2c5c8;
	if (x < 0x20000000) x <<= 2, y -= 0x162e4;
	if (x < 0x40000000) x <<= 1, y -= 0x0b172; 	t = x + (x >> 1); 
	if ((t & 0x80000000) == 0)
	{
		x = t, y -= 0x067cd;
	}
	t = x + (x >> 2);
	if ((t & 0x80000000) == 0)
	{
		x = t, y -= 0x03920;
	}
	t = x + (x >> 3); 
	if ((t & 0x80000000) == 0)
	{
		x = t, y -= 0x01e27;
	}
	t = x + (x >> 4);
	if ((t & 0x80000000) == 0)
	{
		x = t, y -= 0x00f85;
	}
	t = x + (x >> 5); 
	if ((t & 0x80000000) == 0)
	{
		x = t, y -= 0x007e1;
	}
	t = x + (x >> 6);
	if ((t & 0x80000000) == 0)
	{
		x = t, y -= 0x003f8;
	}
	t = x + (x >> 7);
	if ((t & 0x80000000) == 0)
	{
		x = t, y -= 0x001fe;
	}
	x = 0x80000000 - x;	
	y = (y - (x >> 15)) 
	return y;
}



int _tmain(int argc, _TCHAR* argv[])
{
	int a = 2000;
	
	int hello = fxlog(a);
	//int test = fxexp(2);
	cout << hello>>16 <<endl;
	return 0;
}

Deeplearn, 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明Cordic算法之log应用
喜欢 (0)
[xiaocui]
分享 (0)

您必须 登录 才能发表评论!