亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? c_lip_impl.h

?? 一個比較通用的大數運算庫
?? H
?? 第 1 頁 / 共 5 頁
字號:
      long fixed = oldlen & 1;

      oldlen = oldlen >> 1;

      if (fixed) {
         if (len > oldlen) 
            zhalt("internal error: can't grow this _ntl_verylong");
         else
            return;
      }

      if (len <= oldlen) return;

      len++;  /* always allocate at least one more than requested */

      oldlen = (long) (oldlen * 1.2); /* always increase by at least 20% */
      if (len < oldlen)
         len = oldlen;

      /* round up to multiple of MIN_SETL */
      len = ((len+(MIN_SETL-1))/MIN_SETL)*MIN_SETL; 

      /* test len again */
      if (NTL_OVERFLOW(len, NTL_NBITS, 0))
         zhalt("size too big in _ntl_zsetlength");

      x[-1] = len << 1;
      if (!(x = (_ntl_verylong)NTL_REALLOC(&(x[-1]), 
                  len, sizeof(long), 2*sizeof(long)))) {
         zhalt("reallocation failed in _ntl_zsetlength");
      }
   }
   else {
      len++;
      len = ((len+(MIN_SETL-1))/MIN_SETL)*MIN_SETL;

      /* test len again */
      if (NTL_OVERFLOW(len, NTL_NBITS, 0))
         zhalt("size too big in _ntl_zsetlength");


      if (!(x = (_ntl_verylong)NTL_MALLOC(len, 
                  sizeof(long), 2*sizeof(long)))) {
         zhalt("allocation failed in _ntl_zsetlength");
      }
      x[0] = len << 1;
      x[1] = 1;
      x[2] = 0;
   }

   *v = x+1;
}

void _ntl_zfree(_ntl_verylong *x)
{
   _ntl_verylong y;

   if (!(*x))
      return;

   if ((*x)[-1] & 1)
      zhalt("Internal error: can't free this _ntl_verylong");

   y = (*x - 1);
   free((void*)y);
   *x = 0;
}






long _ntl_zround_correction(_ntl_verylong a, long k, long residual)
{
   long direction;
   long p;
   long sgn;
   long bl;
   long wh;
   long i;

   if (a[0] > 0)
      sgn = 1;
   else
      sgn = -1;

   p = k - 1;
   bl = (p/NTL_NBITS);
   wh = 1L << (p - NTL_NBITS*bl);
   bl++;

   if (a[bl] & wh) {
      /* bit is 1...we have to see if lower bits are all 0
         in order to implement "round to even" */

      if (a[bl] & (wh - 1)) 
         direction = 1;
      else {
         i = bl - 1;
         while (i > 0 && a[i] == 0) i--;
         if (i > 0)
            direction = 1;
         else
            direction = 0;
      }

      /* use residual to break ties */

      if (direction == 0 && residual != 0) {
         if (residual == sgn)
            direction = 1;
         else 
            direction = -1;
      }

      if (direction == 0) {
         /* round to even */

         wh = wh << 1;
         if (wh == NTL_RADIX) {
            wh = 1;
            bl++;
         }

         if (a[bl] & wh)
            direction = 1;
         else
            direction = -1;
      }
   }
   else
      direction = -1;

   if (direction == 1)
      return sgn;

   return 0;
}



double _ntl_zdoub_aux(_ntl_verylong n)
{
   double res;
   long i;

   if (!n)
      return ((double) 0);
   if ((i = n[0]) < 0)
      i = -i;
   res = (double) (n[i--]);
   for (; i; i--)
      res = res * NTL_FRADIX + (double) (n[i]);
   if (n[0] > 0)
      return (res);
   return (-res);
}



double _ntl_zdoub(_ntl_verylong n)
{
   static _ntl_verylong tmp = 0;

   long s;
   long shamt;
   long correction;
   double x;

   s = _ntl_z2log(n);
   shamt = s - NTL_DOUBLE_PRECISION;

   if (shamt <= 0)
      return _ntl_zdoub_aux(n);

   _ntl_zrshift(n, shamt, &tmp);

   correction = _ntl_zround_correction(n, shamt, 0);

   if (correction) _ntl_zsadd(tmp, correction, &tmp);

   x = _ntl_zdoub_aux(tmp);

   x = _ntl_ldexp(x, shamt);

   return x;
}


