我正在尝试减少使用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的值是连续的)。它是否有助于减少迭代次数?
答案 0 :(得分:0)
如果您用相同的常数乘以两次,例如a.x
和a.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²