问题标签 [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.
c++ - 我需要取一个 mpir 整数并将其输出到 char 缓冲区中
我最近安装了 mpir 并拥有以下代码 (c++) 视觉工作室。
我想将 x 打印到缓冲区中。曾经使用 sprint,但 mpir 似乎没有任何 sprint
谢谢
大卫
c++ - C++ MPIR/MPFR 互操作性
我正在处理一个处理非常大的整数的项目,并且到目前为止整个项目都使用了基于GMPlib的MPIR库。
我现在需要一个 MPIR 不包含的对数函数。另一个库MPFR也基于 GMPlib,确实有这个。
两者都有一个整数类,它们的名称相似,MPIR 有 mpz_t,MPFR 有 mpfr_t。从两者来看,它们似乎都基于 GMPlib 中的相同基类。
是否可以以某种方式将 MPIR 中的整数转换为 MPFR 整数以使用 log 函数?不优雅的方法当然是使用字符串作为中介,但这会花费几秒钟。任何帮助,将不胜感激。
如果上下文有帮助,我正在尝试实现这个逻辑:Highest power of 2 less than n。
c++ - 在 x64 中编译时,平方根查找器(使用 mpir,用 c++ 编写)因多个 lnk2019 编译时链接器错误而失败
最近,我一直在用 C++ 进行高精度数字运算。我一直在创建一个程序来使用 gmp(gnu 多精度)fork mpir(多精度整数和有理数)计算两个的平方根。当我在 Win32 模式下编译程序(1 个文件,大约 100 行)时,它编译并运行良好,但是当我在 x86 模式下开始遇到溢出时,我尝试切换到 x64 以希望进行更高精度的计算。当我尝试编译时,它给了我 8 个非常相似的链接器错误,例如“在函数 wmain 中遇到未解析的外部符号 __gmpf_get_str”。我在msdn和堆栈溢出之类的地方搜索和搜索,但是尽管我花了几个小时,但没有这样的运气。这是代码:
visual-studio - 自动安装 vsyasm
我正在尝试创建一种使用 Microsoft C++ 在 Windows 上构建 mpir 的自动化方法。一个必需的步骤似乎是安装vsyasm,所以我目前的小项目是创建一种自动化的方式来做到这一点,即可以通过批处理文件或程序完成而无需人工干预。
vsyasm 自述文件建议了三种方法:
第一个被 Windows 安全阻止。有什么不需要人工干预的方法吗?
第二种和第三种直接需要人工干预。是否有任何自动等效项,特别是如果您想最终从命令行而不是在 IDE 中构建项目?
我还有其他选择吗?
ubuntu-14.04 - 使用 MPIR 将具有大量数字的数字写入文件
我正在使用 MPIR/Ubuntu 14.04。
我有很多数字的大整数,比如 2^1920,但不知道如何将它写入文件 *.txt
没用。
我可以使用其他一些选项吗?
c++ - C++ MPIR:寻找 mpz_sizeinbase() 的示例用法;
这是我第一次使用 MPIR 库。我必须对大整数进行一些计算。实际上,这些数字最多可以有 2048 位。我必须执行的第一个任务是找到输入的十进制值中的总位数。这需要使用对数。
在 MPIR 库中,我发现这是一个简单的函数,它给出了给定基数中的总位数,这是查找 MPIR 中不可用的对数的替代方法:
返回以给定基数中的位数测量的 op 的大小。base 可以在 2 到 36 之间变化。 op 的符号被忽略,只使用绝对值。结果将是精确的或 1 太大。如果 base 是 2 的幂,则结果总是准确的。如果 op 为零,则返回值始终为 1。此函数可用于确定将 op 转换为字符串时所需的空间。正确的分配量通常比 mpz_sizeinbase 返回的值多两个,一个用于负号,一个用于空终止符。请注意,mpz_sizeinbase(op,2) 可用于定位 op 中的最高有效 1 位,从 1 开始计数。(与从 0 开始的按位函数不同,请参阅第
我正在尝试在我的程序中按如下方式使用此功能:
答案应该是 3。
但是在编译过程中出现以下错误:
错误 13 错误 C2440:“=”:无法从“int”转换为“mpz_t”逻辑操作.cpp 27 1 逻辑操作
错误 14 错误 C2664:“__gmpz_sizeinbase”:无法将参数 1 从“int”转换为“mpz_srcptr”logicaloperations.cpp 28 1 logicaloperations **
这仅用于测试,在我的实际代码中,我将具有如下值:
能否指点一下如何正确使用这个函数的参数?
一个例子就足够了。
c++ - 在我的代码中使用 mpir_ui 类型时遇到问题
我想用这个功能
为此,我必须提供 mpir_ui
所以每当我试图声明这一点时,
它说:
我是否缺少任何头文件?
所有其他类型和功能都可以工作,但只有这一个失败了。
这些是我的头文件
c++ - 在 mpz_t (MPIR) 中分配多少空间?
假设我知道我的号码可能是多少位数(并且我想第一次分配正确的空间量,我该如何计算我需要分配的字节数?我想我总是可以将值设置为是1*10^(num digits)
然后0
之后,但感觉不对,就像我在打败目标一样。
为清楚起见进行编辑:我想知道存储带n
十进制数字的整数需要多少字节,以及 MPIR 的实现是否会影响这一点。@JonathonLeffler 在他的回答的评论中提供了正确的答案。
c++ - MPIR 中 mpf 的余数/模数
我想知道在 MPIR 中检查一个数字是否为整数(或超接近它)的最佳方法是什么。我正在取一个数字的平方根,mpf_sqrt()
然后我想检查平方根是否产生一个整数。使用 java,我使用.remainder()
它BigDecimal
,然后查看余数是大于 .99999 还是小于 1.000001。但我没有看到remainder()
mpf 的模数。我正在使用 Visual Studio C++。感谢所有帮助!