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

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

?? lzz_p.cpp

?? 大數運算類
?? CPP
字號:

#include <NTL/lzz_p.h>

#include <NTL/new.h>

NTL_START_IMPL

zz_pInfoT::zz_pInfoT(long NewP, long maxroot)
{
   ref_count = 1;

   if (maxroot < 0) Error("zz_pContext: maxroot may not be negative");

   if (NewP <= 1) Error("zz_pContext: p must be > 1");
   if (NumBits(NewP) > NTL_SP_NBITS) Error("zz_pContext: modulus too big");

   ZZ P, B, M, M1, MinusM;
   long n, i;
   long q, t;

   p = NewP;

   pinv = 1/double(p);

   index = -1;

   conv(P, p);

   sqr(B, P);
   LeftShift(B, B, maxroot+NTL_FFTFudge);

   set(M);
   n = 0;
   while (M <= B) {
      UseFFTPrime(n);
      q = FFTPrime[n];
      n++;
      mul(M, M, q);
   }

   if (n > 4) Error("zz_pInit: too many primes");

   NumPrimes = n;
   PrimeCnt = n;
   MaxRoot = CalcMaxRoot(q);

   if (maxroot < MaxRoot)
      MaxRoot = maxroot;

   negate(MinusM, M);
   MinusMModP = rem(MinusM, p);

   if (!(CoeffModP = (long *) NTL_MALLOC(n, sizeof(long), 0)))
      Error("out of space");

   if (!(x = (double *) NTL_MALLOC(n, sizeof(double), 0)))
      Error("out of space");

   if (!(u = (long *) NTL_MALLOC(n, sizeof(long), 0)))
      Error("out of space");

   for (i = 0; i < n; i++) {
      q = FFTPrime[i];

      div(M1, M, q);
      t = rem(M1, q);
      t = InvMod(t, q);
      mul(M1, M1, t);
      CoeffModP[i] = rem(M1, p);
      x[i] = ((double) t)/((double) q);
      u[i] = t;
   }
}

zz_pInfoT::zz_pInfoT(long Index)
{
   ref_count = 1;

   index = Index;

   if (index < 0)
      Error("bad FFT prime index");

   // allows non-consecutive indices...I'm not sure why
   while (NumFFTPrimes < index)
      UseFFTPrime(NumFFTPrimes);

   UseFFTPrime(index);

   p = FFTPrime[index];
   pinv = FFTPrimeInv[index];

   NumPrimes = 1;
   PrimeCnt = 0;

   MaxRoot = CalcMaxRoot(p);
}




zz_pInfoT::~zz_pInfoT()
{
   if (index < 0) {
      free(CoeffModP);
      free(x);
      free(u);
   }
}


zz_pInfoT *zz_pInfo = 0;


typedef zz_pInfoT *zz_pInfoPtr;

static 
void CopyPointer(zz_pInfoPtr& dst, zz_pInfoPtr src)
{
   if (src == dst) return;

   if (dst) {
      dst->ref_count--;

      if (dst->ref_count < 0) 
         Error("internal error: negative zz_pContext ref_count");

      if (dst->ref_count == 0) delete dst;
   }

   if (src) {
      if (src->ref_count == NTL_MAX_LONG) 
         Error("internal error: zz_pContext ref_count overflow");

      src->ref_count++;
   }

   dst = src;
}
   

void zz_p::init(long p, long maxroot)
{
   zz_pContext c(p, maxroot);
   c.restore();

}

void zz_p::FFTInit(long index)
{
   zz_pContext c(INIT_FFT, index);
   c.restore();
}

zz_pContext::zz_pContext(long p, long maxroot)
{
   ptr = NTL_NEW_OP zz_pInfoT(p, maxroot);
}

zz_pContext::zz_pContext(INIT_FFT_TYPE, long index)
{
   ptr = NTL_NEW_OP zz_pInfoT(index);
}

zz_pContext::zz_pContext(const zz_pContext& a)
{
   ptr = 0;
   CopyPointer(ptr, a.ptr);
}


zz_pContext& zz_pContext::operator=(const zz_pContext& a)
{
   CopyPointer(ptr, a.ptr);
   return *this;
}


