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

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

?? zzx.h

?? 可以根據(jù)NTL庫進(jìn)RSA加密、解密算法的實(shí)現(xiàn)
?? H
?? 第 1 頁 / 共 2 頁
字號(hào):

#ifndef NTL_ZZX__H
#define NTL_ZZX__H

#include <NTL/vec_ZZ.h>
#include <NTL/lzz_pX.h>
#include <NTL/ZZ_pX.h>

NTL_OPEN_NNS


class ZZX {

public:

vec_ZZ rep;


/***************************************************************

          Constructors, Destructors, and Assignment

****************************************************************/


ZZX()
//  initial value 0

   { }


ZZX(INIT_SIZE_TYPE, long n) 
// initial value 0, but space is pre-allocated for n coefficients

   { rep.SetMaxLength(n); }

ZZX(const ZZX& a) : rep(a.rep) { }
// initial value is a


ZZX& operator=(const ZZX& a) 
   { rep = a.rep; return *this; }

~ZZX() { }

void normalize();
// strip leading zeros

void SetMaxLength(long n) 
// pre-allocate space for n coefficients.
// Value is unchanged

   { rep.SetMaxLength(n); }


void kill() 
// free space held by this polynomial.  Value becomes 0.

   { rep.kill(); }

static const ZZX& zero();

inline ZZX(long i, const ZZ& c);
inline ZZX(long i, long c);


inline ZZX& operator=(long a);
inline ZZX& operator=(const ZZ& a);


ZZX(ZZX& x, INIT_TRANS_TYPE) : rep(x.rep, INIT_TRANS) { }

};




/********************************************************************

                           input and output

I/O format:

   [a_0 a_1 ... a_n],

represents the polynomial a_0 + a_1*X + ... + a_n*X^n.

On output, all coefficients will be integers between 0 and p-1,
amd a_n not zero (the zero polynomial is [ ]).
Leading zeroes are stripped.

*********************************************************************/


NTL_SNS istream& operator>>(NTL_SNS istream& s, ZZX& x);
NTL_SNS ostream& operator<<(NTL_SNS ostream& s, const ZZX& a);




/**********************************************************

                   Some utility routines

***********************************************************/


inline long deg(const ZZX& a) { return a.rep.length() - 1; }
// degree of a polynomial.
// note that the zero polynomial has degree -1.

const ZZ& coeff(const ZZX& a, long i);
// zero if i not in range

void GetCoeff(ZZ& x, const ZZX& a, long i);
// x = a[i], or zero if i not in range

const ZZ& LeadCoeff(const ZZX& a);
// zero if a == 0

const ZZ& ConstTerm(const ZZX& a);
// zero if a == 0

void SetCoeff(ZZX& x, long i, const ZZ& a);
// x[i] = a, error is raised if i < 0

void SetCoeff(ZZX& x, long i, long a);

inline ZZX::ZZX(long i, const ZZ& a)
   { SetCoeff(*this, i, a); }

inline ZZX::ZZX(long i, long a)
   { SetCoeff(*this, i, a); }

void SetCoeff(ZZX& x, long i);
// x[i] = 1, error is raised if i < 0

void SetX(ZZX& x);
// x is set to the monomial X

long IsX(const ZZX& a);
// test if x = X

inline void clear(ZZX& x) 
// x = 0

   { x.rep.SetLength(0); }

inline void set(ZZX& x)
// x = 1

   { x.rep.SetLength(1); set(x.rep[0]); }

inline void swap(ZZX& x, ZZX& y)
// swap x & y (only pointers are swapped)

   { swap(x.rep, y.rep); }

void trunc(ZZX& x, const ZZX& a, long m);
// x = a % X^m

inline ZZX trunc(const ZZX& a, long m)
   { ZZX x; trunc(x, a, m); NTL_OPT_RETURN(ZZX, x); }

void RightShift(ZZX& x, const ZZX& a, long n);
// x = a/X^n

inline ZZX RightShift(const ZZX& a, long n)
   { ZZX x; RightShift(x, a, n); NTL_OPT_RETURN(ZZX, x); }

void LeftShift(ZZX& x, const ZZX& a, long n);
// x = a*X^n

inline ZZX LeftShift(const ZZX& a, long n)
   { ZZX x; LeftShift(x, a, n); NTL_OPT_RETURN(ZZX, x); }


#ifndef NTL_TRANSITION

inline ZZX operator>>(const ZZX& a, long n)
   { ZZX x; RightShift(x, a, n); NTL_OPT_RETURN(ZZX, x); }

