[英]Horner's rule using fixed point arithmetic in C
我很难按照霍纳的规则使用定点算法来追踪这个小数点。
int16_t horner(int16_t q)
{
const int16_t c0 = 0x0033;
const int16_t c1 = 0x0055;
const int16_t c2 = 0x001C;
const int16_t c3 = 0x0048;
const int16_t c4 = 0x0200;
horner_rule = c0 + q * (c1 - q * (c2 + q * (c3 - q * c4)));
return horner_rule;
}
其中c0
、 c1
等是不同的 16 位有符号系数, q
是我想评估的值( q
作为输入并转换为 16 位有符号格式)。 所有这些值都已转换为有符号的 16 位格式。 我已经在浮点运算中实现了它,它运行良好。
我的问题是,我将如何继续获得所需的值,同时保持小数点并控制溢出?
首先是确定多项式和部分多项式的域和余域。 然后您可以调整移位以最小化截断错误,同时避免溢出。
如果您需要自动执行此过程,则必须找到所有这些多项式的最小值和最大值,这需要求解实根。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.