亚洲欧美第一页_禁久久精品乱码_粉嫩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一区二区三区免费野_久草精品视频
亚洲免费观看高清完整版在线观看熊| 五月开心婷婷久久| 亚洲精品国产无天堂网2021| 亚洲va国产天堂va久久en| 国产精品一区二区视频| 欧美私人免费视频| 国产精品人成在线观看免费 | 欧美日韩一区二区在线观看视频| 欧美成人vr18sexvr| 亚洲综合久久久| 成人免费视频caoporn| 日韩精品在线看片z| 一区二区不卡在线视频 午夜欧美不卡在| 欧美mv日韩mv国产网站| 亚洲一区二区五区| 97久久精品人人做人人爽50路 | 久久国产尿小便嘘嘘尿| 色综合久久中文综合久久牛| 久久久精品中文字幕麻豆发布| 日韩中文字幕91| 欧美日韩精品一区二区三区四区 | 国产亚洲女人久久久久毛片| 色8久久人人97超碰香蕉987| 国产人成一区二区三区影院| 国内一区二区在线| 日韩精品一区二区三区swag | 精品久久一区二区| 青草av.久久免费一区| 宅男在线国产精品| 日韩精彩视频在线观看| 欧美日韩一区在线| 亚洲午夜免费福利视频| 在线观看亚洲精品视频| 亚洲高清久久久| 欧美三级电影在线观看| 亚洲一区免费观看| 欧美日韩国产三级| 奇米亚洲午夜久久精品| 日韩亚洲欧美综合| 国产乱人伦偷精品视频免下载| 26uuu亚洲婷婷狠狠天堂| 韩国视频一区二区| 国产亚洲欧美在线| 91在线云播放| 亚洲国产另类精品专区| 欧美日韩精品二区第二页| 午夜精品久久久久影视| 日韩一区二区三区高清免费看看| 麻豆一区二区99久久久久| 欧美精品一区二区精品网| 国产福利一区二区三区在线视频| 国产日韩欧美综合一区| 91亚洲精品乱码久久久久久蜜桃 | 久久蜜桃av一区二区天堂| 国产黑丝在线一区二区三区| 成人欧美一区二区三区视频网页| av电影在线观看一区| 亚洲午夜激情网页| 精品国产污污免费网站入口| 国产不卡免费视频| 亚洲乱码日产精品bd| 欧美老女人在线| 国产伦精品一区二区三区在线观看| 久久九九国产精品| 欧美日韩午夜精品| 国产一区二区三区高清播放| 亚洲天堂a在线| 欧美一卡二卡在线观看| 成人av在线资源网站| 日韩电影在线观看网站| 亚洲国产岛国毛片在线| 欧美三级视频在线观看| 国产91精品精华液一区二区三区 | 亚洲欧美偷拍卡通变态| 777久久久精品| 99精品在线观看视频| 日韩**一区毛片| 日韩美女精品在线| 精品精品国产高清a毛片牛牛| 91视频国产观看| 激情偷乱视频一区二区三区| 一区av在线播放| 中文字幕在线观看不卡| 精品sm在线观看| 在线不卡中文字幕播放| 不卡一区中文字幕| 国产一区二区在线免费观看| 亚洲成a人v欧美综合天堂下载| 免费看欧美女人艹b| 亚洲精品国产成人久久av盗摄| 亚洲精品一区二区三区在线观看 | 精品剧情v国产在线观看在线| 在线观看91精品国产入口| 国产成人亚洲综合a∨婷婷图片| 日韩精品一二三| 亚洲一二三四区不卡| 亚洲丝袜另类动漫二区| 久久久精品2019中文字幕之3| 欧美一级黄色录像| 欧美人动与zoxxxx乱| 色婷婷综合久久久中文一区二区| 国产福利一区二区三区视频| 麻豆freexxxx性91精品| 三级欧美韩日大片在线看| 亚洲国产中文字幕在线视频综合| 亚洲欧美综合色| 1000精品久久久久久久久| 国产日本亚洲高清| 国产无人区一区二区三区| 久久久亚洲精品一区二区三区 | 久久99国内精品| 免播放器亚洲一区| 免费精品99久久国产综合精品| 五月天激情小说综合| 丝袜美腿成人在线| 日韩电影在线观看电影| 日本成人在线一区| 久久aⅴ国产欧美74aaa| 九九视频精品免费| 国产精品中文字幕日韩精品| 国产麻豆精品久久一二三| 国产另类ts人妖一区二区| 高清不卡一区二区| 成人激情免费电影网址| 不卡视频免费播放| 97se亚洲国产综合自在线| 色综合中文字幕国产 | 综合久久久久久| 樱花草国产18久久久久| 亚洲一区视频在线| 美女mm1313爽爽久久久蜜臀| 久久精品国产一区二区| 国产成人精品免费看| 91蜜桃网址入口| 欧美精品在线一区二区三区| 欧美大黄免费观看| 中文字幕免费在线观看视频一区| 亚洲免费观看高清完整版在线观看熊 | 日韩一区二区三区视频| 久久久久久久久久久99999| 国产精品女上位| 亚洲第一主播视频| 极品销魂美女一区二区三区| 成人三级在线视频| 欧美亚洲综合网| 精品日韩av一区二区| 理论片日本一区| 99精品国产91久久久久久| 欧美久久久久久久久久| 久久只精品国产| 亚洲一二三区视频在线观看| 久久国产人妖系列| 91在线观看下载| 日韩一区二区三区免费看| 亚洲欧洲av色图| 美女在线视频一区| www.66久久| 欧美mv日韩mv| 亚洲第一综合色| caoporen国产精品视频| 欧美一区二区三区啪啪| 成人欧美一区二区三区1314| 日韩精品亚洲一区| 91亚洲国产成人精品一区二区三 | 精久久久久久久久久久| 欧洲国产伦久久久久久久| 久久精品亚洲一区二区三区浴池| 亚洲激情在线激情| 国产成人av一区二区三区在线 | 久久免费精品国产久精品久久久久| 亚洲精品视频观看| 国产精品一区二区久久不卡| 欧美日韩电影在线播放| 国产精品久线在线观看| 精品一区中文字幕| 欧美日韩你懂得| 亚洲精品久久7777| 国产高清一区日本| 精品国产人成亚洲区| 午夜精品久久久久影视| 色婷婷精品大在线视频| 国产午夜亚洲精品不卡 | 丝瓜av网站精品一区二区| 成年人网站91| 国产午夜三级一区二区三| 男女性色大片免费观看一区二区 | 91一区一区三区| 欧美激情在线一区二区三区| 美女久久久精品| 日韩午夜精品电影| 美女mm1313爽爽久久久蜜臀| 在线成人av影院| 天天综合网 天天综合色| 色狠狠一区二区| 一区二区三区四区在线播放| 色综合天天综合在线视频| 亚洲欧洲日韩在线| 成a人片亚洲日本久久| 中文字幕一区二区三区蜜月| 成人av动漫网站|