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

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

?? zzx.h

?? 一個比較通用的大數運算庫
?? H
?? 第 1 頁 / 共 2 頁
字號:

#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); }

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久久欧美精品sm网站| 欧美精品一区二区三区很污很色的 | 成熟亚洲日本毛茸茸凸凹| 日本午夜一本久久久综合| 亚洲国产你懂的| 日欧美一区二区| 老司机免费视频一区二区三区| 视频一区二区不卡| 免费观看在线综合色| 久久er精品视频| 国产精品18久久久久久vr| 成人性色生活片免费看爆迷你毛片| 国产**成人网毛片九色 | 欧美视频你懂的| 5858s免费视频成人| 精品国产亚洲在线| 欧美激情艳妇裸体舞| 亚洲精品视频在线观看网站| 亚洲卡通动漫在线| 天天色图综合网| 国产成人啪免费观看软件| 99久久精品国产观看| 欧美日韩中文字幕一区| 精品国精品国产| 国产精品成人免费精品自在线观看| 一区二区三区自拍| 日韩av中文字幕一区二区| 国产一区二区在线视频| 色综合久久久久久久| 91精品国产日韩91久久久久久| 国产亚洲综合av| 亚洲无人区一区| 国产精品69毛片高清亚洲| 欧美午夜精品一区二区三区| 精品福利二区三区| 亚洲在线中文字幕| 精品在线你懂的| 在线看一区二区| 久久久噜噜噜久久人人看| 亚洲精品v日韩精品| 国产麻豆精品95视频| 欧美少妇一区二区| 国产精品久久影院| 精品亚洲成a人在线观看 | 欧美裸体一区二区三区| 久久亚洲影视婷婷| 午夜视频在线观看一区| 粉嫩在线一区二区三区视频| 欧美一区二区三区免费视频| 一区二区在线免费| 成人高清av在线| 精品久久人人做人人爽| 亚洲午夜久久久久久久久久久| 国产盗摄女厕一区二区三区| 欧美一区二区精品久久911| 亚洲制服欧美中文字幕中文字幕| 粉嫩一区二区三区在线看| 精品乱人伦一区二区三区| 亚洲动漫第一页| 欧美亚洲精品一区| 亚洲欧洲综合另类在线| 成人丝袜18视频在线观看| 日韩精品资源二区在线| 日本不卡的三区四区五区| 欧美综合久久久| 亚洲午夜久久久久| 欧美图片一区二区三区| 亚洲福中文字幕伊人影院| 欧美三区在线观看| 亚洲第一激情av| 欧美高清激情brazzers| 午夜免费欧美电影| 4hu四虎永久在线影院成人| 亚洲福利视频三区| 欧美日韩一区二区三区不卡| 亚洲第一在线综合网站| 欧美精品aⅴ在线视频| 蜜臀国产一区二区三区在线播放| 欧美性极品少妇| 日韩国产高清在线| 日韩精品专区在线| 国产成人免费xxxxxxxx| 中文一区二区完整视频在线观看| 高清在线不卡av| 国产精品久久夜| 欧美性猛交xxxxxxxx| 日本午夜精品一区二区三区电影| 日韩无一区二区| 国产91清纯白嫩初高中在线观看| 久久精品亚洲一区二区三区浴池| 99久久伊人久久99| 亚洲一区二区av在线| 欧美一区二区三区成人| 国产麻豆视频精品| 亚洲欧美偷拍卡通变态| 在线播放中文一区| 国产精品1区2区| 亚洲综合精品自拍| 久久综合久久鬼色| 91一区一区三区| 毛片av一区二区| 国产精品美女一区二区| 欧美剧情电影在线观看完整版免费励志电影 | 欧美主播一区二区三区| 日本伊人色综合网| 国产精品成人网| 5566中文字幕一区二区电影 | 成人免费毛片aaaaa**| 亚洲图片一区二区| 久久精品人人做人人综合| 欧美伊人久久久久久久久影院| 久久精品国产99| 亚洲男同性恋视频| 久久久久久久久免费| 欧美日韩一区二区三区四区五区| 极品尤物av久久免费看| 亚洲蜜臀av乱码久久精品蜜桃| 欧美一区二区三区视频在线观看| caoporm超碰国产精品| 久久精品国产在热久久| 亚洲精品视频在线看| 久久精品男人天堂av| 3751色影院一区二区三区| 91女人视频在线观看| 六月丁香综合在线视频| 亚洲一区在线观看网站| 国产日韩欧美高清| 日韩美女一区二区三区| 欧美日韩一区不卡| 91亚洲精品乱码久久久久久蜜桃| 激情六月婷婷久久| 日韩国产精品久久久久久亚洲| 亚洲人快播电影网| 欧美激情中文不卡| 久久蜜臀精品av| 欧美va亚洲va在线观看蝴蝶网| 欧美伊人久久久久久久久影院| 99久久99久久精品国产片果冻| 狠狠久久亚洲欧美| 久久精品国产亚洲5555| 日韩激情视频网站| 日本麻豆一区二区三区视频| 亚洲成人激情自拍| 亚洲一区二区三区四区在线观看 | 欧美精品一区二区三区高清aⅴ | 风间由美一区二区av101| 狠狠色狠狠色综合| 国产又粗又猛又爽又黄91精品| 日本aⅴ精品一区二区三区| 午夜视频一区在线观看| 亚洲一区二区高清| 洋洋成人永久网站入口| 亚洲国产综合视频在线观看| 亚洲午夜精品在线| 亚洲va韩国va欧美va精品| 午夜精品福利一区二区蜜股av | 成人精品在线视频观看| 国产mv日韩mv欧美| www.亚洲色图.com| 色综合久久中文综合久久97| 91亚洲精品一区二区乱码| 色视频一区二区| 在线观看欧美黄色| 91麻豆精品国产91久久久久久| 欧美三级乱人伦电影| 91精品视频网| 久久色在线观看| 中文字幕乱码久久午夜不卡| 日韩一区日韩二区| 亚州成人在线电影| 国产一区高清在线| 99天天综合性| 欧美二区在线观看| 久久久国际精品| 一区二区三区国产豹纹内裤在线| 首页国产欧美日韩丝袜| 国产一区在线看| 色婷婷综合久久久中文字幕| 欧美情侣在线播放| 亚洲国产精品av| 亚洲国产cao| 国产成人av在线影院| 色94色欧美sute亚洲线路一ni| 欧美男同性恋视频网站| 久久综合九色综合久久久精品综合 | 日韩一区二区高清| 国产精品欧美一区二区三区| 香蕉成人伊视频在线观看| 国产在线日韩欧美| 欧美自拍偷拍一区| 日本一区二区综合亚洲| 亚洲国产成人av网| 国产毛片精品一区| 欧美精品免费视频| 一区在线观看视频| 精品一区二区三区久久久| 欧美三级韩国三级日本三斤| 久久嫩草精品久久久精品| 视频一区国产视频| 色美美综合视频|