Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/129.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 为arctan计算生成查找表_C++_Math - Fatal编程技术网

C++ 为arctan计算生成查找表

C++ 为arctan计算生成查找表,c++,math,C++,Math,我已经看到了很多实现,但是我有了一个新的想法,对此我不能肯定。所以我需要一个意见 其思想是,不要在表中查找arctan(gy/gx),而是在一个表中查找1/gx,并将结果乘以gy。然后查找arctan。这样做的原因是降低硬件成本,因为除法比乘法更昂贵。但是限制是我最多可以有10个地址位。然而,乘法将给我两倍于gx中的位数gx本身是8位。如果我将gy*(1/gx)右移6位以获得10位地址 P/> P>注意,当代码< >Gy > GX作为 ARCTAN(GY/GX)=90弧长(GX/GY)(假设我

我已经看到了很多实现,但是我有了一个新的想法,对此我不能肯定。所以我需要一个意见

其思想是,不要在表中查找
arctan(gy/gx)
,而是在一个表中查找
1/gx
,并将结果乘以
gy
。然后查找
arctan
。这样做的原因是降低硬件成本,因为除法比乘法更昂贵。但是限制是我最多可以有10个地址位。然而,乘法将给我两倍于
gx
中的位数<代码>gx本身是8位。如果我将
gy*(1/gx)
右移6位以获得10位地址


<> P/> P>注意,当代码< >Gy > GX作为<代码> ARCTAN(GY/GX)=90弧长(GX/GY)(假设我们正坐标度)时,只需要考虑这种情况。这可能会减少除法错误。

提示:某些值比其他值更有用。只保留有用的。如果使用1/gx查找表,可能会丢失一些精度(希望使用浮点而不是固定精度)。您对FP使用什么划分?一些近似方法与查找表运行时类似,例如,如果您没有快速乘法,那么查找表更适合您…gx和gy的范围是多少?另外,在你的目标机器上,乘法相对于除法要花多少钱?还有,gx和gy是整数吗?gx和gy是整数