MSVC ++“官方”任意精度库

时间:2011-10-11 23:29:34

标签: visual-c++ arbitrary-precision

我正在寻找一个特定于MSVC ++的任意精度库。由于我不需要跨平台兼容性来处理我正在工作的东西,所以我宁愿不要把它弄得一团糟。

我试着看NTL,但在看到“These steps work with MSVC++ v6”这样的陈述后,我忍不住将它过时地过时。最新版本:2009 08 14

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

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

2 个答案:

答案 0 :(得分:5)

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

它基于GMP和取代NTL,它应该被放弃,因为它没有被维护。

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

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

configure --cpu-k10

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

答案 1 :(得分:0)

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中都可以轻松编译。