2012-03-29 133 views
2

我正在使用gmp的mpf_t來嘗試獲得非常高的精度。Gmp mpf_pow_ui函數

我的精度範圍從負數萬億到正數萬億,以及這些數字中的1。但是,mpf不支持允許負指數的冪函數,如果我想將我的值提高到10^-30,是否有辦法解決這個問題?

http://gmplib.org/manual/Float-Arithmetic.html#Float-Arithmetic

我的GDP產出,當我嘗試使用mpf_pow_ui,當我的exp爲負:

(gdb) p exp_multiplier 
$9 = {{_mp_prec = 2, _mp_size = 3, _mp_exp = 957480584338323631, _mp_d = 0x605070}} 

這最終會導致一個段錯誤。

回答

4

有疑問時,應用數學:

10^-30 = 1/10^30 

它只是提高到正能量,並且佔用的倒數。

有一個除法函數mpf_ui_div(),它需要一個整數分子。

+0

劃分是一個昂貴的函數來支付,並且一個相互函數可能會一樣糟糕,你知道如果mpf本身支持有符號整數的冪函數嗎? – Jim 2012-03-29 02:51:27

+0

提高負面影響力的最快方法是採取互惠。該部門是不可避免的。整數供電使用[二進制平方法](http://en.wikipedia.org/wiki/Exponentiation_by_squaring)來實現 - 只需要一個正指數。 – Mysticial 2012-03-29 02:52:45

+0

我希望他們會做班次。但如果這是唯一的方法,我想我堅持了它。謝謝。 – Jim 2012-03-29 02:53:26