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

? 歡迎來(lái)到蟲(chóng)蟲(chóng)下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲(chóng)蟲(chóng)下載站

?? vec_lzz_p.cpp

?? 一個(gè)比較通用的大數(shù)運(yùn)算庫(kù)
?? CPP
字號(hào):

#include <NTL/vec_lzz_p.h>

#include <NTL/new.h>

NTL_START_IMPL

NTL_vector_impl(zz_p,vec_zz_p)

NTL_io_vector_impl(zz_p,vec_zz_p)

NTL_eq_vector_impl(zz_p,vec_zz_p)

void conv(vec_zz_p& x, const vec_ZZ& a)
{
   long i, n;

   n = a.length();
   x.SetLength(n);

   zz_p* xp = x.elts();
   const ZZ* ap = a.elts();

   for (i = 0; i < n; i++)
      conv(xp[i], ap[i]);
}

void conv(vec_ZZ& x, const vec_zz_p& a)
{
   long n = a.length();
   x.SetLength(n);
   long i;
   for (i = 0; i < n; i++)
      x[i] = rep(a[i]);
}




void InnerProduct(zz_p& x, const vec_zz_p& a, const vec_zz_p& b)
{
   long n = min(a.length(), b.length());
   long i;
   zz_p accum, t;

   clear(accum);
   for (i = 0; i < n; i++) {
      mul(t, a[i], b[i]);
      add(accum, accum, t);
   }

   x = accum;
}

void InnerProduct(zz_p& x, const vec_zz_p& a, const vec_zz_p& b,
                  long offset)
{
   if (offset < 0) Error("InnerProduct: negative offset");
   if (NTL_OVERFLOW(offset, 1, 0)) Error("InnerProduct: offset too big");

   long n = min(a.length(), b.length()+offset);
   long i;
   zz_p accum, t;

   clear(accum);
   for (i = offset; i < n; i++) {
      mul(t, a[i], b[i-offset]);
      add(accum, accum, t);
   }

   x = accum;
}

long CRT(vec_ZZ& gg, ZZ& a, const vec_zz_p& G)
{
   long n = gg.length();
   if (G.length() != n) Error("CRT: vector length mismatch");

   long p = zz_p::modulus();

   ZZ new_a;
   mul(new_a, a, p);

   long a_inv;
   a_inv = rem(a, p);
   a_inv = InvMod(a_inv, p);

   long p1;
   p1 = p >> 1;

   ZZ a1;
   RightShift(a1, a, 1);

   long p_odd = (p & 1);

   long modified = 0;

   long h;
   ZZ ah;

   ZZ g;
   long i;
   for (i = 0; i < n; i++) {
      if (!CRTInRange(gg[i], a)) {
         modified = 1;
         rem(g, gg[i], a);
         if (g > a1) sub(g, g, a);
      }
      else
         g = gg[i];
   
      h = rem(g, p);
      h = SubMod(rep(G[i]), h, p);
      h = MulMod(h, a_inv, p);
      if (h > p1)
         h = h - p;
   
      if (h != 0) {
         modified = 1;
         mul(ah, a, h);
   
         if (!p_odd && g > 0 && (h == p1))
            sub(g, g, ah);
         else
            add(g, g, ah);
      }

      gg[i] = g;
   }

   a = new_a;

   return modified;
}



void mul(vec_zz_p& x, const vec_zz_p& a, zz_p b)
{
   long n = a.length();
   x.SetLength(n);

   long i;

   if (n <= 1) {

      for (i = 0; i < n; i++)
	 mul(x[i], a[i], b);

   }
   else {
 
      long p = zz_p::modulus();
      double pinv = zz_p::ModulusInverse();
      long bb = rep(b);
      mulmod_precon_t bpinv = PrepMulModPrecon(bb, p, pinv);
      
      
      const zz_p *ap = a.elts();
      zz_p *xp = x.elts();

      for (i = 0; i < n; i++)
         xp[i].LoopHole() = MulModPrecon(rep(ap[i]), bb, p, bpinv);

   }
}

void mul(vec_zz_p& x, const vec_zz_p& a, long b_in)
{
   zz_p b;
   b = b_in;
   mul(x, a, b);
}



void add(vec_zz_p& x, const vec_zz_p& a, const vec_zz_p& b)
{
   long n = a.length();
   if (b.length() != n) Error("vector add: dimension mismatch");

   x.SetLength(n);
   long i;
   for (i = 0; i < n; i++)
      add(x[i], a[i], b[i]);
}

