【问题标题】:MSVC++ "official" arbitrary precision libraryMSVC++“官方”任意精度库
【发布时间】:2011-10-11 23:29:33
【问题描述】:

我正在寻找一个特定于 MSVC++ 的任意精度库。因为我的工作不需要跨平台兼容性,所以我宁愿不要把这一切搞得一团糟。

我尝试查看NTL,但在看到诸如“These steps work with MSVC++ v6”之类的语句时,我不禁在精神上将其视为已过时。最新版本:2009 08 14

MPIR 看起来很有前途(最新版本 2011 06 14),这是我迄今为止发现的最好的东西。

对于从 MSVC++(本机代码,而不是 .NET)进行至少 128 位浮点运算的任何建议?

【问题讨论】:

    标签: visual-c++ arbitrary-precision


    【解决方案1】:

    MPIR 是目前可用的最好的 C++ 多精度(任意精度)算术库。它是跨平台的事实是一个加号。在 MSVC++ 2010 上编译很容易,您只需确保打开 README.TXT(下载附带)并阅读the Documentation,(在列表中被悄悄列为第 3 次下载,但实际上相当好)。

    它基于GMP 并取代NTL,因为它没有得到维护,所以应该几乎被放弃。

    MPIR 为 大量 CPU 构建和汇编代码,包括大量的 Intel 和 AMD 芯片。

    我在构建过程中遇到的一个问题(在两台不同的机器上!)是 CPU 类型没有正确识别。在一台机器上我有一个“k102”处理器(可以被认为是“k10”),在另一台机器上我有一个“westmere”(可以被认为是“nehalem”)。无论如何,解决方法是 BROWSE CONFIGURATION.BAT 并查找您的 CPU 类型。当您调用“configure.bat”时,请使用如下行:

    configure --cpu-k10
    

    如果您知道自己拥有兼容 AMD k10 的 CPU。这发生在 AMD 1090T 处理器上。

    【讨论】:

      【解决方案2】:

      MPIR 可以使用 Visual Studio 2017 编译。

      Brian Gladman 维护了一个 MPIR 的分支,可以很好地与 Visual Studio 一起构建: https://github.com/BrianGladman/mpir

      # Open a "Visual Studio x64 Native Tools Prompt"
      cd C:\github
      git clone https://github.com/BrianGladman/mpir
      cd mpir\msvc\vs17
      msbuild gc lib x64 release
      

      如果这不起作用,请尝试在同一目录中运行 gen_*.bat 文件。

      它还需要一个 Windows SDK。

      Brian 还维护了一个在 Visual Studio 下构建的 MPFR 分支: https://github.com/BrianGladman/mpfr

      Boost 还包括用于 MPFR 和 GMP 多精度库的 C++ 绑定。 Boost 维护良好,可以在任何版本的 Visual Studio 中轻松编译。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多