问题标签 [mpir]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
746 浏览

c++ - MPIR gcc compilation - cannot find -lmpir

I am trying to compile a simple C program using GCC with MPIR under MinGW on my Windows 7 machine. I installed MPIR successfully (I guess) with configure, make, make check and make install (did not use "sudo" - what is this?).

The program is called "mytest.cpp", sits in the top folder of MPIR, namely C:/MPIR/mpir-2.7.0/, where also "mpir.h" is sitting (is it "the" (correct one? are there several?) mpir.h?):

I tried compiling via

gcc mytest.c -o mytest -lmpir -I/C:/MPIR/mpir-2.7.0/

with the hope that GCC would then be able to locate mpir.h, "-lmpir" because a helpful developer told me to; but then it says:

"C:/mingw/ [...] /bin/ld.exe: cannot find -lmpir"

where "[...]" stands for some directory up-and-down-climbs inside the "minGW" directory. However, I am with the shell currently in the C:/MPIR/mpir-2.7.0/ directory.

What is wrong? How to make GCC find the mpir files? Should the compile option "-I" be spelled differently? I also heard about some "-L" option but could not find that anywhere. Thanks.

0 投票
0 回答
326 浏览

c++ - VS2015 mpirxx 错误 C4146

我正在使用 Visual Studio 社区 2015,我想用 mpirxx 建立一个项目。

最近我已经编译了 mpirxx 代码来获取调试库文件。在我的项目中,我包含了 mpirxx.h 文件并链接了 mpirxx.lib,但是当我尝试编译时,我从 mpirxx.h 的代码周围的多行中得到 17 个相同的错误。

这是一个例子:

这是图书馆的已知问题吗?我应该改变它吗?任何帮助表示赞赏。

0 投票
1 回答
3276 浏览

c++ - 从函数返回 mpz_t

我在 C++ 中使用 mpir 库时遇到问题。是否可以从函数返回 mpz_t 值?当我尝试这样做时,出现以下错误:

0 投票
0 回答
95 浏览

gmp - Visual Studio 错误 2784:无法从 FLINT 推导出 GMP 的模板参数

我在 Visual Studio 2012 中运行“使用 YASHE 和 FV 水平同态密码系统的同态西蒙加密”(https://github.com/tlepoint/homomorphic-simon )的源代码时遇到问题。

我正在使用 FLINT 2.5.2、MPIR 2.7.2、MPFR 1.3.1 并收到许多错误,如下所示:

}

错误 C2784: '__gmp_expr,mpir_ui,__gmp_binary_multiplies>> operator *(const __gmp_expr &,unsigned __int64)' : 无法从 'int' fvkey.cpp 推导出 'const __gmp_expr &' 的模板参数 115 错误 C2784: '__gmp_expr,__gmp_binary_multiplies> > operator *(unsigned short,const __gmp_expr &)' : 无法从 'flint::fmpzxx' 推导出 'const __gmp_expr &' 的模板参数
错误 C2784: '__gmp_expr,__gmp_binary_minus>> operator -(unsigned short,const __gmp_expr &) ' : 无法从 'const flint::fmpzxx' fvkey.cpp 116 推导出 'const __gmp_expr &' 的模板参数

错误 C2784: '__gmp_expr,__gmp_binary_divides>> operator /(unsigned short,const __gmp_expr &)' : 无法从 'flint::fmpzxx' fvkey.cpp 推导出 'const __gmp_expr &' 的模板参数 135 错误 C2784: '__gmp_expr,__gmp_binary_multiplies >> operator *(signed char,const __gmp_expr &)' : 无法从 'flint::fmpzxx' fvkey.cpp 115 推导出 'const __gmp_expr &' 的模板参数

错误 C2784: '__gmp_expr,__gmp_binary_minus>> operator -(long double,const __gmp_expr &)' : 无法从 'const flint::fmpzxx' 'flint::fmpzxx' fvkey.cpp 116 推导出 'const __gmp_expr &' 的模板参数

错误 C2784: '__gmp_expr,mpir_ui,__gmp_binary_multiplies>> operator *(const __gmp_expr &,unsigned int)' : 无法从 'int' 'flint::fmpzxx' fvkey.cpp 115 推导出 'const __gmp_expr &' 的模板参数

错误 C2678:二进制“<<”:未找到采用“flint::fmpzxx_expression”类型的左侧操作数的运算符(或没有可接受的转换)fvkey.cpp 50

我试图解决它几个星期,但仍然没有成功。是否是由fmpz-conversions.hFLINT的“”引起的?

请帮助我弄清楚我做错了什么。我已将我的视觉项目上传到http://1drv.ms/1LFpCI4

0 投票
1 回答
137 浏览

c - 使用 MPIR (GMP) 库将 mpf_t 值保存到文件

我正在尝试将我的号码保存在文件中,但程序不断崩溃:

而不是 fprintf 我试过:

gmp_fscanf(f, "%F", &zbroj)