double _ntl_zlog(_ntl_verylong n)
{
   static _ntl_verylong tmp = 0;

   static double log_2;
   static long init = 0;

   long s;
   long shamt;
   long correction;
   double x;

   if (!init) {
      log_2 = log(2.0);
      init = 1;
   }

   if (_ntl_zsign(n) <= 0)
      zhalt("log argument <= 0");

   s = _ntl_z2log(n);
   shamt = s - NTL_DOUBLE_PRECISION;

   if (shamt <= 0)
      return log(_ntl_zdoub_aux(n));

   _ntl_zrshift(n, shamt, &tmp);

   correction = _ntl_zround_correction(n, shamt, 0);

   if (correction) _ntl_zsadd(tmp, correction, &tmp);

   x = _ntl_zdoub_aux(tmp);

   return log(x) + shamt*log_2;
}



void _ntl_zdoubtoz(double a, _ntl_verylong *xx)
{
   _ntl_verylong x;
   long neg, i, t, sz;


   a = floor(a);

   if (!_ntl_IsFinite(&a))
      zhalt("_ntl_zdoubtoz: attempt to convert non-finite value");


   if (a < 0) {
      a = -a;
      neg = 1;
   }
   else
      neg = 0;

   if (a == 0) {
      _ntl_zzero(xx);
      return;
   }

   sz = 1;
   a = a*NTL_FRADIX_INV;

   while (a >= 1) {
      a = a*NTL_FRADIX_INV;
      sz++;
   }
         
   x = *xx;
   if (MustAlloc(x, sz)) {
      _ntl_zsetlength(&x, sz);
      *xx = x;
   }

   for (i = sz; i > 0; i--) {
      a = a*NTL_FRADIX;
      t = (long) a;
      x[i] = t;
      a = a - t;
   }

   x[0] = (neg ? -sz : sz);
}

void _ntl_zzero(_ntl_verylong *aa)
{
   if (!(*aa)) _ntl_zsetlength(aa, 1);
   (*aa)[0] =  1;
   (*aa)[1] =  0;
}

/* same as _ntl_zzero, except does not unnecessarily allocate space */

void _ntl_zzero1(_ntl_verylong *aa)
{
   if (!(*aa)) return;
   (*aa)[0] =  1;
   (*aa)[1] =  0;
}

void _ntl_zone(_ntl_verylong *aa)
{
   if (!(*aa)) _ntl_zsetlength(aa, 1);
   (*aa)[0] =  1;
   (*aa)[1] =  1;
}

void _ntl_zcopy(_ntl_verylong a, _ntl_verylong *bb)
{
   long i;
   _ntl_verylong b = *bb;

   if (!a) {
      _ntl_zzero(bb);
      return;
   }
   if (a != b) {
      if ((i = *a) < 0)
         i = (-i);
      if (MustAlloc(b, i)) {
         _ntl_zsetlength(&b, i);
         *bb = b;
      }
      for (; i >= 0; i--)
         *b++ = *a++;
   }
}

/* same as _ntl_zcopy, but does not unnecessarily allocate space */

void _ntl_zcopy1(_ntl_verylong a, _ntl_verylong *bb)
{
   long i;
   _ntl_verylong b = *bb;

   if (!a) {
      _ntl_zzero1(bb);
      return;
   }
   if (a != b) {
      if ((i = *a) < 0)
         i = (-i);
      if (MustAlloc(b, i)) {
         _ntl_zsetlength(&b, i);
         *bb = b;
      }
      for (; i >= 0; i--)
         *b++ = *a++;
   }
}

