我已经实现了一个查找表来计算我系统中的正弦/余弦值。我现在需要反三角函数(arcsin/arccos)。
我的应用程序在嵌入式设备上运行,由于程序内存有限,我无法在该设备上为 arcsin 添加第二个查找表。所以我想到的解决方案是浏览正弦查找表以检索相应的索引。
我想知道这个解决方案是否比使用来自数学标准库的标准实现更有效。
有人已经对此进行了实验吗?
LUT 的当前实现是从 0 到 PI/2 的正弦值数组。存储在表中的值乘以 4096,以保持整数值对我的应用程序具有足够的精度。查找表的分辨率为 1/4096,它为我们提供了一个包含 6434 个值的数组。然后我有两个函数正弦和余弦,以弧度乘以 4096 作为参数。这些函数将给定的角度转换为第一象限中的相应角度,并读取表中的相应值。
我的应用程序在 dsPIC33F 上以 40 MIPS 运行,我使用 C30 编译套件。