代码之家  ›  专栏  ›  技术社区  ›  Eugene Smith

最快的128位整数库[关闭]

  •  14
  • Eugene Smith  · 技术社区  · 14 年前

    我正在开发一个CPU密集的数值计算应用程序。这是一个计算数学研究项目,不涉及太多细节,它涉及到为大整数x计算某个函数f(x)。

    有人知道哪个库可以最快地对128位整数进行运算吗?

    3 回复  |  直到 14 年前
        1
  •  16
  •   Jens Gustedt    14 年前

    你没有提到你的平台/可移植性要求。如果你愿意使用 gcc clang __uint128_t __int128_t

    在任何情况下,都应该可以在 合同通用条款 N 合成一个宽度整数 2N . 这可能是一个很好的起点,使一个独立的图书馆为此目的。

        2
  •  5
  •   rafak    14 年前

    这个 ttmath 图书馆做你想做的事。

        3
  •  1
  •   DarenW    14 年前

    这可能不适合所有人,但我要做的是选择性能最高的任意整数库与源代码和其他适合的工作,并黑客它是固定的整数大小。将一些变量“nbits”更改为128硬编码。它可能在运行时分配内存,直到那时才知道字节数。将其更改为使用struct和数据,保存每次读取数据时取消引用的指针。用手展开某些关键循环。硬编码任何其他可能是关键的。然后编译器将有一个更容易的时间优化东西。当然,这其中大部分将是组装,使用花哨的SIMD和本周正在使用的任何技术。

    但是对于那些没有我那么疯狂的人来说,可能有一个可用的库使用模板或者有一些生成定制代码的方法。而且,有些编译器有一个“long-long”整数类型,这可能是合适的。