找回密码
 欢迎注册
楼主: liangbch

[擂台] 计算百万位e

[复制链接]
 楼主| 发表于 2008-4-17 15:24:44 | 显示全部楼层
HugeCalc中大数除法仍有优化的余地,我用自己的除法代码,可将9#程序的除法部分的速度提高10%(使用HugeCalc的代码,计算100万位,除法部分所用时间为2.062,改用我的求倒数再相乘后,除法部分的时间降至1.875),等我有空时,将自己写的大数除法(调用HugeCalc中的大数乘法)贴上来。 大家可能注意到9#的代码包含下面的代码,这就是用来测试我自己写的大数除法用的。
#else { void inverse( const integer *s, integer *pResult,int len); integer t; inverse(&q,&t,len); p *=t; } #endif
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2008-4-17 15:30:42 | 显示全部楼层
欢迎任何改进!
原帖由 无心人 于 2008-4-17 15:14 发表 不是9# 是你给的highCalc.rar
我将他的老版本也打包进去了,请重新下载: HighCalc.rar (235.42 KB)
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
 楼主| 发表于 2008-4-17 21:35:46 | 显示全部楼层
我说的意思是PiFast内核不可能会领先那么多吧? 也许是我们外围算法或调用没做好。。。
你这么一说,我也有种感觉,也许Pifast的大数乘法不会快HugeCalc 3倍以上,这太快了,比GMP还快,快的有点不可思议。
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2008-4-17 21:46:37 | 显示全部楼层
某些算法大数乘法并不需要乘出结果 他可以在FFT上持续计算,直到需要乘法结果时再算出来 可能他利用了N个序列的FFT来合成2N个序列的来持续FFT
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2008-4-18 07:52:55 | 显示全部楼层
“持续FFT”? 我以前考虑过,但效率并不理想。 因为要考虑到最终乘积,所以每次的变换长度都是最终的长度, 如果逐级处理,则早些阶段的可用较小的变换长度处理。
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2008-4-18 08:01:53 | 显示全部楼层
N个序列的FFT可变换成2N个序列的FFT 其操作只是序列的一个复制操作
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2008-12-14 12:47:08 | 显示全部楼层

mathematica7.0计算E的百万位代码

input:Timing[N[E, 10^6]] output:{2.25,一百万位的数字我就不贴出结果了!} 追究简单是我的原则!不到万不得已的情况下,我是 不会选择编程的!我承认自己有时候喜欢现成的!
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2008-12-14 14:17:58 | 显示全部楼层
你那不叫算法 叫函数调用
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2008-12-14 20:52:15 | 显示全部楼层
我建议算e^x 光算个e貌似没有实际价值...怎么算都是常数... e^x更有挑战性...
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2008-12-14 21:10:56 | 显示全部楼层
这个,好像计算e^x不是很困难吧
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
您需要登录后才可以回帖 登录 | 欢迎注册

本版积分规则

小黑屋|手机版|数学研发网 ( 苏ICP备07505100号 )

GMT+8, 2024-11-21 20:30 , Processed in 0.030758 second(s), 15 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表