CORDIC算法的起点

时间:2018-07-19 15:44:59

标签: matlab math numerical-methods cordic elementary-functions

我正在尝试减少使用CORDIC算法计算乘法所需的迭代次数,因为我在连续函数中使用该算法来计算平方函数。这是假设-1<x<1'

的算法
function z=square(x)
 y=x;
 z=0;
  for i=1:15
    if (x > 0)
      x = x - 2^(-i);
      z = z + y*2^(-i);
    else
      x = x + 2^(-i);
      z = z - y*2^(-i);
    end
  end
return
end

我已经知道乘法结果的接近值(从前一个结果(称为pr)和x的值(x的值是连续的)。它是否有助于减少迭代次数?

1 个答案:

答案 0 :(得分:0)

如果您用相同的常数乘以两次,例如a.xa.x',则可以乘以并加上有效位数较小的增量a.(x' - x)

如果两个因素都不同,您仍然可以使用

x'.y' = (x'- x).(y' - y) + x.(y' - y) + (x' - x).y + x.y

第一个术语可能忽略不计。

对于正方形,

x'² = (x'- x)² + 2.x.(x' - x) + x²