1

我正在处理一个处理非常大的整数的项目,并且到目前为止整个项目都使用了基于GMPlib的MPIR库。

我现在需要一个 MPIR 不包含的对数函数。另一个库MPFR也基于 GMPlib,确实有这个。

两者都有一个整数类,它们的名称相似,MPIR 有 mpz_t,MPFR 有 mpfr_t。从两者来看,它们似乎都基于 GMPlib 中的相同基类。

是否可以以某种方式将 MPIR 中的整数转换为 MPFR 整数以使用 log 函数?不优雅的方法当然是使用字符串作为中介,但这会花费几秒钟。任何帮助,将不胜感激。

如果上下文有帮助,我正在尝试实现这个逻辑:Highest power of 2 less than n

4

1 回答 1

1

MPIR 和 MPFR 可以同时安装。您可以将 MPIR 对象转换为字符串,然后使用该字符串创建 MPFR 对象,但这可能比在整个程序中简单地使用 mpfr_t 类型效率低得多。

如果您想了解如何将它们安装在一起,这里有两个视频可以帮助您: https ://www.youtube.com/watch?v=S06mX5dwIJ0 https://www.youtube.com/watch? v=je5ei4rCFiw

于 2018-07-30T17:15:45.257 回答