快速计算数字的幂(MPFR库)

问题描述 投票:0回答:1

我正在使用GMPMPFR库处理大量数字,我需要快速计算数字的幂。增强的结果将始终为整数,但潜在值可以为浮点数,也可以不是浮点数。 GMP库可以非常快速地计算幂,但不接受浮动幂(使用mpz_pow_ui函数),MPFR库可以接受浮动幂,但是非常慢,因为它需要高精度才能正确计算整数(使用函数[ C0])。有什么解决办法吗? mpfr_pow如何接受浮动幂,或GMP如何快速(正确)计算整数?

MPFR
c gmp bignum mpfr
1个回答
0
投票

//Ex: mpz_pow_ui(mpz_power, base, 4790) //Fast // power = 4790.60 mpfr_pow(mpfr_power, base, power, MPFR_RNDN) //Slow 函数速度很快,因为可以通过乘法来进行计算。请注意,如果不需要精确的整数结果(如果指数较大,则很大),因此mpz_pow_uimpfr_pow_ui的速度会更快,因为可以用较小的精度进行乘法并取整。

© www.soinside.com 2019 - 2024. All rights reserved.