gpt4 book ai didi

c - 如何在没有溢出的情况下用定点运算计算多项式?

转载 作者:太空宇宙 更新时间:2023-11-03 23:44:53 25 4
gpt4 key购买 nike

我想在只有 32 位整数硬件的实时嵌入式系统上计算多项式。出于这个原因,我正在尝试使用定点算法。如何在不对参数施加荒谬限制的情况下避免溢出?

假设我有系数 a,b,c,d我想评估一下

ax^3 + bx^2 + cx + d

对于x的一定范围.

假设系数 a,b,c,dx 的范围可以离线计算并且可以缩放以制作我用来评估多项式工作的任何方法。

我该怎么做才能避免溢出,但结果仍然有大约 20 位的精度?如果我什么都不做,那么即使对于较小的 x 值(例如 10,000),x^3 也是 1,000,000,000,000,这不适合 32 位。

举个例子,假设我要计算多项式

F(x) = ax^3

x 在 x=<0.0,1.0> 范围内.我要F(0.0) = 0.0F(1.0) = 100.0 .但我还希望这个函数的值在 10,000点在那个范围内,所以 F(0.0001) , F(0.0002)

如果我想要 F(x) 的结果为了始终精确到最接近的整数,我应该如何评估 F(x)仅使用 32 位整数数学?

最佳答案

求解 ax^3 + bx^2 + cx + d = MAXINT - 1

这给出了不会溢出的最大输入值。

然后相应地缩放您的输入值。计算多项式,然后反转缩放。

关于c - 如何在没有溢出的情况下用定点运算计算多项式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36088469/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com