繁体   English   中英

在 C 中使用定点算法的 Horner 规则

[英]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;
}

其中c0c1是不同的 16 位有符号系数, q是我想评估的值( q作为输入并转换为 16 位有符号格式)。 所有这些值都已转换为有符号的 16 位格式。 我已经在浮点运算中实现了它,它运行良好。

我的问题是,我将如何继续获得所需的值,同时保持小数点并控制溢出?

首先是确定多项式和部分多项式的域和余域。 然后您可以调整移位以最小化截断错误,同时避免溢出。

如果您需要自动执行此过程,则必须找到所有这些多项式的最小值和最大值,这需要求解实根。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM