The*_*ist 4 c++ optimization performance trigonometry sqrt
不幸的是,标准C++库没有一个sincos调用,这为这个问题提供了一席之地.
第一个问题:
如果我想计算一个罪和一个cos,计算一个罪和一个cos是比较便宜,还是计算一个sin然后一个sqrt(1-sin ^ 2)得到cos?
第二个问题:
intel数学内核库为标准数学函数计算提供了非常好的函数,因此存在函数vdSinCos()以非常优化的方式解决问题,但intel编译器不是免费的.Linux发行版中是否有任何开源库(C,C++,Fortran)可以使用那些我可以简单链接到它们并具有最佳实现的函数?
注意:我不想进入指令调用,因为所有CPU都不支持它们.我想链接到一个通用库,可以在任何CPU上为我完成这项工作.
谢谢.
GNU C库有一个sincos()函数,它将利用大多数现代指令集所具有的"FSINCOS"指令.我会说这是你最好的选择; 它应该与英特尔库方法一样快.
如果你不这样做,我会选择"sqrt(1-sin(x)^ 2)"路线.在我到目前为止看过的每个处理器架构文档中,FSQRT指令明显快于FSIN函数.
| 归档时间: |
|
| 查看次数: |
3063 次 |
| 最近记录: |