最快的128位整数库

Eug*_*ith 14 c c++ numerical biginteger

我正在研究CPU繁重的数值计算应用程序.没有进入很多细节,它是一个计算数学研究项目,涉及为大整数x计算某个函数f(x).

现在,所有内容都是在x64模式下使用C++实现的,使用本机64位整数.这限制了我x <2 ^ 64~1.8*10 ^ 19.我想更进一步,为此,我需要一个执行128位算术的库.它必须非常快.特别是,整数除法应该很快.否则我会坐在这里等待结果直到感恩节.而且我宁愿不重新发明轮子.

我在维基百科上找到了一个大约20个大整数库的列表,但其中大多数似乎都是针对任意精度的数字,这对我的任务来说太过分了,我不需要额外的费用.

有谁知道哪个库可以最快地运行128位整数?

Jen*_*edt 16

您没有提到您的平台/可移植性要求.如果您愿意使用gcc或者clang,在64个平台上,他们有免费的午餐一个内建128位的类型,__uint128_t__int128_t.也许其他平台有类似的类型扩展.

在任何情况下,都应该可以在gcc源中找到相应的通用代码,这些代码组合了两个宽度的整数N来合成一个宽度的整数2N.这可能是为此目的创建独立库的良好起点.


raf*_*fak 5

ttmath库你想要做什么.