void sub(vec_zz_p& x, const vec_zz_p& a, const vec_zz_p& b)
{
   long n = a.length();
   if (b.length() != n) Error("vector sub: dimension mismatch");
   x.SetLength(n);
   long i;
   for (i = 0; i < n; i++)
      sub(x[i], a[i], b[i]);
}

void clear(vec_zz_p& x)
{
   long n = x.length();
   long i;
   for (i = 0; i < n; i++)
      clear(x[i]);
}

void negate(vec_zz_p& x, const vec_zz_p& a)
{
   long n = a.length();
   x.SetLength(n);
   long i;
   for (i = 0; i < n; i++)
      negate(x[i], a[i]);
}


long IsZero(const vec_zz_p& a)
{
   long n = a.length();
   long i;

   for (i = 0; i < n; i++)
      if (!IsZero(a[i]))
         return 0;

   return 1;
}

vec_zz_p operator+(const vec_zz_p& a, const vec_zz_p& b)
{
   vec_zz_p res;
   add(res, a, b);
   NTL_OPT_RETURN(vec_zz_p, res);
}

vec_zz_p operator-(const vec_zz_p& a, const vec_zz_p& b)
{
   vec_zz_p res;
   sub(res, a, b);
   NTL_OPT_RETURN(vec_zz_p, res);
}


vec_zz_p operator-(const vec_zz_p& a)
{
   vec_zz_p res;
   negate(res, a);
   NTL_OPT_RETURN(vec_zz_p, res);
}


zz_p operator*(const vec_zz_p& a, const vec_zz_p& b)
{
   zz_p res;
   InnerProduct(res, a, b);
   return res;
}


void VectorCopy(vec_zz_p& x, const vec_zz_p& a, long n)
{
   if (n < 0) Error("VectorCopy: negative length");
   if (NTL_OVERFLOW(n, 1, 0)) Error("overflow in VectorCopy");

   long m = min(n, a.length());

   x.SetLength(n);
  
   long i;

   for (i = 0; i < m; i++)
      x[i] = a[i];

   for (i = m; i < n; i++)
      clear(x[i]);
}