inline ZZX operator<<(const ZZX& a, long n)
   { ZZX x; LeftShift(x, a, n); NTL_OPT_RETURN(ZZX, x); }

inline ZZX& operator<<=(ZZX& x, long n) 
   { LeftShift(x, x, n); return x; }

inline ZZX& operator>>=(ZZX& x, long n) 
   { RightShift(x, x, n); return x; }

#endif


void diff(ZZX& x, const ZZX& a);
// x = derivative of a

inline ZZX diff(const ZZX& a)
   { ZZX x; diff(x, a); NTL_OPT_RETURN(ZZX, x); }

void InvTrunc(ZZX& x, const ZZX& a, long m);
// computes x = a^{-1} % X^m
// constant term must be non-zero

inline ZZX InvTrunc(const ZZX& a, long m)
   { ZZX x; InvTrunc(x, a, m); NTL_OPT_RETURN(ZZX, x); }

void MulTrunc(ZZX& x, const ZZX& a, const ZZX& b, long n);
// x = a * b % X^n

inline ZZX MulTrunc(const ZZX& a, const ZZX& b, long n)
   { ZZX x; MulTrunc(x, a, b, n); NTL_OPT_RETURN(ZZX, x); }

void SqrTrunc(ZZX& x, const ZZX& a, long n);
// x = a^2 % X^n

inline ZZX SqrTrunc(const ZZX& a, long n)
   { ZZX x; SqrTrunc(x, a, n); NTL_OPT_RETURN(ZZX, x); }

void reverse(ZZX& c, const ZZX& a, long hi);

inline ZZX reverse(const ZZX& a, long hi)
   { ZZX x; reverse(x, a, hi); NTL_OPT_RETURN(ZZX, x); }

inline void reverse(ZZX& c, const ZZX& a)
{  reverse(c, a, deg(a)); }

inline ZZX reverse(const ZZX& a)
   { ZZX x; reverse(x, a); NTL_OPT_RETURN(ZZX, x); }


inline void VectorCopy(vec_ZZ& x, const ZZX& a, long n)
   { VectorCopy(x, a.rep, n); }

inline vec_ZZ VectorCopy(const ZZX& a, long n)
   { return VectorCopy(a.rep, n); }







/*******************************************************************

                        conversion routines

********************************************************************/


void conv(ZZX& x, long a);
inline ZZX to_ZZX(long a)
   { ZZX x; conv(x, a); NTL_OPT_RETURN(ZZX, x); }

inline ZZX& ZZX::operator=(long a)
   { conv(*this, a); return *this; }

void conv(ZZX& x, const ZZ& a);
inline ZZX to_ZZX(const ZZ& a)
   { ZZX x; conv(x, a); NTL_OPT_RETURN(ZZX, x); }

inline ZZX& ZZX::operator=(const ZZ& a)
   { conv(*this, a); return *this; }

void conv(ZZX& x, const vec_ZZ& a);
inline ZZX to_ZZX(const vec_ZZ& a)
   { ZZX x; conv(x, a); NTL_OPT_RETURN(ZZX, x); }

void conv(zz_pX& x, const ZZX& a);
inline zz_pX to_zz_pX(const ZZX& a)
   { zz_pX x; conv(x, a); NTL_OPT_RETURN(zz_pX, x); }

void conv(ZZ_pX& x, const ZZX& a);
inline ZZ_pX to_ZZ_pX(const ZZX& a)
   { ZZ_pX x; conv(x, a); NTL_OPT_RETURN(ZZ_pX, x); }

void conv(ZZX& x, const ZZ_pX& a);
inline ZZX to_ZZX(const ZZ_pX& a)
   { ZZX x; conv(x, a); NTL_OPT_RETURN(ZZX, x); }

void conv(ZZX& x, const zz_pX& a);
inline ZZX to_ZZX(const zz_pX& a)
   { ZZX x; conv(x, a); NTL_OPT_RETURN(ZZX, x); }



/*************************************************************

                        Comparison

**************************************************************/

long IsZero(const ZZX& a); 

long IsOne(const ZZX& a);

long operator==(const ZZX& a, const ZZX& b);

inline long operator!=(const ZZX& a, const ZZX& b) { return !(a == b); }

long operator==(const ZZX& a, const ZZ& b);
long operator==(const ZZX& a, long b);

inline long operator==(const ZZ& a, const ZZX& b) { return b == a; }
inline long operator==(long a, const ZZX& b) { return b == a; }

