gmp 相关问题

GNU多精度库(GMP)是一个成熟的免费库,用于任意精度算术,支持大有符号整数,有理数和浮点数。基本接口适用于C,但包含Ada,C ++,C#,OCaml,Perl,PHP和Python等其他语言的包装器。它在GNU LGPL下发布,用于加密应用程序和Mathematica和Maple等计算机代数系统。

SIGSEGV 与 MPZ_Class 和 eagerst

我是 C++ 编程新手,为了改进我想实现 bleichenbacher 攻击。我之前用 python 构建了一个,并认为这将是学习 c++ 的一个很好的练习......

回答 1 投票 0

如何使用 GMP 高效地添加 3 个大整数

我想对 ~2048 位有符号整数执行 x = a + b + c 。目前我的代码看起来像 mpz_add(x, a, b); mpz_add(x, x, c); 有没有一个函数可以做到这一点?这种事在我的身上发生过很多次

回答 3 投票 0

SWIG、Python-C++ 和 GMP – 将 int 类型参数传递给 SWIG 生成的共享库中接受 mpz_class 类型参数的函数

我正在尝试实现一个包装器,用于对公钥运行费马分解测试。我已经使用 SWIG 成功生成了共享库: 费马.h: #ifndef FERMAT_H #定义FERMAT_H #我...

回答 1 投票 0

$PATH 或 /usr5bin 中没有可用的 M4

作为一个漫长而肮脏的故事的一部分,其最终目标只是安装 GMP 以与 Windows 中的 code::blocks 一起使用,我正在尝试配置 gmp。我使用以下命令执行此操作: ./配置...

回答 5 投票 0

为什么 OpenMP 不能加速我的 C 程序?

我是 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 循环的每次迭代都需要前一个循环完成。 编译器无法并行化任何内容。

回答 1 投票 0

任意精度整数词汇表中的肢体?

“肢体”在任意精度整数域中指什么?

回答 2 投票 0

需要 GNU MP 库版本 4.2 或更高版本

这是我在尝试安装 PHP-GMP 扩展时遇到的情况。 我想做的是: 使用brew install autoconf gmp下载gmp 下载PHP(我使用的是7.3.24版本)...

回答 2 投票 0

在 GMP 的 mpz_t 和 NTL 的 ZZ 之间转换

我正在使用 NTL 和 GMP 扩展一个小型库。我使用 NTL 是为了方便(并符合现有 API),但我将切换到 GMP(和 MPFR)来处理真正对性能至关重要的内容。 ...

回答 2 投票 0

AVX-512可以用来在C++中的64位计算机上计算两个256位整数的乘法吗?是否使用汇编语言

关于任意精度算术:AVX-512可以用来在C++中的64位计算机上计算两个256位整数的乘法吗? 是否存在 512 位的固有整数数据类型...

回答 1 投票 0

由于整数范围不同,JS 和 PHP 的结果不同

函数 hs(e, n) { 返回 e * n % e; } 警报(HS(1752865668、1716717484170)); //结果:1752622684 <script> function hs(e, n) { return e * n % e; } alert(hs(1752865668, 1716717484170)); //result: 1752622684 </script> <?php function hs($e, $n) { return $e * $n % $e; } echo hs(1752865668, 1716717484170); //result: 386969652 ?> 两个结果不同,因为它们的 53 位和 32 位整数范围不同。在这种情况下,如何才能得到与 JS 在 PHP 中计算的结果相同的结果呢? (不使用 GMP:GNU 多精度)(使用 PHP 8+) 简而言之:我需要与 JS 完全显示相同结果的 PHP 代码片段。 谢谢! function hs($e, $n) { return bcmod(sprintf('%f', $e * $n), $e); } 这段代码给了我相同的结果,它需要 BCMath 扩展。 两个结果都不正确,因为它们在 64 位环境中也超出了两种语言的最大整数: $large_number = 9223372036854775807; var_dump($large_number); //int(9223372036854775807) $large_number = 9223372036854775808; var_dump($large_number); //float(9.2233720368548E+18) console.log(Number.MAX_SAFE_INTEGER); //9007199254740991

回答 2 投票 0

如何解决'std::__cxx11::basic_ostringstream<char, std::char_traits<char>,std::allocator<char>>::basic_ostringstream()@GLIBCXX_3.4.26'错误?

我想在 Code::Blocks C++ 项目中使用 GiNaC 库,但在项目构建过程中遇到以下错误: ../../ginac/lib/libginac.so:对 `std::__cxx11::

回答 2 投票 0

C++ 的 GMP:`auto` 带来更多麻烦

这里有更多关于 GMP C++ 类接口的奇怪行为,与 C++ auto 关键字相关。我之前的问题也是关于这个关键字的,它的删除解决了我的问题。然而它是

回答 1 投票 0

从 Python 调用 GMP C 函数时出现分段错误和内存泄漏

今天工作比较安静,所以团队被指示做一些“自我开发”。我决定从 Python 调用 C 函数来享受一些乐趣。我已经使用 Rust 度过了一段愉快的时光...

回答 1 投票 0

C++ 的 GMP 库:将 `mpz_class` 转换为 `unsigned long`

我第一次接触GMP大整数...下面的简单测试无法编译,因为没有找到get_ui成员函数。 GMP手册中提到了函数get_ui。 #包括<

回答 1 投票 0

使用 mpz 时在 tcache 2 中检测到双重释放是什么意思?

我使用这个程序来存储 mpz 值,但是当我添加 0 ( 400000000000000000000000000000000000000 而不是 40000000000000000000000000000000000000 -> 38 0 而不是 37)我得到 自由():双

回答 1 投票 0

在 Mac OS 和 PyCharm 上安装 GMP 库

我正在尝试运行我的 Cython 项目。其中一个标头是 gmpxx.h。 即使我已经使用brew install gmp安装了gmp库。我无法使用 python3 setup.py 运行我的 cython 文件

回答 1 投票 0

Charm-crypto lib中GT上加减元素时出现系统错误

代码如下: 从 charm.toolbox.pairinggroup 导入 PairingGroup、ZR、G1、G2、GT、配对 groupObj = PairingGroup('MNT224') gt = groupObj.random(GT) g2 = groupObj.random(GT) 结果 = gt -g2 呃...

回答 1 投票 0

“gmpxx.h:在 Visual Studio Code 中没有这样的文件或目录 | gcc”

我正在尝试包含 gmpxx.h 以在我的代码中使用。 编译后只会抛出此错误: gmpxx.h: 没有这样的文件或目录 |海湾合作委员会 我使用 MSYS 安装了 GMP,从它的外观来看,它确实有效...

回答 1 投票 0

“gmpxx.h:没有这样的文件或目录 | gcc”在 Visual Studio 代码中,c++

所以我尝试以某种方式包含 gmpxx.h 以在我的代码中使用。 唯一的问题是它在编译后抛出错误:“gmpxx.h:没有这样的文件或目录| gcc”。 我使用 ms 安装了 gmp...

回答 1 投票 0

如何在 Windows 上为 Dev-C++ 安装 C++ 库

我下载了一个名为 GMP 的库(它用于进行任意大数字的计算),但我不知道如何实际安装和使用它。我找到的所有说明都告诉我要...

回答 1 投票 0

© www.soinside.com 2019 - 2024. All rights reserved.