网页
资讯
视频
图片
知道
文库
贴吧
地图
采购
进入贴吧
全吧搜索
吧内搜索
搜贴
搜人
进吧
搜标签
日
一
二
三
四
五
六
签到排名:今日本吧第
个签到,
本吧因你更精彩,明天继续来努力!
本吧签到人数:0
一键签到
成为超级会员,使用一键签到
一键签到
本月漏签
0
次!
0
成为超级会员,赠送8张补签卡
如何使用?
点击日历上漏签日期,即可进行
补签
。
连续签到:
天 累计签到:
天
0
超级会员单次开通12个月以上,赠送连续签到卡3张
使用连续签到卡
07月08日
漏签
0
天
c语言吧
关注:
791,258
贴子:
4,302,445
看贴
图片
吧主推荐
视频
游戏
32
回复贴,共
1
页
<<返回c语言吧
>0< 加载中...
math里的那些数学函数是咋实现的啊大佬们
只看楼主
收藏
回复
3.114514
大能力者
8
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
math里对数和开方运算,三角函数等那些一般是怎么实现的呢,我很想用泰勒试试,但是泰勒收敛的太慢了。而且收敛域也不好解决。有些开源的编译器源码看来回的宏定义看的头晕看不懂。
真
路人
异能力者
6
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
开方的话应该是用牛顿迭代法,比如著名的雷神之锤求开方的倒数
此外一般还会用上simd来加速
plu_icesheep
强能力者
7
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
收敛慢你可以手工加速,比如用户要算的是 sin(x),但你函数内部泰勒展开中实际算的是 sin(y), 其中 |y| 很小,然后利用三角函数两角和的公式再翻译成 sin(x) 还给用户。
贴吧用户_Q4ybGQR
帕秋莉糕
12
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
欢迎进来一起学习交流讨论问题
3.114514
大能力者
8
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
ln或者开方不能用那么多特例了吧。我看有的编译器源码里math实现用了不少汇编
aaaaaaa421
马猴烧酒
14
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
知乎有一个讲得不错的对数算法,可以参考:
https://www.zhihu.com/answer/1686069171
readmoon2
毛蛋
1
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
stl有源码
钱欢银
麻婆豆腐
11
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
先学数值分析
3.114514
大能力者
8
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
是数学系的一门课吗黄牌哥
WXYHYXY
酱油
4
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
首先,三角函数是硬件三角函数,如果你只有x87,是用fsin,fcos这种算的,有sse是用_mm_sin_ps
huixingjihua
毛蛋
1
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
泰勒展开 牛顿迭代
mx1125xx9
毛蛋
1
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
三角函数趋向0时sin x = x,其他情况用泰勒级数,另外很多芯片直接有硬件实现
风水_缚止
帕秋莉糕
12
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
数值分析不是理工类本科的课吗,我现在正在上
plu_icesheep
强能力者
7
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
看了下七楼的对数算法,其实就是用 log(1+x) 泰勒展开,只不过只有 |x| 很小的时候效率高,所以别的时候用变换
让 xb^{-n} 进入泰勒展开的舒适区。
同理牛顿法的舒适区是真值离初值不远的时候,那么别的时候用
让 xb^{-n} 进入牛顿法的舒适区就好了。
HarrySpiderman
便当
3
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
很多时候用牛顿迭代法比普通级数的方法快很多,当然找到适当的方程是关键。数学库的源代码看不懂没关系,这些本来就不是用来学习编码技术的,更多的是奇技淫巧,难以有借鉴意义。
登录百度账号
扫二维码下载贴吧客户端
下载贴吧APP
看高清直播、视频!
贴吧页面意见反馈
违规贴吧举报反馈通道
贴吧违规信息处理公示