inline long operator!=(const ZZX& a, const ZZ& b) { return !(a == b); }
inline long operator!=(const ZZX& a, long b) { return !(a == b); }
inline long operator!=(const ZZ& a, const ZZX& b) { return !(a == b); }
inline long operator!=(long a, const ZZX& b) { return !(a == b); }


/***************************************************************

                         Addition

****************************************************************/

void add(ZZX& x, const ZZX& a, const ZZX& b);
// x = a + b

void sub(ZZX& x, const ZZX& a, const ZZX& b);
// x = a - b

void negate(ZZX& x, const ZZX& a);
// x = -a

// scalar versions


void add(ZZX & x, const ZZX& a, const ZZ& b); // x = a + b
void add(ZZX& x, const ZZX& a, long b);

inline void add(ZZX& x, const ZZ& a, const ZZX& b) { add(x, b, a); }
inline void add(ZZX& x, long a, const ZZX& b) { add(x, b, a); }


void sub(ZZX & x, const ZZX& a, const ZZ& b); // x = a - b
void sub(ZZX& x, const ZZX& a, long b);

void sub(ZZX& x, const ZZ& a, const ZZX& b);
void sub(ZZX& x, long a, const ZZX& b);


inline ZZX operator+(const ZZX& a, const ZZX& b)
   { ZZX x; add(x, a, b); NTL_OPT_RETURN(ZZX, x); }

inline ZZX operator+(const ZZX& a, const ZZ& b)
   { ZZX x; add(x, a, b); NTL_OPT_RETURN(ZZX, x); }

inline ZZX operator+(const ZZX& a, long b)
   { ZZX x; add(x, a, b); NTL_OPT_RETURN(ZZX, x); }

inline ZZX operator+(const ZZ& a, const ZZX& b)
   { ZZX x; add(x, a, b); NTL_OPT_RETURN(ZZX, x); }

inline ZZX operator+(long a, const ZZX& b)
   { ZZX x; add(x, a, b); NTL_OPT_RETURN(ZZX, x); }


