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