2012-04-23 31 views
0

我可以從GMP official documentation看到:mpn_copyi在GMP C庫中做了些什麼?

空隙mpn_copyi(mp_limb_t * RP,常量mp_limb_t * S1P,mp_size_t n)的從{S1P,N}

複製到{RP,正}, 日益。

空隙mpn_copyd(mp_limb_t * RP,常量mp_limb_t * S1P,mp_size_t n)的從{S1P,N}

複製到{RP,N},漸減。

不過,我不明白是什麼越來越在這種情況下遞減意思。 越來越是否意味着它會複製從0到n的所有肢體?

感謝

回答

1

使用the source,Teabee。

void 
mpn_copyi (mp_ptr rp, mp_srcptr up, mp_size_t n) 
{ 
    mp_size_t i; 

    up += n; 
    rp += n; 
    for (i = -n; i != 0; i++) 
    rp[i] = up[i]; 
} 

和遞減:

​​
+0

哦,你是對的,我忘了。謝謝! – 2012-04-23 08:46:28

+0

在哪種情況下你會使用其中一種,而在另一種情況下使用另一種? – 2012-04-23 08:50:24

+1

我不確定。它們可能純粹不同於處理可用的特定於體系結構的優化。這些文件沒有說。我認爲如果你不確定使用哪一個,那麼它們在你的用例上基本相同。 – brice 2012-04-23 08:56:13