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

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

?? lzz_p.h

?? 密碼大家Shoup寫的數(shù)論算法c語言實現(xiàn)
?? H
字號:
#ifndef NTL_zz_p__H#define NTL_zz_p__H#include <NTL/ZZ.h>#include <NTL/FFT.h>NTL_OPEN_NNSclass zz_pInfoT {private:   zz_pInfoT();                      // disabled   zz_pInfoT(const zz_pInfoT&);  // disabled   void operator=(const zz_pInfoT&); // disabledpublic:   zz_pInfoT(long NewP, long maxroot);   zz_pInfoT(long Index);   ~zz_pInfoT();   long ref_count;   long p;   double pinv;   long index;        // index >= 0 means we are directly using                     // an FFT prime   long PrimeCnt;     // 0 for FFT prime;  otherwise same as NumPrimes                     // used for establishing crossover points   long NumPrimes;   long MaxRoot;   long MinusMModP;  //  -M mod p, M = product of primes   // the following arrays are indexed 0..NumPrimes-1   // q = FFTPrime[i]   long *CoeffModP;    // coeff mod p   double *x;          // u/q, where u = (M/q)^{-1} mod q   long *u;            // u, as above};extern zz_pInfoT *zz_pInfo;  // current modulus, initially nullclass zz_pContext {private:zz_pInfoT *ptr;public:void save();void restore() const;zz_pContext() { ptr = 0; }zz_pContext(long p, long maxroot=NTL_FFTMaxRoot);zz_pContext(INIT_FFT_TYPE, long index);zz_pContext(const zz_pContext&); zz_pContext& operator=(const zz_pContext&); ~zz_pContext();};class zz_pBak {private:long MustRestore;zz_pInfoT *ptr;zz_pBak(const zz_pBak&); // disabledvoid operator=(const zz_pBak&); // disabledpublic:void save();void restore();zz_pBak() { MustRestore = 0; ptr = 0; }~zz_pBak();};#define NTL_zz_pRegister(x) zz_p xclass zz_p {public:long _zz_p__rep;static void init(long NewP, long maxroot=NTL_FFTMaxRoot);static void FFTInit(long index);// ****** constructors and assignmentzz_p() { _zz_p__rep = 0; }zz_p(const zz_p& a) :  _zz_p__rep(a._zz_p__rep) { }  ~zz_p() { } zz_p& operator=(const zz_p& a) { _zz_p__rep = a._zz_p__rep; return *this; }inline zz_p& operator=(long a);// a loop-hole for direct access to _zz_p__replong& LoopHole() { return _zz_p__rep; }static long modulus() { return zz_pInfo->p; }static zz_p zero() { return zz_p(); }static double ModulusInverse() { return zz_pInfo->pinv; }static long PrimeCnt() { return zz_pInfo->PrimeCnt; }static long storage() { return sizeof(long); }zz_p(long a, INIT_LOOP_HOLE_TYPE) { _zz_p__rep = a; }};zz_p to_zz_p(long a);void conv(zz_p& x, long a);inline zz_p& zz_p::operator=(long a) { conv(*this, a); return *this; }zz_p to_zz_p(const ZZ& a);void conv(zz_p& x, const ZZ& a);// read-only access to _zz_p__representationinline long rep(zz_p a) { return a._zz_p__rep; }inline void clear(zz_p& x)// x = 0   { x._zz_p__rep = 0; }inline void set(zz_p& x)// x = 1   { x._zz_p__rep = 1; }inline void swap(zz_p& x, zz_p& y)// swap x and y   { long t;  t = x._zz_p__rep; x._zz_p__rep = y._zz_p__rep; y._zz_p__rep = t; }// ****** additioninline void add(zz_p& x, zz_p a, zz_p b)// x = a + b   { x._zz_p__rep = AddMod(a._zz_p__rep, b._zz_p__rep, zz_p::modulus()); }inline void sub(zz_p& x, zz_p a, zz_p b)// x = a - b   { x._zz_p__rep = SubMod(a._zz_p__rep, b._zz_p__rep, zz_p::modulus()); }inline void negate(zz_p& x, zz_p a)// x = -a   { x._zz_p__rep = SubMod(0, a._zz_p__rep, zz_p::modulus()); }// scalar versionsinline void add(zz_p& x, zz_p a, long b) { add(x, a, to_zz_p(b)); }inline void add(zz_p& x, long a, zz_p b) { add(x, to_zz_p(a), b); }inline void sub(zz_p& x, zz_p a, long b) { sub(x, a, to_zz_p(b)); }inline void sub(zz_p& x, long a, zz_p b) { sub(x, to_zz_p(a), b); }inline zz_p operator+(zz_p a, zz_p b)    { zz_p x; add(x, a, b); return x; }inline zz_p operator+(zz_p a, long b)    { zz_p x; add(x, a, b); return x; }inline zz_p operator+(long a, zz_p b)    { zz_p x; add(x, a, b); return x; }inline zz_p operator-(zz_p a, zz_p b)    { zz_p x; sub(x, a, b); return x; }inline zz_p operator-(zz_p a, long b)    { zz_p x; sub(x, a, b); return x; }inline zz_p operator-(long a, zz_p b)    { zz_p x; sub(x, a, b); return x; }inline zz_p operator-(zz_p a)   { zz_p x; negate(x, a); return x; }inline zz_p& operator+=(zz_p& x, zz_p b)   { add(x, x, b); return x; }inline zz_p& operator+=(zz_p& x, long b)   { add(x, x, b); return x; }inline zz_p& operator-=(zz_p& x, zz_p b)   { sub(x, x, b); return x; }inline zz_p& operator-=(zz_p& x, long b)   { sub(x, x, b); return x; }inline zz_p& operator++(zz_p& x) { add(x, x, 1); return x; }inline void operator++(zz_p& x, int) { add(x, x, 1); }inline zz_p& operator--(zz_p& x) { sub(x, x, 1); return x; }inline void operator--(zz_p& x, int) { sub(x, x, 1); }// ****** multiplicationinline void mul(zz_p& x, zz_p a, zz_p b)// x = a*b   { x._zz_p__rep = MulMod(a._zz_p__rep, b._zz_p__rep, zz_p::modulus(), zz_p::ModulusInverse()); }inline void mul(zz_p& x, zz_p a, long b) { mul(x, a, to_zz_p(b)); }inline void mul(zz_p& x, long a, zz_p b) { mul(x, to_zz_p(a), b); }inline zz_p operator*(zz_p a, zz_p b)    { zz_p x; mul(x, a, b); return x; }inline zz_p operator*(zz_p a, long b)    { zz_p x; mul(x, a, b); return x; }inline zz_p operator*(long a, zz_p b)    { zz_p x; mul(x, a, b); return x; }inline zz_p& operator*=(zz_p& x, zz_p b)   { mul(x, x, b); return x; }inline zz_p& operator*=(zz_p& x, long b)   { mul(x, x, b); return x; }inline void sqr(zz_p& x, zz_p a)// x = a^2   { x._zz_p__rep = MulMod(a._zz_p__rep, a._zz_p__rep, zz_p::modulus(), zz_p::ModulusInverse()); }inline zz_p sqr(zz_p a)   { zz_p x; sqr(x, a); return x; }// ****** divisioninline void div(zz_p& x, zz_p a, zz_p b)// x = a/b   { x._zz_p__rep = MulMod(a._zz_p__rep, InvMod(b._zz_p__rep, zz_p::modulus()), zz_p::modulus(),                    zz_p::ModulusInverse()); }inline void inv(zz_p& x, zz_p a)// x = 1/a   { x._zz_p__rep = InvMod(a._zz_p__rep, zz_p::modulus()); }inline zz_p inv(zz_p a)   { zz_p x; inv(x, a); return x; }inline void div(zz_p& x, zz_p a, long b) { div(x, a, to_zz_p(b)); }inline void div(zz_p& x, long a, zz_p b) { div(x, to_zz_p(a), b); }inline zz_p operator/(zz_p a, zz_p b)    { zz_p x; div(x, a, b); return x; }inline zz_p operator/(zz_p a, long b)    { zz_p x; div(x, a, b); return x; }inline zz_p operator/(long a, zz_p b)    { zz_p x; div(x, a, b); return x; }inline zz_p& operator/=(zz_p& x, zz_p b)   { div(x, x, b); return x; }inline zz_p& operator/=(zz_p& x, long b)   { div(x, x, b); return x; }// ****** exponentiationinline void power(zz_p& x, zz_p a, long e)// x = a^e   { x._zz_p__rep = PowerMod(a._zz_p__rep, e, zz_p::modulus()); }inline zz_p power(zz_p a, long e)   { zz_p x; power(x, a, e); return x; }// ****** comparisoninline long IsZero(zz_p a)   { return a._zz_p__rep == 0; }inline long IsOne(zz_p a)   { return a._zz_p__rep == 1; }inline long operator==(zz_p a, zz_p b)   { return a._zz_p__rep == b._zz_p__rep; }inline long operator!=(zz_p a, zz_p b)   { return !(a == b); }inline long operator==(zz_p a, long b) { return a == to_zz_p(b); }inline long operator==(long a, zz_p b) { return to_zz_p(a) == b; }inline long operator!=(zz_p a, long b) { return !(a == b); }inline long operator!=(long a, zz_p b) { return !(a == b); }// ****** random numbersinline void random(zz_p& x)// x = random element in zz_p   { x._zz_p__rep = RandomBnd(zz_p::modulus()); }inline zz_p random_zz_p()   { zz_p x; random(x); return x; }// ****** input/outputNTL_SNS ostream& operator<<(NTL_SNS ostream& s, zz_p a);   NTL_SNS istream& operator>>(NTL_SNS istream& s, zz_p& x);NTL_CLOSE_NNS#endif

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美激情一二三区| 亚洲激情图片qvod| 一本大道久久a久久综合婷婷| 亚洲国产精品尤物yw在线观看| 久久色在线视频| 欧美色视频在线| 99精品视频在线播放观看| 男人的j进女人的j一区| 一区二区三区在线视频观看58| 国产三区在线成人av| 欧美一区二区三区性视频| av午夜一区麻豆| 国产美女精品一区二区三区| 日本免费在线视频不卡一不卡二| 国产精品乱人伦| 2021久久国产精品不只是精品| 欧美日韩国产不卡| 在线亚洲精品福利网址导航| 高清不卡一二三区| 精品一区二区在线视频| 亚洲va欧美va人人爽| 亚洲欧美另类久久久精品| 国产精品网曝门| 精品va天堂亚洲国产| 欧美高清精品3d| 精品污污网站免费看| 波多野结衣亚洲一区| 国产69精品久久久久777| 国产综合久久久久久久久久久久| 日本三级韩国三级欧美三级| 日韩在线a电影| 午夜激情久久久| 亚洲成a人片在线观看中文| 亚洲精品中文字幕乱码三区| 亚洲欧洲综合另类| 欧美激情一区在线| 国产精品乱码一区二区三区软件 | 91亚洲精品一区二区乱码| 成人综合日日夜夜| 国产成人夜色高潮福利影视| 国产传媒日韩欧美成人| 成人激情校园春色| 99久久综合99久久综合网站| 97久久精品人人做人人爽50路 | 国产一区二区三区精品视频| 精品亚洲欧美一区| 激情小说亚洲一区| 国产麻豆日韩欧美久久| 成人午夜视频在线观看| 99re这里只有精品视频首页| 91亚洲资源网| 精品视频在线免费看| 91麻豆精品国产| 欧美成人高清电影在线| 国产亚洲成av人在线观看导航 | 波多野结衣的一区二区三区| 99久精品国产| 欧美午夜精品久久久久久孕妇| 在线观看欧美日本| 91精品欧美综合在线观看最新| 精品日韩一区二区三区免费视频| 精品国产免费人成电影在线观看四季| 久久你懂得1024| 亚洲乱码国产乱码精品精小说 | 国产在线精品不卡| av资源站一区| 欧美精品第1页| 久久众筹精品私拍模特| 中文字幕在线不卡一区二区三区 | 精品一区二区在线视频| www.在线欧美| 欧美日韩一级片网站| 日韩一区二区免费视频| 国产欧美日韩三级| 亚洲人成小说网站色在线| 亚洲成av人片一区二区梦乃| 国内久久婷婷综合| 一本大道av一区二区在线播放 | 亚洲女与黑人做爰| 麻豆精品一区二区综合av| 成人国产精品视频| 欧美精品vⅰdeose4hd| 久久综合狠狠综合久久综合88| 国产精品国产自产拍高清av| 亚洲va欧美va人人爽| 国产不卡在线一区| 555夜色666亚洲国产免| 国产日韩精品一区| 日韩精品视频网站| 成人激情图片网| 91精品国产综合久久国产大片| 欧美国产亚洲另类动漫| 日本视频中文字幕一区二区三区| 成人高清av在线| 欧美videossexotv100| 亚洲精选视频在线| 国产成a人无v码亚洲福利| 91精品国产91久久久久久最新毛片 | 欧美国产禁国产网站cc| 三级不卡在线观看| 91久久久免费一区二区| 国产日产欧美一区二区视频| 亚洲国产美女搞黄色| heyzo一本久久综合| 精品国产91亚洲一区二区三区婷婷| 亚洲综合视频在线| 成人h版在线观看| 久久久国产精品午夜一区ai换脸| 天天影视涩香欲综合网| 色综合天天视频在线观看| 国产女人aaa级久久久级| 韩国精品在线观看| 欧美成人性战久久| 天天影视色香欲综合网老头| 欧美中文字幕不卡| 一区二区三区四区亚洲| k8久久久一区二区三区| 国产三级精品在线| 加勒比av一区二区| 欧美不卡激情三级在线观看| 日韩成人免费看| 9191精品国产综合久久久久久| 一区二区不卡在线播放 | 亚洲福利视频导航| 91久久国产综合久久| 亚洲精选视频在线| 91香蕉视频在线| 日韩一区在线播放| a在线播放不卡| 国产精品国产三级国产有无不卡| 成人免费高清在线| 亚洲欧洲精品一区二区精品久久久| 国产精品一卡二卡| 欧美国产综合色视频| 成人18视频日本| 成人欧美一区二区三区在线播放| a美女胸又www黄视频久久| ㊣最新国产の精品bt伙计久久| 99国产一区二区三精品乱码| 亚洲日本韩国一区| 欧美性大战久久久久久久| 亚洲成人手机在线| 欧美一级二级三级蜜桃| 激情文学综合网| 欧美国产丝袜视频| 91视频xxxx| 香蕉乱码成人久久天堂爱免费| 欧美精品在线视频| 久久精品国产免费看久久精品| 久久噜噜亚洲综合| www.99精品| 性感美女久久精品| 欧美成人a∨高清免费观看| 国产精品99久久久久久久vr| 国产精品久久福利| 欧美在线一二三| 麻豆国产精品777777在线| 久久精品人人做人人综合| 99re这里只有精品6| 一区二区三区欧美久久| 欧美一区2区视频在线观看| 国产精品自拍三区| 亚洲欧美另类小说| 日韩亚洲电影在线| 成人一区二区视频| 亚洲成人免费av| 久久久久国产精品免费免费搜索| 99久久精品国产毛片| 天堂蜜桃91精品| 国产亚洲综合色| 欧美私模裸体表演在线观看| 精品影院一区二区久久久| 亚洲女子a中天字幕| 日韩精品一区二区三区在线播放| 国产精品亚洲а∨天堂免在线| 一区二区三区四区五区视频在线观看 | 97精品久久久午夜一区二区三区| 亚洲成a天堂v人片| 中文字幕 久热精品 视频在线| 欧美亚洲国产一区在线观看网站 | 亚洲午夜久久久久久久久久久| 亚洲精品在线免费播放| 色综合久久综合网97色综合 | 一区二区三区日韩在线观看| 精品国产免费一区二区三区四区 | 91亚洲精品久久久蜜桃网站 | 亚洲v精品v日韩v欧美v专区| 国产偷国产偷精品高清尤物 | 亚洲日本va在线观看| 精品国产一二三| 欧美日韩精品欧美日韩精品一综合| 国产成人av在线影院| 日韩国产欧美三级| 亚洲欧美福利一区二区| 久久精品一区四区| 欧美一区二区三区公司| 色综合久久中文字幕综合网| 国产一区美女在线| 美日韩一区二区三区| 亚洲国产婷婷综合在线精品|