我正在寻找一个特定于MSVC ++的任意精度库。由于我不需要跨平台兼容性来处理我正在工作的东西,所以我宁愿不要把它弄得一团糟。
我试着看NTL,但在看到“These steps work with MSVC++ v6”这样的陈述后,我忍不住将它过时地过时。最新版本:2009 08 14
。
MPIR看起来很有前途(最新版2011 06 14
),这是我迄今为止发现的最好的东西。
有关从MSVC ++(本机代码,而不是.NET)执行至少 128位浮点运算的任何建议吗?
答案 0 :(得分:5)
MPIR是目前可用的最佳C ++多精度(任意精度)算术库。它是跨平台的事实是一个加号。在MSVC ++ 2010上编译很容易,你只需要确保打开README.TXT(下载附带)并阅读the Documentation(在列表中静默列为第3个下载但是实际上非常好。)
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中都可以轻松编译。