NTL_END_IMPL

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久精品人人做人人爽人人| 99久久夜色精品国产网站| 亚洲美女偷拍久久| 久久久精品人体av艺术| 欧美片在线播放| 91.麻豆视频| 欧美日韩精品福利| 7777精品伊人久久久大香线蕉经典版下载 | 天使萌一区二区三区免费观看| 一区在线观看免费| 一区二区三区欧美久久| 亚洲第一综合色| 日韩国产欧美三级| 精品在线免费观看| 亚洲一区二区综合| 日本视频在线一区| 国产精品 日产精品 欧美精品| 久久精品国产精品亚洲红杏 | 中文字幕的久久| 自拍偷拍亚洲综合| 亚洲午夜激情网页| 蜜臀99久久精品久久久久久软件| 久久电影网站中文字幕| 成人影视亚洲图片在线| 色噜噜夜夜夜综合网| 欧美丰满美乳xxx高潮www| 精品久久五月天| 自拍偷拍亚洲综合| 美女国产一区二区三区| 高清beeg欧美| 欧美日韩精品一区视频| 久久影院午夜论| 一区二区三区四区中文字幕| 狂野欧美性猛交blacked| 成人一级片在线观看| 欧美片网站yy| 国产精品久久久久7777按摩| 午夜精品视频一区| 成人av在线一区二区| 欧美视频在线一区二区三区| 精品国产青草久久久久福利| 亚洲精品国产无套在线观 | 国产欧美1区2区3区| 一个色综合网站| 国产精品一区一区三区| 欧美日韩免费视频| 国产精品国产自产拍在线| 日韩精品欧美成人高清一区二区| 国产很黄免费观看久久| 91精品一区二区三区久久久久久 | 国产精品免费aⅴ片在线观看| 亚洲制服丝袜av| 福利电影一区二区| 欧美一区二区三区爱爱| 一区av在线播放| zzijzzij亚洲日本少妇熟睡| 欧美成人精品1314www| 亚洲va天堂va国产va久| 97精品久久久久中文字幕| 国产午夜精品美女毛片视频| 五月婷婷激情综合| 在线看国产日韩| 亚洲欧美另类小说视频| 国产精品99久久不卡二区| 日韩欧美国产精品一区| 亚洲成人精品一区二区| 色婷婷综合五月| 《视频一区视频二区| 国产精品夜夜嗨| 精品少妇一区二区三区在线播放 | 欧美成人video| 日本成人在线看| 欧美日本免费一区二区三区| 亚洲日本va午夜在线影院| 成人免费av网站| 国产精品进线69影院| 成人性生交大片免费看在线播放| 久久人人97超碰com| 狠狠色狠狠色综合系列| 欧美精品一区二区三区久久久 | 久久久www成人免费无遮挡大片| 无码av免费一区二区三区试看| 91传媒视频在线播放| 亚洲精品日韩一| 欧美色综合影院| 亚洲va韩国va欧美va| 欧美电影在哪看比较好| 久久黄色级2电影| 精品国产乱码久久久久久牛牛 | 国产高清一区日本| 中文字幕一区在线| 91久久香蕉国产日韩欧美9色| 一区二区日韩av| 欧美丰满嫩嫩电影| 日韩精品亚洲一区二区三区免费| 26uuu精品一区二区| 国产精品66部| 亚洲久草在线视频| 欧美久久婷婷综合色| 欧美aaa在线| 国产网站一区二区| 99久久国产免费看| 亚洲国产精品久久人人爱| 欧美一区二区三区公司| 大美女一区二区三区| 亚洲精品福利视频网站| 日韩欧美第一区| 91香蕉视频在线| 青青草视频一区| 国产精品午夜在线观看| 欧美日韩一级视频| 国产寡妇亲子伦一区二区| 亚洲激情男女视频| 精品国一区二区三区| 色老头久久综合| 国内一区二区在线| 一区二区三区在线播放| 精品国产乱码久久久久久夜甘婷婷| 成人黄动漫网站免费app| 亚洲成av人片| 中文欧美字幕免费| 精品日韩一区二区三区| 91女厕偷拍女厕偷拍高清| 免费高清成人在线| 亚洲综合色视频| 国产精品久久久久久久久免费丝袜| 欧美制服丝袜第一页| 成人爽a毛片一区二区免费| 看电视剧不卡顿的网站| 一区二区三区不卡在线观看 | 国产九九视频一区二区三区| 一区二区日韩电影| 亚洲色图视频网站| 国产欧美日韩一区二区三区在线观看| 777午夜精品视频在线播放| 色香蕉成人二区免费| av中文字幕不卡| 风流少妇一区二区| 粉嫩aⅴ一区二区三区四区五区| 蜜桃视频在线一区| 日韩av中文在线观看| 亚洲图片欧美色图| 亚洲猫色日本管| 亚洲精品国产精华液| 亚洲人123区| 亚洲视频香蕉人妖| 亚洲欧美日韩系列| 亚洲色图清纯唯美| 亚洲另类中文字| 国产精品婷婷午夜在线观看| 久久亚洲精华国产精华液 | 亚洲一线二线三线视频| 亚洲视频小说图片| 亚洲免费三区一区二区| 国产精品毛片大码女人| 国产精品丝袜久久久久久app| 26uuu亚洲综合色| 亚洲精品在线免费播放| 26uuu国产电影一区二区| 26uuu色噜噜精品一区二区| 精品久久久久久亚洲综合网| 精品国产乱码久久久久久久| 26uuu欧美| 国产偷国产偷精品高清尤物 | 51久久夜色精品国产麻豆| 欧美日韩一区二区欧美激情 | 一本久久a久久精品亚洲| 99精品久久久久久| 欧美中文字幕亚洲一区二区va在线| 欧美天堂一区二区三区| 欧美精品视频www在线观看| 日韩一区二区电影| 久久日一线二线三线suv| 中文字幕第一区二区| 亚洲三级在线免费观看| 亚洲国产人成综合网站| 日本aⅴ精品一区二区三区 | 国产精品午夜电影| 亚洲精品网站在线观看| 午夜精品久久久久久久| 激情综合色丁香一区二区| 国产老女人精品毛片久久| 99re这里都是精品| 欧美高清精品3d| 国产精品网站一区| 亚洲一二三四区不卡| 精久久久久久久久久久| 成人97人人超碰人人99| 欧美美女一区二区三区| 国产欧美日韩三区| 天天综合天天综合色| 成人免费av资源| 7777精品久久久大香线蕉| 国产视频一区二区在线| 亚洲成av人在线观看| 从欧美一区二区三区| 91麻豆精品国产无毒不卡在线观看| 久久久国产一区二区三区四区小说| 亚洲视频狠狠干| 精品一区二区三区不卡 |