4

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

我尝试查看NTL,但在看到诸如“这些步骤适用于 MSVC++ v6 ”之类的声明时,我不禁在精神上将其视为过时的内容。最新版本: 2009 08 14.

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

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

4

2 回答 2

5

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

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

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

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

configure --cpu-k10

如果你知道你有一个 AMD k10 兼容的 CPU。这发生在 AMD 1090T 处理器上。

于 2011-10-12T17:59:13.617 回答
0

MPIR 可以使用 Visual Studio 2017 进行编译。

Brian Gladman 维护了一个与 Visual Studio 完美构建的 MPIR 分支: 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 中轻松编译。

于 2019-05-23T13:01:30.687 回答