mpn_copyi究竟在GMP C库中做了什么?

时间:2012-04-23 08:28:39

标签: c gmp

我可以从GMP official documentation看到:

  

void mpn_copyi(mp_limb_t * rp,const mp_limb_t * s1p,mp_size_t n)

     
    

越来越多地从{s1p,n}复制到{rp,n}。

  
     

void mpn_copyd(mp_limb_t * rp,const mp_limb_t * s1p,mp_size_t n)

     
    

从{s1p,n}复制到{rp,n},逐渐减少。

  

但是,在这种情况下,我不明白越来越逐渐意味着什么。 越来越是否意味着它会将所有肢体从0复制到n?

由于

1 个答案:

答案 0 :(得分: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];
}

并递减:

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

  for (i = n - 1; i >= 0; i--)
    rp[i] = up[i];
}