问题标签 [gmp]

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 投票
1 回答
1983 浏览

visual-c++ - 转换为 Windows 库的 MinGW 库在 VC++6 中给出了奇怪的链接

我使用了 MinGW.a到 Windows的.lib转换过程,详见 gmp-discuss 列表中的一个线程,如下所示(针对使用 --disable-shared --enable-static 创建的库。)

我现在有一个.lib文件,VC++6 似乎可以毫无困难地链接它。我现在担心的是我从链接阶段收到的警告消息:

在程序的这一点上,这些对我的 DLL(包装了某些 GMP 功能)的运行没有任何影响。但这足够好吗?将这三个符号从libgmp.a链接到我的 Windows DLL 最终会咬我吗?

0 投票
3 回答
2549 浏览

visual-c++ - 用 gmp 添加浮点数会给出“正确”的结果,有点像

在下面的代码中,我使用mpf_add添加两个浮点值的字符串表示。我现在不明白的是为什么2.2 + 3.2 = 5.39999999999999999999999999999999999999。我会认为这gmp是足够聪明的给予5.4

我不理解 gmp 如何浮动?

(顺便说一句,当我第一次写这篇文章时,我不确定如何插入小数点,因此最后是加/减数字)

0 投票
5 回答
2392 浏览

c - 如何使用 GMP 计算 2 ^ -18?

令我尴尬的是,我刚刚发现,向负指数提供负指数mpz_pow_ui效果不佳。(“手册确实说无符号长,你知道。”)对于其他mpz_pow功能,手册使用了我不理解的概念。例如下面的“ base ^ exp mod mod ”:

在以下代码中,我必须进行哪些更改才能使其能够处理负指数?

0 投票
1 回答
225 浏览

c - GMP不能应付一个领先的“+”?

考虑以下代码

在第一个实例中,在 mpf_get_str 调用之后,buff 包含“123”。在第二个中,buff 包含“-123”。但在第三个中,buff 包含一个空字符串(“”)。

这是使用 GMP 4.2.4。也许我需要再次查看手册,但我认为前导“+”会像前导“-”一样容易处理。

0 投票
2 回答
852 浏览

c - GMP mpf_add 的精度丢失。我的数字哪里去了?

我将两个负浮点数相加:

根据 Perl,使用 bignum 和 Math::BigFloat,答案是

但是,根据 GMP,使用下面的代码,答案是

我哪里出错了?剩下的“14467412141”怎么了?

样本输出:

PS我尝试添加一个mpf_set_default_prec大于64(默认)值的调用,但没有效果。

0 投票
1 回答
393 浏览

c - 如何在 GMP 发生之前或之后检测尾数精度溢出?

我要问的问题涉及尾数,而不是指数,并且与我在本周早些时候提出的关于两个负浮点数之和的“缺失”数字的问题有很大关系。

鉴于尾数具有可变精度,如何判断是否已经溢出尾数的当前精度设置?或者,从主动方面来看,如何判断尾数精度是否可能溢出?

亲切的问候,布鲁斯。

0 投票
6 回答
790 浏览

visual-c++ - 为什么释放 calloc'ed 内存会使我的 VC6 项目崩溃?

比较这两个基本相同的功能。首先,buff使用 _alloca 分配内存。这工作正常。第二种,使用 calloc 和 free 代替 _alloca。这崩溃了。

奇怪的是,我在我拥有的几乎所有其他 GMP 包装函数中都使用了 calloc/free 技术,而且它们都可以工作。在这里他们没有。有任何想法吗?

1:

2:

0 投票
3 回答
6698 浏览

c - 使用 GMP 的 bignum 的平方根

我需要准确地得到一个 210 位数字的平方根,我认为 GMP 是适合这项工作的工具,我做错了什么?

输入:

24524664490027821197651766357308801846702678767833275974341445171506160083003858 72169522083993320715491036268271916798640797767232430056005920356312465612184658 17904100131859299619933817012149335034875870551067

输出:

49522383313031109809242226159886283348695660460381271324714928680654813093947239 9634016783775955618921028

24524664490027821197651766357308801846702678767833275974341445171506160083003858 72169522083993320715491034366358025027526868495267716284867043049443779615862887 47102011391915422793532619329760963626718900576784

0 投票
2 回答
27791 浏览

c++ - 用 Visual Studio 构建 GMP 库?

有没有一种简单的方法可以在 Windows 下使用 Visual Studio 2005构建 GMP(GNU 多精度算术库, http ://gmplib.org)?我试图找到有关自己建立图书馆的信息,但找不到任何真正帮助我的东西。我自己对构建库不是很有经验(我已经设法构建了 boost,但仅此而已)。

或者是否有我不知道的稳定(预建)GMP 发行版?

MPIR 是一个有效的替代方案(http://www.mpir.org)吗?GMP 站点上关于 MPIR 的评论:对于某些 Windows 用户来说,这种“愤怒的 GMP 分支”可能是真正 GMP 的替代品,但他们必须处理大量反 GMP 情绪。

编辑: MPFR C++ 包装页面包含 Visual Studio 的 GMP/MPFR 解决方案的信息/链接以及编译的 gmp/mpfr 库:http: //www.holoborodko.com/pavel/mpfr/

0 投票
6 回答
1418 浏览

language-agnostic - 在计算之前可以知道阶乘有多大吗?

我正在使用 GMP 来计算非常大的阶乘(例如 234234!)。有没有办法知道,在计算之前,结果将(或可能)有多少位数?