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

[讨论] 重启大整数库 HugeCalc 的研发工作

 火.. [复制链接]
发表于 2022-9-1 15:50:09 | 显示全部楼层
HugeCalc V8.1 升级计划
https://bbs.emath.ac.cn/forum.ph ... 9&fromuid=14149
(出处: 数学研发论坛)
发表于 2009-4-9 08:17:48
2022-2009=13,13年已经过去了,那边回复不了,就在这边!
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
 楼主| 发表于 2023-6-1 16:45:32 | 显示全部楼层

hugecalc 最新界面

hugecalc 最新界面

点评

素数判定功能,有的。  发表于 2023-6-2 09:26
nyy
素数判定的界面没了  发表于 2023-6-2 08:41
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2023-6-1 19:13:50 | 显示全部楼层

随机基的miller rabin测试功能导出一下,值得试玩试玩。

点评

mathematica 提供么?  发表于 2023-6-2 09:51
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
 楼主| 发表于 2023-6-2 09:37:42 | 显示全部楼层

功能函数选择界面

功能函数选择界面

"arbitrary-precision arithmetic" 中 [@xxx] 代表的是导出函数的 ID 号;其中 @ 代表 2 或 5,对应于 bin 或 dec 内核

到时会提供接口文件,通过 ID 号很容易知道调用的具体函数。
普通用户,可通过入参数目及类型,在相应的下拉框中快速选择。

当前,这个测试程序,已提供数百个功能接口的测试。

点评

u, v 为无符号的64位整数;i 为有符号的64位整数(通过按钮切换正负;绝对值=u)。它们为需要常规整数作为入参的功能测试,提供了可能。  发表于 2023-6-2 09:55
nyy
界面左下角的UV是什么意思?lucas序列的参数?  发表于 2023-6-2 09:48
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2023-6-2 10:06:55 | 显示全部楼层
gxqcn 发表于 2023-6-2 09:37
"arbitrary-precision arithmetic" 中 [@xxx] 代表的是导出函数的 ID 号;其中 @ 代表 2 或 5,对应于 bi ...

mathematica提供了模幂函数,然后我自己能写出miller rabin算法,我在论坛上分享过
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
 楼主| 发表于 2023-6-2 10:13:13 | 显示全部楼层
Miller-Rabin tests, Baillie-PSW primality test 等,仅是素性测试的内部实现,一般人无需了解内部细节,算法库一般不会导出的

点评

nyy
即使无需了解,我也在论坛上分享过实现细节  发表于 2023-6-2 10:32
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2023-6-5 08:49:42 | 显示全部楼层
gxqcn 发表于 2023-6-2 10:13
Miller-Rabin tests, Baillie-PSW primality test 等,仅是素性测试的内部实现,一般人无需了解内部细节, ...

为什么要导出miller rabin?因为Baillie-PSW primality test 并不是确定性的算法,
所以需要随机基的Miller-Rabin tests
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
 楼主| 发表于 2026-4-10 17:28:04 | 显示全部楼层

经过数月的努力,终于再次初步调通了 FNT 算法!

再次,是因为早在 2004 年 HugeCalc v3.0 就调通了,当时用的 VC6.0,标准被迫停留在 C++98

20 多年后再次动手,经历了许多磨难:
  • 现在的 VS 无法打开早期的 dsp 文件
  • 早期的代码,现在无法编译通过,因为此期间 STL 标准变化很大
  • 最后那版 v8.0 是 2007.12.08 发布的,充分进行了优化,但可读性很差
  • 想回溯早期版本,当时刻了光盘备份,但当今电脑上已不再标配光驱
  • 时间不够!精力不足!——懒,懒得动,找各种主客观借口
之前一直在搭建框架,做一些外围的工作,但始终绕不开大数乘法,因为这是核心的核心;
最近几月,真正再扎入进去,发现人的状态反而变好了,失眠焦虑也治愈了,实在神奇!

之所以称为初步,是因为:
  • 仅完成了 C++ 基本编码,搭以少量汇编
  • 暂未作线程池优化
  • 暂未作 SIMD 优化
  • 其它计划中的任务,有待展开

亮点还是有的:
  • 采用了最新的 C++ 标准,用到了许多模板类的技术(此乃自我修炼术),通用性强
  • 对于 FNT 算法,又有了些小优化(在其它开源代码中尚未发现),并已得到验证

未来还有漫长的路要走,请大家静待花开吧。。。
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
回复 支持 2 反对 0

使用道具 举报

发表于 7 天前 | 显示全部楼层
gxqcn 发表于 2026-4-10 17:28
再次,是因为早在 2004 年 HugeCalc v3.0 就调通了,当时用的 VC6.0,标准被迫停留在 C++98

20 多年后再次 ...

如果单纯是编程上的问题(比如代码库的更新换代),是不是可以多考虑交给AI来做或者辅助?
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
 楼主| 发表于 7 天前 | 显示全部楼层
春节前曾尝试过 AI 辅助,但体验比较糟糕,只能做些局部的优化。
也许是我的运用水平不高吧。
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
您需要登录后才可以回帖 登录 | 欢迎注册

本版积分规则

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

GMT+8, 2026-4-20 16:37 , Processed in 0.032467 second(s), 19 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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