为了账号安全,请及时绑定邮箱和手机立即绑定

C如何计算sin()和其他数学函数?

C如何计算sin()和其他数学函数?

湖上湖 2019-06-29 17:20:29
C如何计算sin()和其他数学函数?我一直在研究.NET反汇编和GCC源代码,但似乎在任何地方都找不到sin()和其他数学函数.。他们似乎总是在引用别的东西。有人能帮我找到他们吗?我觉得C运行的所有硬件都不太可能支持硬件中的trig函数,所以必须有一个软件算法某地对吧?我知道有几种方法起作用能,会,可以被计算,并编写了我自己的例程来计算函数使用泰勒级数为乐趣。我很好奇生产语言有多真实,因为我所有的实现总是慢几个数量级,尽管我认为我的算法相当聪明(显然它们不是)。
查看完整描述

3 回答

?
holdtom

TA贡献1805条经验 获得超10个赞

正弦和余弦等功能是在微处理器内部的微码中实现的。例如,英特尔芯片为这些芯片提供了组装指令。C编译器将生成调用这些程序集指令的代码。(相比之下,Java编译器不会。Java在软件中而不是硬件上评估trig函数,因此它的运行速度要慢得多。)

晶片不要使用泰勒级数计算三角函数,至少不是全部。首先他们用科迪奇但是,它们也可以使用一个简短的Taylor级数来改进CORDIC的结果,或者用于特殊情况,例如对于非常小的角度具有较高相对精度的计算正弦。


查看完整回答
反对 回复 2019-06-29
  • 3 回答
  • 0 关注
  • 909 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信