zz_pContext::~zz_pContext()
{
   CopyPointer(ptr, 0);
}

void zz_pContext::save()
{
   CopyPointer(ptr, zz_pInfo);
}

void zz_pContext::restore() const
{
   CopyPointer(zz_pInfo, ptr);
}



zz_pBak::~zz_pBak()
{
   if (MustRestore)
      CopyPointer(zz_pInfo, ptr);

   CopyPointer(ptr, 0);
}

void zz_pBak::save()
{
   MustRestore = 1;
   CopyPointer(ptr, zz_pInfo);
}


void zz_pBak::restore()
{
   MustRestore = 0;
   CopyPointer(zz_pInfo, ptr);
}




static inline 
long reduce(long a, long p)
{
   if (a >= 0 && a < p)
      return a;
   else {
      a = a % p;
      if (a < 0) a += p;
      return a;
   }
}


zz_p to_zz_p(long a)
{
   return zz_p(reduce(a, zz_p::modulus()), INIT_LOOP_HOLE);
}

void conv(zz_p& x, long a)
{
   x._zz_p__rep = reduce(a, zz_p::modulus());
}

zz_p to_zz_p(const ZZ& a)
{
   return zz_p(rem(a, zz_p::modulus()), INIT_LOOP_HOLE);
}

void conv(zz_p& x, const ZZ& a)
{
   x._zz_p__rep = rem(a, zz_p::modulus());
}


istream& operator>>(istream& s, zz_p& x)
{
   static ZZ y;
   s >> y;
   conv(x, y);

   return s;
}

ostream& operator<<(ostream& s, zz_p a)
{
   static ZZ y;
   y = rep(a);
   s << y;

   return s;
}

