问题标签 [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.
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 最终会咬我吗?
visual-c++ - 用 gmp 添加浮点数会给出“正确”的结果,有点像
在下面的代码中,我使用mpf_add
添加两个浮点值的字符串表示。我现在不明白的是为什么2.2 + 3.2 = 5.39999999999999999999999999999999999999
。我会认为这gmp
是足够聪明的给予5.4
。
我不理解 gmp 如何浮动?
(顺便说一句,当我第一次写这篇文章时,我不确定如何插入小数点,因此最后是加/减数字)
c - 如何使用 GMP 计算 2 ^ -18?
令我尴尬的是,我刚刚发现,向负指数提供负指数mpz_pow_ui
效果不佳。(“手册确实说无符号长,你知道。”)对于其他mpz_pow
功能,手册使用了我不理解的概念。例如下面的“ base ^ exp mod mod ”:
在以下代码中,我必须进行哪些更改才能使其能够处理负指数?
c - GMP不能应付一个领先的“+”?
考虑以下代码
在第一个实例中,在 mpf_get_str 调用之后,buff 包含“123”。在第二个中,buff 包含“-123”。但在第三个中,buff 包含一个空字符串(“”)。
这是使用 GMP 4.2.4。也许我需要再次查看手册,但我认为前导“+”会像前导“-”一样容易处理。
c - GMP mpf_add 的精度丢失。我的数字哪里去了?
我将两个负浮点数相加:
根据 Perl,使用 bignum 和 Math::BigFloat,答案是
但是,根据 GMP,使用下面的代码,答案是
我哪里出错了?剩下的“14467412141”怎么了?
样本输出:
PS我尝试添加一个mpf_set_default_prec
大于64(默认)值的调用,但没有效果。
c - 如何在 GMP 发生之前或之后检测尾数精度溢出?
我要问的问题涉及尾数,而不是指数,并且与我在本周早些时候提出的关于两个负浮点数之和的“缺失”数字的问题有很大关系。
鉴于尾数具有可变精度,如何判断是否已经溢出尾数的当前精度设置?或者,从主动方面来看,如何判断尾数精度是否可能溢出?
亲切的问候,布鲁斯。
visual-c++ - 为什么释放 calloc'ed 内存会使我的 VC6 项目崩溃?
比较这两个基本相同的功能。首先,buff
使用 _alloca 分配内存。这工作正常。第二种,使用 calloc 和 free 代替 _alloca。这崩溃了。
奇怪的是,我在我拥有的几乎所有其他 GMP 包装函数中都使用了 calloc/free 技术,而且它们都可以工作。在这里他们没有。有任何想法吗?
1:
2:
c - 使用 GMP 的 bignum 的平方根
我需要准确地得到一个 210 位数字的平方根,我认为 GMP 是适合这项工作的工具,我做错了什么?
输入:
24524664490027821197651766357308801846702678767833275974341445171506160083003858 72169522083993320715491036268271916798640797767232430056005920356312465612184658 17904100131859299619933817012149335034875870551067
输出:
49522383313031109809242226159886283348695660460381271324714928680654813093947239 9634016783775955618921028
24524664490027821197651766357308801846702678767833275974341445171506160083003858 72169522083993320715491034366358025027526868495267716284867043049443779615862887 47102011391915422793532619329760963626718900576784
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/
language-agnostic - 在计算之前可以知道阶乘有多大吗?
我正在使用 GMP 来计算非常大的阶乘(例如 234234!)。有没有办法知道,在计算之前,结果将(或可能)有多少位数?