0

我在嵌入式平台上工作,需要一种更快的方法来为某些算法进行浮点乘法。有谁知道快速实现,我可以放弃一些速度精度。

4

1 回答 1

1

如果您的目标有一个 FPU,那么它已经尽可能快地执行浮点乘法。但是,如果它没有 FPU,那么您最好改用定点算法。

由于没有内置的定点数据类型,在 C 中使用定点算术很复杂 - 每个操作都是显式的函数调用,在 C++ 中这不是很自然或可读性,但是可以定义一个fixed类运算符和函数重载,因此使用定点只是替换floator doublewith的一种情况fixed,包括类型之间的自动转换。可以在这里找到一个这样的库,它包括一个全面的数学库,而不仅仅是简单的算术运算符。在 ARM 上,它通常比软件浮点快 5 倍。

如果使用 C++ 代码让您担心,在大多数情况下,您可以使用 C++ 编译来支持定点库,但本质上是编写 C 代码,就好像它具有内置fixed类型一样。也就是说,您无需使用或了解太多 C++ 即可从该库中受益,并且与使用 C 编译的相同代码相比,不会有任何开销。

于 2013-05-31T15:38:51.993 回答