NTL_END_IMPL

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
色综合久久88色综合天天免费| 亚洲午夜激情av| 日韩午夜在线观看视频| 欧美主播一区二区三区| 91性感美女视频| 国产精品一区二区免费不卡| 久久国产剧场电影| 久久av中文字幕片| 国产一区二区三区av电影| 日韩精品免费视频人成| 奇米888四色在线精品| 日韩av电影免费观看高清完整版在线观看| 亚洲一区二区精品久久av| 亚洲成人在线观看视频| 麻豆91在线播放免费| 韩国av一区二区| 丰满少妇在线播放bd日韩电影| 国产成+人+日韩+欧美+亚洲| 99精品久久只有精品| 欧洲一区二区av| 欧美一区二区在线免费播放| 精品国一区二区三区| 欧美激情综合五月色丁香小说| 中文字幕制服丝袜一区二区三区 | 久久精品在线免费观看| 国产亚洲欧美激情| 亚洲精品一二三区| 免费在线看成人av| 成人动漫在线一区| 欧美特级限制片免费在线观看| 欧美一级欧美三级在线观看| 久久久久久久精| 亚洲一区免费观看| 国产精品一区二区三区99| 在线中文字幕一区| 精品sm捆绑视频| 亚洲在线一区二区三区| 国产美女视频91| 欧美三级三级三级| 国产精品美女久久久久久久网站| 亚洲一区视频在线| 风流少妇一区二区| 欧美一级电影网站| 亚洲精品老司机| 国产69精品久久久久777| 精品视频在线视频| 日韩毛片一二三区| 国产一区二区三区视频在线播放| 一本色道久久综合亚洲aⅴ蜜桃| 日韩欧美一级片| 亚洲成人免费视频| 91视频观看视频| 久久久精品影视| 久久国产三级精品| 日韩一二三区视频| 五月婷婷激情综合| 91麻豆国产香蕉久久精品| 久久久亚洲高清| 日本亚洲天堂网| 欧美亚洲综合久久| 一区二区在线电影| 久久99精品国产.久久久久| 91在线一区二区三区| 国产亚洲一区字幕| 狠狠色2019综合网| 91精品国产福利| 午夜精品福利一区二区三区蜜桃| 91蜜桃视频在线| 亚洲日本在线天堂| 在线观看视频欧美| 一区二区三区91| 欧美少妇一区二区| 日韩国产高清在线| 欧美一区二区三区人| 日韩福利视频网| 日韩一区二区三| 国产在线日韩欧美| 久久久久久久久久久久久久久99| 国产一区二区三区视频在线播放| 久久精品免费在线观看| 国产999精品久久| 中文字幕一区在线观看| 成人国产视频在线观看| 国产精品久久久久久久久果冻传媒| 国产伦精品一区二区三区免费迷| 久久精品综合网| 91免费国产在线| 亚洲午夜日本在线观看| 欧美老年两性高潮| 麻豆91在线播放免费| 久久亚洲一级片| 成人h精品动漫一区二区三区| 亚洲欧美激情小说另类| 欧美日韩在线三级| 男男gaygay亚洲| 亚洲国产精品99久久久久久久久| 91丨porny丨首页| 丝袜诱惑制服诱惑色一区在线观看| 日韩一级大片在线| 波多野结衣中文字幕一区| 一区二区三区免费网站| 91精品国产91综合久久蜜臀| 国产精品18久久久久久vr| 国产精品久久久久久久第一福利| 欧美日韩一区二区在线观看| 美女网站视频久久| 国产精品成人一区二区艾草 | 欧美性受极品xxxx喷水| 老司机午夜精品99久久| 中日韩av电影| 69堂精品视频| www.日韩大片| 美女精品自拍一二三四| 国产精品久久久久久妇女6080| 欧美日韩在线电影| 国产精品1区二区.| 亚洲18女电影在线观看| 国产欧美一区二区精品性色| 欧美日韩一区二区不卡| 国产精品一二三四| 日日摸夜夜添夜夜添精品视频| 欧美激情一区二区在线| 91精品国模一区二区三区| 91在线精品秘密一区二区| 美女一区二区三区| 无码av中文一区二区三区桃花岛| 国产午夜一区二区三区| 欧美一级在线视频| 一本大道久久a久久精品综合| 狠狠色2019综合网| 欧美a级理论片| 亚洲成av人片在线观看无码| 国产精品久久久久永久免费观看| 久久这里只有精品首页| 在线播放一区二区三区| 91精品福利在线| 99精品1区2区| 99re这里只有精品首页| 粉嫩一区二区三区在线看| 精品在线亚洲视频| 麻豆91在线播放| 日韩av在线发布| 图片区日韩欧美亚洲| 亚洲一区二区偷拍精品| 一区二区三区欧美日| 亚洲欧洲成人av每日更新| 国产精品蜜臀在线观看| 中文字幕第一区| 国产人成一区二区三区影院| 久久久亚洲高清| 久久精品一区蜜桃臀影院| 久久午夜电影网| 国产日韩成人精品| 国产日韩亚洲欧美综合| 国产欧美综合色| 国产精品污网站| 中日韩av电影| 亚洲激情第一区| 亚洲国产欧美在线| 亚洲午夜免费电影| 日本午夜一本久久久综合| 美腿丝袜亚洲综合| 国产盗摄女厕一区二区三区| 国产高清久久久| 99久久婷婷国产综合精品电影 | 国产精品另类一区| 中文字幕在线不卡| 亚洲一区二区三区视频在线| 亚洲成人在线免费| 久久99久久久久| 丁香婷婷深情五月亚洲| 91在线观看下载| 欧美精品视频www在线观看| 日韩午夜在线影院| 中国色在线观看另类| 香蕉影视欧美成人| 国产呦萝稀缺另类资源| 99re6这里只有精品视频在线观看| 一本久久a久久免费精品不卡| 欧美精品xxxxbbbb| 久久久精品黄色| 有坂深雪av一区二区精品| 蜜臀av性久久久久蜜臀av麻豆| 国产在线观看免费一区| 色哟哟一区二区三区| 欧美一区二视频| 亚洲色图欧洲色图| 久久成人免费网| 99国产精品久久| 久久无码av三级| 亚洲成a人在线观看| 福利一区在线观看| 欧美一区二区三区免费在线看 | 夜夜精品浪潮av一区二区三区| 青草国产精品久久久久久| 国产精品一品二品| 91精品国模一区二区三区| 亚洲女性喷水在线观看一区| 另类人妖一区二区av| 色狠狠色噜噜噜综合网|