我正在处理一个处理非常大的整数的项目,并且到目前为止已经使用基于MPIR的GMPlib库来完成整个项目。
我现在需要一个对数函数,MPIR不包含该函数。另一个库MPFR,也基于GMPlib,确实有这个。
两者都有一个整数类,它们的名字相似,MPIR有mpz_t,MPFR有mpfr_t。看两者,它们似乎都基于GMPlib中的相同基类。
是否有可能以某种方式将MPIR中的整数转换为MPFR整数以使用日志函数?当然,不优雅的方式是使用字符串作为中介,但这需要花费几秒钟。任何帮助将不胜感激。
如果上下文有帮助,我尝试实施此逻辑:Highest power of 2 less than n。
答案 0 :(得分:0)
MPIR和MPFR可以同时安装。您可以将MPIR对象转换为字符串,然后使用该字符串创建MPFR对象,但是与在整个程序中简单地使用mpfr_t类型相比,这可能会效率低得多。
如果您想了解有关如何将两者安装在一起的说明,请参考以下两个视频: https://www.youtube.com/watch?v=S06mX5dwIJ0 https://www.youtube.com/watch?v=je5ei4rCFiw