GNU多精度库(GMP)是一个成熟的免费库,用于任意精度算术,支持大有符号整数,有理数和浮点数。基本接口适用于C,但包含Ada,C ++,C#,OCaml,Perl,PHP和Python等其他语言的包装器。它在GNU LGPL下发布,用于加密应用程序和Mathematica和Maple等计算机代数系统。
Stack 尝试查找 libgmp 然后失败,即使根本没有依赖项
我使用 nix-darwin 并在 ~/.stack/config.yaml 中启用了 nix。 今天早些时候我做了一个 sudo nix-collect-garbage -d 然后很多事情开始崩溃。 最小可重现示例: 堆栈新mwe cd mwe ...
我不是程序员,只是时不时写一些供个人使用的代码,所以我没有太多的经验和知识。我在 Linux 上使用 CMake 和 gcc/g++,或者在 Android 上使用 clang(在 Termux 中)....
我的导入/导出 GMP 功能有问题。 我尝试转换负数和正大整数,但是当我使用负数时,我会丢失符号。 有相关的例子吗? 经验...
我使用 GNU BC(基本计算器)对 999,999 求幂到 999,999,它在 10 分钟内得到答案,但是当我想找到一个大文件(1.1 GB)的 999,999 根时,它在 5 小时后显示段错误...
我有一个带有以下标头的小型 C 程序: #包括 我编译它是这样做的: gcc test.c -o test.o -L/gmp_install/lib -lgmp 然后我就可以正常运行了。但它正在使用“st...
C++ GMP 库 ostream 运算符<< compiles but doesn't link?
$ apt-cache 显示 libgmp10 软件包:libgmp10 ... 版本:2:5.0.2+dfsg-2ubuntu2 测试.cpp: #包括 #包括 使用命名空间 std; int main() { mpz_class x = 4...
gmp_mod 参数 #1 ($num1) 不是整数字符串 Hashids 包
我在运行 PHP 8.3 的 Laravel 11 项目中使用最新版本的 Hashids,并偶然发现了一个问题,如下所示,这是一个数字字符串: (new Hashids('', 7))->编码('
GMP 目前开箱即用,精度为 64 位精度(我认为这就是 mp_bitcnt_t 的名称)。 对我来说,我认为这最多可以达到 1x10e-22 左右的值(我在哪里
为了明确起见,我想向我的 C 函数发送一个固定长度的空字符串数组,例如: [“”、“”、“”] 期望数组返回 pop...
这是我的代码,为什么答案不是顺序。 GOMAXPROCS 是 1,我很困惑为什么第一个收到消息的人是最后一个加入队列的 Goroutine! 我知道 P > 1 个例子...
尝试在 Alpine 上安装 GCC 6.4.0 时,我遇到了: 检查 gmp.h 的正确版本...是的 检查 mpfr.h 的版本是否正确...是的 检查 mpc 版本是否正确......
我是 C++ 编程新手,为了改进我想实现 bleichenbacher 攻击。我之前用 python 构建了一个,并认为这将是学习 c++ 的一个很好的练习......
我想对 ~2048 位有符号整数执行 x = a + b + c 。目前我的代码看起来像 mpz_add(x, a, b); mpz_add(x, x, c); 有没有一个函数可以做到这一点?这种事在我的身上发生过很多次
SWIG、Python-C++ 和 GMP – 将 int 类型参数传递给 SWIG 生成的共享库中接受 mpz_class 类型参数的函数
我正在尝试实现一个包装器,用于对公钥运行费马分解测试。我已经使用 SWIG 成功生成了共享库: 费马.h: #ifndef FERMAT_H #定义FERMAT_H #我...
作为一个漫长而肮脏的故事的一部分,其最终目标只是安装 GMP 以与 Windows 中的 code::blocks 一起使用,我正在尝试配置 gmp。我使用以下命令执行此操作: ./配置...
我是 OpenMP 的新手,我试图用它来加速我的 C 程序(使用 GMP)。下面的代码是我所做的素性测试: #包括 #包括 #包括 我是 OpenMP 的新手,我试图用它来加速我的 C 程序(使用 GMP)。下面的代码是我所做的素性测试: #include <stdio.h> #include <stdlib.h> #include <limits.h> #include <math.h> #include <omp.h> #include <gmp.h> int lucas_lehmer(unsigned long int p) { mpz_t M, s, t; // Let M = 2^p - 1 mpz_init_set_ui(t, p); mpz_init(M); mpz_setbit(M, p); mpz_sub_ui(M, M, 1); unsigned long int I; mpz_init_set_ui(s, 4); #pragma omp parallel for { for (i = 3; i <= p; i++) { printf("Processed: %d\n", i-3); mpz_mul(s, s, s); mpz_sub_ui(s, s, 2); /* mpz_mod(s, s, mp) but more efficiently done gisen mod 2^p-1 */ if (mpz_sgn(s) < 0) mpz_add(s, s, M); /* while (n > mp) { n = (n >> p) + (n & mp) } if (n==mp) n=0 */ /* but in this case we can hase at most one loop plus a carry */ mpz_tdiv_r_2exp(t, s, p); mpz_tdiv_q_2exp(s, s, p); mpz_add(s, s, t); #pragma omp parallel { while (mpz_cmp(s, M) >= 0) mpz_sub(s, s, M); } } } int res; res = !mpz_sgn(s); mpz_clear(t); mpz_clear(M); mpz_clear(s); return res; } int main() { unsigned long int p; printf("Enter an exponent:"); scanf("%d", &p); int boolean; boolean = lucas_lehmer(p); if (lucas_lehmer(p)) { printf("\nPrime number: True\n"); } else { printf("\nPrime number: False\n"); } system("pause"); return 0; } 我添加了#pragma omp parallel for和#pragma omp parallel,看看程序的性能是否有所提高。 使用命令g++ lucas_lehmer.c -lgmp -I C:/gmp-6.2.0/include/ -L C:/gmp-6.2.0/lib/(我使用MinGW-MSYS)编译后,与不使用OpenMP的代码相比,我发现代码没有加速。这里出了什么问题?我该如何解决这个问题? 可选问题:上面的代码似乎循环有问题。它在检查之前重复循环两次。我该如何预防这种情况? 您的代码纯粹是顺序的。每行代码都会读取并修改变量“s”,并且 for 循环的每次迭代都需要前一个循环完成。 编译器无法并行化任何内容。
这是我在尝试安装 PHP-GMP 扩展时遇到的情况。 我想做的是: 使用brew install autoconf gmp下载gmp 下载PHP(我使用的是7.3.24版本)...
我正在使用 NTL 和 GMP 扩展一个小型库。我使用 NTL 是为了方便(并符合现有 API),但我将切换到 GMP(和 MPFR)来处理真正对性能至关重要的内容。 ...
AVX-512可以用来在C++中的64位计算机上计算两个256位整数的乘法吗?是否使用汇编语言
关于任意精度算术:AVX-512可以用来在C++中的64位计算机上计算两个256位整数的乘法吗? 是否存在 512 位的固有整数数据类型...