Algorithm 如何计算任意幂/根?
我有一个应用程序,它需要将一个数字提升到分数次方。目标平台是一个FPGA,我可以估计它的FPU大小,但我需要一个算法,将数字提高到分数次方,只是为了进行可行性研究。我假设浮点是最坏的情况,我希望在实践中我们能够使用捷径,但现在我想表明最坏的情况可以在我们这方面实现Algorithm 如何计算任意幂/根?,algorithm,math,floating-point,exponent,Algorithm,Math,Floating Point,Exponent,我有一个应用程序,它需要将一个数字提升到分数次方。目标平台是一个FPGA,我可以估计它的FPU大小,但我需要一个算法,将数字提高到分数次方,只是为了进行可行性研究。我假设浮点是最坏的情况,我希望在实践中我们能够使用捷径,但现在我想表明最坏的情况可以在我们这方面实现 我想我会在这里问一下,看看有没有什么常用的方法可以让我检查一下。我知道有软件方法可以做到这一点,我只想从一个合理有效的算法开始。我会担心FPGA的实现。您的输入范围是任意的,还是在某个范围内已知的 在这两种情况下,xm=exp(m l
我想我会在这里问一下,看看有没有什么常用的方法可以让我检查一下。我知道有软件方法可以做到这一点,我只想从一个合理有效的算法开始。我会担心FPGA的实现。您的输入范围是任意的,还是在某个范围内已知的 在这两种情况下,xm=exp(m log x),因此如果您可以创建函数来计算exp(x)和log(x)并进行乘法运算,那么您可能已经全部设置好了 您必须弄清楚如何处理x的非正值 (log(x)提示:如果是这样,则在必要时移动有效位,直到某个值K的数字范围在2k和2k+1之间。这使您可以处理2:1的范围,该范围不太难用多项式近似。然后,您只需要处理指数和移位数的少量可能性
exp(x)的相应提示:写入x=k+b,其中0,正如Jason S所说,这是使用标识xm=exp(m log x)完成的。但实际上,您必须处理截断错误。 我认为通常的做法是