mpz_out_str(f, 10, zbroj)

sprintf(f, "%F", zbroj)

0 投票
0 回答
108 浏览

c++ - Mpir Windows 使用 --enable-gmpcompat 构建?

根据mpir 文档,在运行时使用--enable-gmpcompat switch./configure将产生gmp.libgmp.h兼容性。但是,在 Windows 构建中没有一个词如何做到这一点。如何在 Visual Studio 项目中执行此操作?我假设标志不只是重命名目标,而是在幕后做一些其他的事情。

0 投票
0 回答
473 浏览

visual-studio - 如何让 Visual Studio 2008 进入程序文件?(64 位)

因此,我按照说明安装 MPIR(更大的整数库),这是我在 GMP 之前选择的,因为在 Windows 下载中可以获得更多信息,并且对于典型用户来说更容易安装。基本上我找到了这个简单的教程http ://www.exploringbinary.com/how-to-install-and-run-gmp-on-windows-using-mpir/

我所做的与本教程唯一不同的是我的 Visual Studio 9.0 存储在 Program Files (x86) 中,然后当我继续打开 Visual Studio 2008 时,它在我的解决方案“mpir”中找不到任何项目。

所以我不需要妥协教程中所述的步骤(必须在确切的目录中有 Visual Studio),然后看看事情会如何发展。

这是我当前的Visual Studio 2008 (Express Edition All-in-One DVD ISO)下载:https ://go.microsoft.com/fwlink/?LinkId=104679,然后我使用WinRAR打开它并运行允许的设置应用程序我可以从四个(C#、C++、Basic、Web Developer)中进行选择。我选择C++并继续将设置为 Program Files (x86) 的目标文件夹更改为Program Files安装后我总是以 Visual Studio 结束 Program Files (x86)。(我可以创建一个具有随机名称的文件并在该文件中安装 Visual Studio,我也可以移动Visual Studio 从 Program Files (x86) 或随机文件到Program Files,但随后将无法检测到 Visual Studio,我将无法在其中打开“mpir.sln”。)

0 投票
0 回答
735 浏览

c# - 为什么 C# BigInteger 比 C++ MPIR 快?

我写了一个简单的单线程应用程序来检查给定的数字是否是素数。它旨在支持任意大的整数,所以我在 C# 中使用了BigInteger类。这是代码:

但是,我想研究用 C++ 编写相同的应用程序。我设法通过使用 Windows 上的MPIR库来实现这一点。完整的代码代码和 Visual Studio 项目可以在 GitHub 上找到:https ://github.com/mathusummut/PrimeCheckerCpp ,但这里是主循环:

当我运行 C# 可执行文件以检查是否2305843009213693951为素数时,我得到以下输出:

而当我运行 C++ 可执行文件时,我得到以下输出:

为什么 C++ 实现较慢?MPIR 库在这里有问题,还是我做错了什么?

注意:两者都在 64 位发布模式下编译和测试,启用了完全优化,没有附加调试器。

注意:@hatchet 是对的,当我尝试使用 64 位无法表示的整数时,C++ 实现更快。比如trying 108446744073709551647,C#版本用了13.5分钟,而C++版本只用了6.5分钟!

0 投票
0 回答
105 浏览

vba - VBA7 64位的MPIR?

我能够使用 MSYS2 和 Mingw-w64 构建 MPIR

导致 libmpir-23.dll。我有带有 VBA7 的 64 位 Excel,我想用它来调用大整数函数的 dll。我认为这应该是可能的,因为 64 位版本的 MPIR 和 VBA 应该使用 fastcall,并且 MPIR 大整数类型的组件已经很好地对齐到四个或八个字节块。但是,在运行初步测试以尝试设置和读取 MPIR 大整数时,我没有得到预期的结果:

结果L是 0,而不是 525,在第一次诊断时,mpz_get_str(es, p, f)是一个空字符串,并且es没有从"jjjj". 在最后一次诊断中,L不是 12,而是 100977072。

我没有 VS,也没有任何构建 dll 的经验。我在网上找到的所有关于 MPIR 或 GMP 的答案都与 32 位版本的 VBA 和 dll 相关,而且它们似乎不适用于 64 位的情况。

我想知道是否可以使用 MSYS2 构建 MPIR 并在 VBA7 64 位中使用生成的 dll。

0 投票
1 回答
651 浏览

uwp - 为 UWP Visual Studio 2017 构建 MPFR 和 MPIR

有谁知道是否可以使用 Visual Studio 2017 15.3构建MPFRMPIR库以在 UWP 应用程序中使用?

顺便说一句,即使不是 UWP,我也无法构建这些库 - 错误太多:(

我正在尝试按照自述文件和安装说明进行操作,但某些文件总是丢失或出现错误,例如

MSB3721 命令 ""C:\Program Files\yasm\"vsyasm.exe .......\mpn\x86w\umul_ppmm.asm" 以代码 1 退出。