inline ZZX operator-(const ZZX& a, const ZZX& b)
   { ZZX x; sub(x, a, b); NTL_OPT_RETURN(ZZX, x); }

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品久久毛片| 99精品偷自拍| 欧美一区二区三区免费观看视频| 欧美电影免费观看高清完整版在线观看 | 国产高清无密码一区二区三区| 欧美一区二区私人影院日本| 亚洲大片免费看| 欧美性高清videossexo| 亚洲自拍偷拍综合| 欧美三级电影一区| 亚洲高清免费在线| 在线不卡a资源高清| 亚洲二区视频在线| 777xxx欧美| 精品一区二区综合| 久久午夜色播影院免费高清| 国模一区二区三区白浆| 日韩一级二级三级| 国产精品一区专区| 国产精品久久久久久一区二区三区 | 国产亚洲综合在线| 波多野结衣在线aⅴ中文字幕不卡| 国产精品嫩草99a| 色噜噜夜夜夜综合网| 中文字幕视频一区| 欧美日韩在线一区二区| 日韩高清在线不卡| 久久久久久久久一| 99久久777色| 香蕉乱码成人久久天堂爱免费| 欧美日韩一区 二区 三区 久久精品| 亚洲18影院在线观看| 日韩欧美一卡二卡| 成人一级片在线观看| 伊人一区二区三区| 欧美成人乱码一区二区三区| 激情小说欧美图片| 一区二区视频在线看| 日韩一级免费观看| eeuss国产一区二区三区| 亚洲一卡二卡三卡四卡| 久久天天做天天爱综合色| 99精品欧美一区二区三区小说 | 精品国产免费一区二区三区四区 | 国产精品欧美一区二区三区| 91久久精品一区二区| 美美哒免费高清在线观看视频一区二区| 久久蜜桃av一区精品变态类天堂 | 久久精品国产999大香线蕉| 国产精品亲子伦对白| 8x福利精品第一导航| 成人精品免费网站| 日本系列欧美系列| 中文字幕亚洲精品在线观看| 91精品欧美一区二区三区综合在 | 久久99精品久久久| 一区二区三区在线不卡| 精品国产免费视频| 91久久精品一区二区| 国产精品中文字幕一区二区三区| 亚洲影视在线观看| 国产精品无人区| 欧美一区二区在线免费观看| 色综合久久中文综合久久97 | 国产成人免费在线| 天堂精品中文字幕在线| 夜夜操天天操亚洲| 亚洲人成网站色在线观看| 国产精品久久久久三级| 国产午夜亚洲精品不卡| 久久久影视传媒| 久久久.com| 国产日本欧美一区二区| 国产亚洲精久久久久久| 精品理论电影在线观看| 久久综合精品国产一区二区三区| 欧美成人一级视频| 精品久久一区二区| 久久久www成人免费毛片麻豆| xfplay精品久久| 久久精品综合网| 国产女主播一区| 国产精品伦一区| 日韩一区在线免费观看| 亚洲视频在线一区| 亚洲国产婷婷综合在线精品| 亚洲夂夂婷婷色拍ww47| 天天综合色天天综合| 日本欧美一区二区三区乱码| 蜜桃久久av一区| 国产成人久久精品77777最新版本| 国产一区二区免费在线| 高清beeg欧美| 日本伦理一区二区| 欧美一区二区视频在线观看2020| 日韩一区二区在线观看视频播放| 日韩视频一区在线观看| 久久亚洲一区二区三区明星换脸| 国产性天天综合网| 亚洲色图一区二区三区| 午夜日韩在线电影| 国产一区二区精品久久| 91一区二区三区在线观看| 欧美日免费三级在线| 欧美精品一区二区蜜臀亚洲| 国产精品乱人伦中文| 亚洲成人免费av| 国产一区二区三区香蕉| 一本一道综合狠狠老| 日韩一级黄色片| 亚洲三级在线免费观看| 精品一二三四区| 成人激情动漫在线观看| 欧美性受xxxx黑人xyx| 精品久久国产字幕高潮| 国产精品白丝在线| 日韩电影在线观看网站| 国产一区二区三区免费在线观看| 91浏览器入口在线观看| 日韩欧美一区在线观看| 亚洲视频资源在线| 精品一区二区精品| 91国偷自产一区二区三区成为亚洲经典 | 亚洲人123区| 麻豆精品一区二区三区| 91视频一区二区三区| 精品国产精品网麻豆系列 | 欧美精品vⅰdeose4hd| 久久久影院官网| 图片区小说区区亚洲影院| 成人精品小蝌蚪| 日韩欧美一级二级三级久久久| 1000部国产精品成人观看| 免费成人美女在线观看.| 在线一区二区三区四区五区| 久久久天堂av| 裸体健美xxxx欧美裸体表演| 99re8在线精品视频免费播放| 欧美精品一区二区三区四区| 日韩激情一区二区| 91国偷自产一区二区三区成为亚洲经典| 精品奇米国产一区二区三区| 性感美女久久精品| 欧美怡红院视频| 亚洲视频一区在线| 成人av集中营| 国产精品乱子久久久久| 国产精品66部| 精品成人私密视频| 免费在线观看一区| 91精品久久久久久蜜臀| 亚洲国产精品久久久久秋霞影院 | 日本va欧美va精品发布| 色哟哟精品一区| 亚洲美女精品一区| 99在线精品免费| 18涩涩午夜精品.www| 成人短视频下载 | |精品福利一区二区三区| 国产在线观看一区二区| 精品日韩在线一区| 精品在线观看免费| 欧美第一区第二区| 激情文学综合插| 久久久一区二区三区捆绑**| 精品一区二区三区在线观看国产| 欧美一区二区三区啪啪| 美女一区二区久久| 2022国产精品视频| 国产精品一线二线三线精华| 久久久久国产精品人| 国产成人免费av在线| 国产精品久久久久久亚洲伦 | 在线免费观看一区| 艳妇臀荡乳欲伦亚洲一区| 欧美中文字幕一区二区三区亚洲| 亚洲三级在线看| 欧美日韩国产首页在线观看| 午夜成人免费电影| 欧美电影精品一区二区| 国产精品18久久久久久久网站| 国产日韩欧美高清| 色狠狠一区二区三区香蕉| 亚洲不卡一区二区三区| 正在播放一区二区| 国产一区二区三区综合| 国产精品乱人伦| 91黄色免费观看| 美女一区二区视频| 中文字幕不卡的av| 91黄色免费观看| 老司机午夜精品99久久| 中文字幕精品一区| 欧美性色欧美a在线播放| 久久99久国产精品黄毛片色诱| 欧美国产在线观看| 欧美日韩精品福利| 国产精品66部| 亚洲国产日韩a在线播放| 日韩精品一区二区三区三区免费|