c++ MPIR/MPFR互操作性



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

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

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

是否有可能以某种方式将MPIR中的整数转换为MPFR整数以使用日志功能?当然,不优雅的方法是使用字符串作为中介,但这要花费很多时间。如有任何帮助,不胜感激。

如果上下文有帮助,我试图实现这个逻辑:2的最高幂小于n。

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

如果你想知道如何同时安装它们,这里有两个视频可以帮助你:https://www.youtube.com/watch?v=S06mX5dwIJ0https://www.youtube.com/watch?v=je5ei4rCFiw

最新更新