C(和数学):快速逼近三角函数

我知道这是一个反复出现的问题,但我还没有真正找到一个有用的答案.我基本上正在寻找C中函数acos的快速近似值,我想知道我是否能够显着地超过标准值.

但是有些人可能对我的具体问题有所了解:我正在撰写一个我需要非常快速的科学课程.主算法的复杂度归结为计算以下表达式(使用不同参数进行多次):

sin( acos(t_1) + acos(t_2) + ... + acos(t_n) )

其中t_i是已知的实数(双)数,n非常小(如小于6).我需要至少1e-10的精度.我正在使用标准的sin和acos C函数.

你觉得我能以某种方式显着地获得速度吗?对于那些知道一些数学的人来说,你认为扩展这个正弦是很明智的,以便在t_i(只涉及平方根)方面得到一个代数表达式?

谢谢你的答案.

最佳答案
正如Jonas Wielicki在评论中提到的那样,您可以做出的精确度取舍并不多.

最好的办法是尝试使用处理器内在函数(如果您的编译器不这样做),并使用一些数学来减少必要的计算量.

同样重要的是将所有内容保持在CPU友好的格式,确保几乎没有缓存未命中等.

如果您正在计算大量的功能,如acos,或许是移​​动到GPU,您可以选择吗?

转载注明原文:C(和数学):快速逼近三角函数 - 代码日志