都是CS牛人,写个sin函数怎么搞?

t
tibuko
楼主 (文学城)
a
avw
CS的小数点不是unlimited
k
kmalloc
用exponential function行不?

a
avw
那不算死了。
a
avw
不管你怎么算,sin是有定义的,算得比这麻烦,那肯定不对
t
tibuko
你这个复数函数更不会算了
t
tibuko
非CS硬核,鉴定完毕
a
avw
我连programming都不会,你鉴定个啥
兔8
先给一个table,再内插?
青裁
这是数值计算,也可以勉强算做CS吧,泰勒级数展开
兄贵
取决于performance和memory之间的tradeoff

如果是考虑memory,用最快收敛级数,比如构造一个比泰勒级数更快收敛的级数

如果是考虑performance, 用bucket / bigtable 装下所有精度要求的sine值调用

两者相结合,可以产生很多整合方法,比如 (1)级数展开不是在0点,而是在 bucket中的最接近的值附近,(2)因为sin的微分是cos,所以进行 slope iteration,通过sin,cos的迭代计算,快速算出;(3)可以用 spline 方法,(4)Smoothstep 方法,以及 Cordic 方法,,,等等

 

t
tibuko
不错,你已经有cos了,还导数个啥?
兄贵
Cos 不是精确值,是迭代值。跟你没法谈了
兄贵
Recursion 听说过没? 有了和更有了,不是一回事