void _ntl_zintoz(long d, _ntl_verylong *aa)
{
   long i;
   long anegative;
   unsigned long d1, d2;
   _ntl_verylong a = *aa;

   anegative = 0;
   if (d < 0) {
      anegative = 1;
      d1 = - ((unsigned long) d);  /* careful: avoid overflow */
   }
   else
      d1 = d;

   i = 0;
   d2 = d1;
   do {
      d2 >>= NTL_NBITS;
      i++;
   }
   while (d2 > 0);

   if (MustAlloc(a, i)) {
      _ntl_zsetlength(&a, i);
      *aa = a;
   }

   i = 0;
   a[1] = 0;
   while (d1 > 0) {
      a[++i] = d1 & NTL_RADIXM;
      d1 >>= NTL_NBITS;
   }
   if (i > 0)
      a[0] = i;
   else
      a[0] = 1;

   if (anegative)
      a[0] = (-a[0]);
}


/* same as _ntl_zintoz, but does not unnecessarily allocate space */

void _ntl_zintoz1(long d, _ntl_verylong *aa)
{
   long i;
   long anegative;
   unsigned long d1, d2;
   _ntl_verylong a = *aa;

   if (!d && !a) return;

   anegative = 0;
   if (d < 0) {
      anegative = 1;
      d1 = - ((unsigned long) d);  /* careful: avoid overlow */
   }
   else
      d1 = d;

   i = 0;
   d2 = d1;
   do {
      d2 >>= NTL_NBITS;
      i++;
   }
   while (d2 > 0);

   if (MustAlloc(a, i)) {
      _ntl_zsetlength(&a, i);
      *aa = a;
   }

   i = 0;
   a[1] = 0;
   while (d1 > 0) {
      a[++i] = d1 & NTL_RADIXM;
      d1 >>= NTL_NBITS;
   }
   if (i > 0)
      a[0] = i;
   else
      a[0] = 1;

   if (anegative)
      a[0] = (-a[0]);
}


void _ntl_zuintoz(unsigned long d, _ntl_verylong *aa)
{
   long i;
   unsigned long d1, d2;
   _ntl_verylong a = *aa;

   d1 = d;
   i = 0;
   d2 = d1;
   do {
      d2 >>= NTL_NBITS;
      i++;
   }
   while (d2 > 0);

   if (MustAlloc(a, i)) {
      _ntl_zsetlength(&a, i);
      *aa = a;
   }

   i = 0;
   a[1] = 0;
   while (d1 > 0) {
      a[++i] = d1 & NTL_RADIXM;
      d1 >>= NTL_NBITS;
   }
   if (i > 0)
      a[0] = i;
   else
      a[0] = 1;
}


unsigned long _ntl_ztouint(_ntl_verylong a)
{
   unsigned long d;
   long sa;

   if (!a)
      return (0);

   if ((sa = *a) < 0)
      sa = -sa;

   d = (unsigned long) (*(a += sa));
   while (--sa) {
      d <<= NTL_NBITS;
      d += (unsigned long) (*(--a));
   }

   if ((*(--a)) < 0)
      return (-d);
   return (d);
}


long _ntl_ztoint(_ntl_verylong a)
{
   unsigned long res = _ntl_ztouint(a);
   return NTL_ULONG_TO_LONG(res);
}



long _ntl_zcompare(_ntl_verylong a, _ntl_verylong b)
{
   long sa;
   long sb;

   if (!a) {
      if (!b)
         return (0);
      if (b[0] < 0)
         return (1);
      if (b[0] > 1)
         return (-1);
      if (b[1])
         return (-1);
      return (0);
   }
   if (!b) {
      if (a[0] < 0)
         return (-1);
      if (a[0] > 1)
         return (1);
      if (a[1])
         return (1);
      return (0);
   }

   if ((sa = *a) > (sb = *b))
      return (1);
   if (sa < sb)
      return (-1);
   if (sa < 0)
      sa = (-sa);
   a += sa;
   b += sa;
   for (; sa; sa--) {
      long diff = *a - *b;

      if (diff > 0) {
         if (sb < 0)
            return (-1);
         return (1);
      }
      if (diff < 0) {
         if (sb < 0)
            return (1);
         return (-1);
      }

      a--;
      b--;
   }
   return (0);
}

