在大多数开源实现中,是否有人知道传感器融合实现只使用整数运算而不是所有浮点累加/除/乘?
在我的处理器上执行重复的浮点计算是很昂贵的,我想尽可能地减少它们。我可能会失去一些精确度,但我的应用程序不需要高精度的输出。
是否有任何问题将所有变量转换为整数并且只是精确命中?任何建议都会很棒,谢谢大家。
答案 0 :(得分:1)
使用定点是在没有FPU的设备上进行灵活数学运算的最佳解决方案。
Anthony Williams'fixed point maths library适合,它使用64位整数类型来提供34Q28(34位整数位,28小数位)格式浮点类型,具有广泛的数学运算符,运算符和转换函数。它是用C ++编写的,用于创建fixed
类作为类,具有广泛的运算符重载和标准数学函数,因此它在现有代码中与float
或double
在很大程度上是可互换的。
我意识到问题是标记C但你不需要广泛使用C ++语法,只需将C代码编译为C ++,包含fixed.hpp标头,用{{替换float
或double
1}}并使用您的项目编译/链接fixed.cpp文件。