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

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

?? vec_lzz_p.cpp

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

#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;
   for (i = 0; i < n; i++)
      mul(x[i], a[i], b);
}

void mul(vec_zz_p& x, const vec_zz_p& a, long b_in)
{
   NTL_zz_pRegister(b);
   b = b_in;
   long n = a.length();
   x.SetLength(n);
   long i;
   for (i = 0; i < n; i++)
      mul(x[i], a[i], 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

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
首页国产欧美久久| 欧美色成人综合| 色婷婷综合久久久久中文一区二区| 色综合久久中文字幕| 日韩午夜在线观看视频| 日韩一区有码在线| 激情综合亚洲精品| 欧美群妇大交群中文字幕| 中文字幕精品一区二区精品绿巨人| 亚洲第一会所有码转帖| 91蜜桃传媒精品久久久一区二区| 欧美一区日韩一区| 亚洲在线免费播放| av资源网一区| 欧美国产一区二区在线观看 | 国产精品欧美久久久久一区二区| 亚洲一区二区在线免费看| 不卡一二三区首页| 国产三区在线成人av| 麻豆成人av在线| 欧美剧在线免费观看网站| 一区二区三区国产精品| 成人av网站大全| 国产精品拍天天在线| 懂色av噜噜一区二区三区av| 精品国产乱码久久久久久久久| 手机精品视频在线观看| 在线不卡欧美精品一区二区三区| 亚洲精品日韩一| 在线一区二区三区四区五区| 国产精品你懂的在线欣赏| 国产在线精品一区二区夜色| 日韩精品一区二区三区中文不卡| 日韩电影在线一区二区三区| 欧美日本精品一区二区三区| 亚洲国产美女搞黄色| 欧美日韩国产大片| 天天av天天翘天天综合网| 欧美日韩亚洲综合一区二区三区| 亚洲视频一区二区在线观看| 色综合中文综合网| 国产精品第13页| www.欧美日韩| 亚洲女女做受ⅹxx高潮| 欧美日韩国产一区| 秋霞影院一区二区| 国产亚洲成aⅴ人片在线观看| 国产夫妻精品视频| 亚洲欧洲成人精品av97| 91国模大尺度私拍在线视频| 日韩av一区二区三区| 欧美v国产在线一区二区三区| 老司机免费视频一区二区| 国产欧美一区在线| 在线观看亚洲精品视频| 日本在线不卡一区| 国产亚洲成年网址在线观看| 色综合中文字幕国产| 午夜视频在线观看一区| 日韩精品一区在线| 97精品视频在线观看自产线路二| 亚洲你懂的在线视频| 亚洲精品视频观看| 91精品国产一区二区三区香蕉 | 一本高清dvd不卡在线观看| 五月婷婷另类国产| 国产亚洲欧洲997久久综合| 色婷婷综合久久久中文字幕| 麻豆国产一区二区| 18涩涩午夜精品.www| 日韩欧美国产精品一区| eeuss鲁片一区二区三区| 欧美a级理论片| 亚洲视频 欧洲视频| 日韩一区二区三区免费观看| 91片在线免费观看| 久久99国产精品成人| 一区二区三区资源| 国产亚洲短视频| 欧美一级国产精品| 在线观看日韩国产| 国产成人免费视频网站高清观看视频| 亚洲综合图片区| 国产欧美日韩不卡| 制服丝袜亚洲色图| 在线欧美小视频| 丰满少妇久久久久久久| 伦理电影国产精品| 亚洲一区二区在线视频| 国产精品久久久久影院| 久久久亚洲欧洲日产国码αv| 欧美日韩国产一级二级| 91免费观看在线| gogo大胆日本视频一区| 国产91精品在线观看| 久色婷婷小香蕉久久| 亚洲成人先锋电影| 一区二区三区欧美久久| 国产精品家庭影院| 久久精品亚洲国产奇米99| 欧美一级黄色大片| 欧美一区二区视频在线观看2020| 欧美综合一区二区三区| 99精品欧美一区| 成人短视频下载| 国产a视频精品免费观看| 国产精品亚洲视频| 国产在线精品免费| 国产精品羞羞答答xxdd| 国产精品一线二线三线| 国产伦精一区二区三区| 久久av老司机精品网站导航| 三级欧美韩日大片在线看| 亚洲国产日韩a在线播放| 亚洲自拍另类综合| 亚洲成人综合视频| 五月天中文字幕一区二区| 亚洲成av人片| 日韩电影免费一区| 久久99精品国产麻豆婷婷洗澡| 蜜臀av性久久久久蜜臀aⅴ流畅| 免费精品视频最新在线| 国产一区二区美女| 国产成人自拍在线| 91首页免费视频| 欧美自拍偷拍午夜视频| 欧美日韩电影一区| 日韩亚洲欧美一区| 欧美激情一区二区三区| 亚洲九九爱视频| 午夜精品久久久久影视| 美女在线一区二区| 国产成人精品亚洲777人妖 | 欧美日产国产精品| 日韩三级精品电影久久久| 日韩精品亚洲专区| 韩国欧美国产一区| 菠萝蜜视频在线观看一区| 91搞黄在线观看| 欧美一区二区三区四区在线观看 | 欧美二区乱c少妇| 久久综合久久综合九色| 最新不卡av在线| 性欧美疯狂xxxxbbbb| 国产在线国偷精品免费看| 一本色道久久综合亚洲精品按摩| 欧美日韩国产123区| 久久精品人人做人人综合| 亚洲乱码国产乱码精品精小说| 丝瓜av网站精品一区二区 | 欧美日本乱大交xxxxx| 久久综合久久99| 亚洲一区在线免费观看| 久久激情综合网| 97se亚洲国产综合自在线观| 欧美一区二区视频在线观看 | 在线视频亚洲一区| 日韩精品一区在线观看| 亚洲美女屁股眼交| 国产专区综合网| 欧美日韩国产小视频| 国产蜜臀av在线一区二区三区| 亚洲一区自拍偷拍| 国产成人一区在线| 69久久夜色精品国产69蝌蚪网| 亚洲国产高清在线| 激情综合一区二区三区| 欧美日韩国产免费一区二区| 国产精品毛片a∨一区二区三区| 日韩精品91亚洲二区在线观看 | 亚洲最新视频在线观看| 久久99国产精品久久99| 在线观看视频欧美| 国产日韩欧美在线一区| 裸体健美xxxx欧美裸体表演| 亚洲国产成人私人影院tom| 婷婷六月综合网| 色哟哟一区二区在线观看| 国产拍揄自揄精品视频麻豆| 日韩av不卡在线观看| 欧洲av在线精品| 亚洲图片你懂的| 99久久综合国产精品| 久久久精品影视| 久久精品国产亚洲5555| 日韩一区二区三区免费看| 日韩中文欧美在线| 欧美日韩午夜精品| 午夜精品免费在线观看| 精品视频一区二区三区免费| 亚洲久本草在线中文字幕| 91小视频在线免费看| 国产精品麻豆久久久| 大胆亚洲人体视频| 国产欧美一区二区精品婷婷| 国产一区美女在线| 欧美成人r级一区二区三区| 免费不卡在线视频| 精品欧美一区二区在线观看| 麻豆91精品视频|