void _ntl_znegate(_ntl_verylong *aa)
{
   _ntl_verylong a = *aa;

   if (!a)
      return;
   if (a[1] || a[0] != 1)
      a[0] = (-a[0]);
}

void _ntl_zsadd(_ntl_verylong a, long d, _ntl_verylong *b)
{
   static _ntl_verylong x = 0;

   _ntl_zintoz(d, &x);
   _ntl_zadd(a, x, b);
}


void
_ntl_zadd(_ntl_verylong a, _ntl_verylong b, _ntl_verylong *cc)
{
   long sa;
   long sb;
   long anegative;
   _ntl_verylong c;
   long a_alias, b_alias;

   if (!a) {
      if (b)
         _ntl_zcopy(b, cc);
      else
         _ntl_zzero(cc);
      return;
   }

   if (!b) {
      _ntl_zcopy(a, cc);
      return;
   }

   c = *cc;
   a_alias = (a == c);
   b_alias = (b == c);

   if ((anegative = ((sa = a[0]) < 0)) == ((sb = b[0]) < 0)) {
      /* signs a and b are the same */
      _ntl_verylong pc;
      long carry;
      long i;
      long maxab;

      if (anegative) {
         sa = -sa;
         sb = -sb;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
中文字幕精品一区| 三级影片在线观看欧美日韩一区二区| 日韩视频在线观看一区二区| 欧美色手机在线观看| 色妞www精品视频| 日本乱人伦aⅴ精品| 99精品国产一区二区三区不卡| 成人性生交大合| 成人久久18免费网站麻豆| 成人99免费视频| 99re热这里只有精品视频| aaa国产一区| 色噜噜久久综合| 精品婷婷伊人一区三区三| 欧美人牲a欧美精品| 日韩视频在线你懂得| 久久久久久久久久久久电影| 国产区在线观看成人精品| 中文字幕一区二区三区在线不卡 | 亚洲精品国产a| 亚洲午夜精品在线| 日本va欧美va欧美va精品| 色成人在线视频| 精品免费国产一区二区三区四区| 精品免费国产二区三区| 久久久美女毛片| 日韩毛片一二三区| 亚洲一区二区三区在线看| 免费亚洲电影在线| 国产成人在线免费观看| 91在线无精精品入口| 欧美区视频在线观看| 久久一留热品黄| 伊人婷婷欧美激情| 久久精品国产久精国产爱| 国产麻豆精品一区二区| 99久久99久久精品免费看蜜桃| 欧美婷婷六月丁香综合色| 日韩精品一区二区三区视频在线观看 | 精品一区二区三区久久久| 岛国av在线一区| 欧美亚洲禁片免费| 亚洲综合在线免费观看| 免费av成人在线| 91精品在线观看入口| 国产视频一区二区在线观看| 中文字幕一区二区三区在线观看| 夜夜嗨av一区二区三区网页 | 亚洲国产人成综合网站| 另类调教123区| 91在线观看视频| 日韩美女一区二区三区| 亚洲欧美日韩国产手机在线 | 色综合久久天天| 欧美成人r级一区二区三区| 一区免费观看视频| 麻豆一区二区三| 色视频一区二区| 久久久久久久久久看片| 爽好久久久欧美精品| 99视频热这里只有精品免费| 日韩女优毛片在线| 亚洲一区在线观看免费 | 国产精品成人免费精品自在线观看| 久久品道一品道久久精品| 亚洲美女免费在线| 久久精品久久99精品久久| 在线观看视频91| 中文成人av在线| 久久99国产乱子伦精品免费| 色婷婷综合激情| 欧美国产日韩在线观看| 久久国产生活片100| 色琪琪一区二区三区亚洲区| 欧美国产一区在线| 国产在线国偷精品免费看| 精品视频999| 亚洲人妖av一区二区| 国产成人精品免费| 精品久久久久久综合日本欧美| 亚洲r级在线视频| 91在线观看视频| 亚洲国产经典视频| 国产一区二区三区在线观看免费 | 在线观看免费亚洲| 国产精品国产三级国产普通话三级| 国产麻豆午夜三级精品| 日韩亚洲欧美成人一区| 亚洲成人www| 欧洲亚洲国产日韩| 亚洲卡通欧美制服中文| 一本色道久久综合亚洲精品按摩 | 国产91精品在线观看| 精品福利一二区| 精品在线视频一区| 日韩精品一区在线| 美国精品在线观看| 日韩欧美国产一二三区| 免费成人av在线播放| 日韩免费一区二区三区在线播放| 色八戒一区二区三区| 欧美日韩一区在线| 一区二区三区欧美| 色综合久久综合| 亚洲精品久久久蜜桃| 色94色欧美sute亚洲线路一久| 亚洲日本在线天堂| 91福利精品第一导航| 亚洲国产日韩a在线播放性色| 国产三级精品视频| 国产成人精品亚洲777人妖| 欧美国产精品专区| 91丨porny丨在线| 一二三四区精品视频| 欧美在线观看禁18| 丝袜国产日韩另类美女| 日韩美女一区二区三区四区| 国产一区不卡视频| 国产精品家庭影院| 欧美无砖砖区免费| 日本亚洲免费观看| 久久久久国产精品麻豆| 成人中文字幕在线| 亚洲激情自拍视频| 欧美一区二区三区人| 国产精品一二三| 国产精品白丝在线| 欧美人狂配大交3d怪物一区 | 欧美午夜寂寞影院| 久久美女艺术照精彩视频福利播放| 麻豆一区二区三| 国产精品视频麻豆| 欧美在线看片a免费观看| 人禽交欧美网站| 国产亚洲制服色| 在线欧美小视频| 久久精品国产亚洲aⅴ| 国产欧美视频一区二区| 在线免费精品视频| 国产综合久久久久久久久久久久| 中文子幕无线码一区tr| 欧美亚洲高清一区二区三区不卡| 久久91精品久久久久久秒播| 中文字幕一区二区三区四区不卡| 欧美喷潮久久久xxxxx| 国产精品一区专区| 亚洲一区二区欧美日韩 | 亚洲成人av电影在线| 久久久综合激的五月天| 欧美优质美女网站| 久久99热国产| 亚洲精品免费一二三区| 欧美成人精精品一区二区频| 91女神在线视频| 精品一区二区三区视频在线观看 | 亚洲天堂精品视频| 欧美一级高清大全免费观看| 成人av免费在线观看| 日本一道高清亚洲日美韩| 国产精品久久久久久久久搜平片| 5566中文字幕一区二区电影| 成人激情av网| 日韩1区2区3区| 中文字幕一区二区三区四区不卡| 日韩西西人体444www| 播五月开心婷婷综合| 久久国产尿小便嘘嘘尿| 亚洲线精品一区二区三区| 久久久久成人黄色影片| 欧美老肥妇做.爰bbww视频| 99在线热播精品免费| 国内成人精品2018免费看| 午夜精品一区二区三区免费视频| 国产日韩av一区| 欧美成人综合网站| 欧美精三区欧美精三区| av在线综合网| 国产91清纯白嫩初高中在线观看| 理论片日本一区| 成人激情图片网| 日日摸夜夜添夜夜添国产精品 | 亚洲自拍欧美精品| 亚洲欧洲精品天堂一级| wwwwxxxxx欧美| 一区二区三区免费| 欧美日韩亚洲综合| 免费欧美在线视频| 午夜精品福利一区二区蜜股av| 综合在线观看色| 国产日产欧美一区二区视频| 精品国产91九色蝌蚪| 日韩一卡二卡三卡| 精品视频在线免费观看| 日本韩国视频一区二区| 91在线精品一区二区三区| 国产精品毛片大码女人| 亚洲三级在线观看| 中文无字幕一区二区三区| 久久这里只精品最新地址| 精品蜜桃在线看|