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

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

?? zzx.txt

?? NTL is a high-performance, portable C++ library providing data structures and algorithms for manipul
?? TXT
?? 第 1 頁 / 共 2 頁
字號:


/**************************************************************************\

MODULE: ZZX

SUMMARY:

The class ZZX implements polynomials in ZZ[X], i.e., univariate
polynomials with integer coefficients.

Polynomial multiplication is implemented using one of 4 different
algorithms:

1) classical 

2) Karatsuba

3) Schoenhage & Strassen --- performs an FFT by working
     modulo a "Fermat number" of appropriate size...
     good for polynomials with huge coefficients
     and moderate degree

4) CRT/FFT --- performs an FFT by working modulo several
     small primes...good for polynomials with moderate coefficients
     and huge degree.

The choice of algorithm is somewhat heuristic, and may not always be
perfect.

Many thanks to Juergen Gerhard <jngerhar@plato.uni-paderborn.de> for
pointing out the deficiency in the NTL-1.0 ZZX arithmetic, and for
contributing the Schoenhage/Strassen code.

Extensive use is made of modular algorithms to enhance performance
(e.g., the GCD algorithm and amny others).

\**************************************************************************/

#include <NTL/vec_ZZ.h>
#include "zz_pX.h"
#include <NTL/ZZ_pX.h>


class ZZX {
public:


   ZZX(); // initial value 0

   ZZX(const ZZX& a); // copy

   ZZX& operator=(const ZZX& a); // assignment
   ZZX& operator=(const ZZ& a);
   ZZX& operator=(long a);

   ~ZZX();

   ZZX(long i, const ZZ& c); // initial value X^i*c
   ZZX(long i, long c); 

   // ...

};



/**************************************************************************\

                                  Comparison

\**************************************************************************/

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

long IsZero(const ZZX& a);  // test for 0
long IsOne(const ZZX& a);  // test for 1

// PROMOTIONS: operators ==, != promote {long, ZZ} to ZZX on (a, b).


/**************************************************************************\

                                   Addition

\**************************************************************************/

// operator notation:

ZZX operator+(const ZZX& a, const ZZX& b);
ZZX operator-(const ZZX& a, const ZZX& b);
ZZX operator-(const ZZX& a); // unary -

ZZX& operator+=(ZZX& x, const ZZX& a);
ZZX& operator-=(ZZX& x, const ZZX& a);

ZZX& operator++(ZZX& x);  // prefix
void operator++(ZZX& x, int);  // postfix

ZZX& operator--(ZZX& x);  // prefix
void operator--(ZZX& x, int);  // postfix


// procedural versions:

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

// PROMOTIONS: binary +, - and procedures add, sub promote {long, ZZ} 
// to ZZX on (a, b).


/**************************************************************************\

                               Multiplication

\**************************************************************************/

// operator notation:

ZZX operator*(const ZZX& a, const ZZX& b);

ZZX& operator*=(ZZX& x, const ZZX& a);


// procedural versions:

void mul(ZZX& x, const ZZX& a, const ZZX& b); // x = a * b

void sqr(ZZX& x, const ZZX& a); // x = a^2
ZZX sqr(const ZZX& a);

// PROMOTIONS: operator * and procedure mul promote {long, ZZ} to ZZX 
// on (a, b).


/**************************************************************************\

                               Shift Operations

LeftShift by n means multiplication by X^n
RightShift by n means division by X^n

A negative shift amount reverses the direction of the shift.

\**************************************************************************/

// operator notation:

ZZX operator<<(const ZZX& a, long n);
ZZX operator>>(const ZZX& a, long n);

ZZX& operator<<=(ZZX& x, long n);
ZZX& operator>>=(ZZX& x, long n);

// procedural versions:

void LeftShift(ZZX& x, const ZZX& a, long n); 
ZZX LeftShift(const ZZX& a, long n);

void RightShift(ZZX& x, const ZZX& a, long n); 
ZZX RightShift(const ZZX& a, long n); 



/**************************************************************************\

                                  Division

\**************************************************************************/


// Given polynomials a, b in ZZ[X], there exist polynomials
// q, r in QQ[X] such that a = b*q + r, deg(r) < deg(b).
// These routines return q and/or r if q and/or r lie(s) in ZZ[X],
// and otherwise raise an error.  

// Note that if the leading coefficient of b is 1 or -1, 
// then q and r always lie in ZZ[X], and no error can occur.

// For example, you can write f/2 for a ZZX f.  If all coefficients
// of f are even, the result is f with a factor of two removed;
// otherwise, an error is raised.  More generally, f/g will be
// evaluate q in ZZ[X] such that f = q*g if such a q exists,
// and will otherwise raise an error.

// See also below the routines for pseudo-division and division
// predicates for routines that are perhaps more useful in
// some situations.


// operator notation: 

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

ZZX operator%(const ZZX& a, const ZZX& b);

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

ZZX& operator%=(ZZX& x, const ZZX& b);


// procedural versions:

void DivRem(ZZX& q, ZZX& r, const ZZX& a, const ZZX& b);
// computes q, r such that a = b q + r and deg(r) < deg(b).
// requires LeadCoeff(b) is a unit (+1, -1); otherwise,
// an error is raised.

void div(ZZX& q, const ZZX& a, const ZZX& b);
void div(ZZX& q, const ZZX& a, const ZZ& b);
void div(ZZX& q, const ZZX& a, long b);
// same as DivRem, but only computes q

void rem(ZZX& r, const ZZX& a, const ZZX& b);
// same as DivRem, but only computes r



// divide predicates:

long divide(ZZX& q, const ZZX& a, const ZZX& b);
long divide(ZZX& q, const ZZX& a, const ZZ& b);
long divide(ZZX& q, const ZZX& a, long b);
// if b | a, sets q = a/b and returns 1; otherwise returns 0


long divide(const ZZX& a, const ZZX& b);
long divide(const ZZX& a, const ZZ& b);
long divide(const ZZX& a, long b);
// if b | a, returns 1; otherwise returns 0

// These algorithms employ a modular approach, performing the division
// modulo small primes (reconstructing q via the CRT).  It is
// usually much faster than the general division routines above
// (especially when b does not divide a).


void content(ZZ& d, const ZZX& f);
ZZ content(const ZZX& f);
// d = content of f, sign(d) == sign(LeadCoeff(f)); content(0) == 0

void PrimitivePart(ZZX& pp, const ZZX& f);
ZZX PrimitivePart(const ZZX& f); 
// pp = primitive part of f, LeadCoeff(pp) >= 0; PrimitivePart(0) == 0



// pseudo-division:

void PseudoDivRem(ZZX& q, ZZX& r, const ZZX& a, const ZZX& b);
// performs pseudo-division: computes q and r with deg(r) < deg(b),
// and LeadCoeff(b)^(deg(a)-deg(b)+1) a = b q + r.  Only the classical
// algorithm is used.

void PseudoDiv(ZZX& q, const ZZX& a, const ZZX& b);
ZZX PseudoDiv(const ZZX& a, const ZZX& b);
// same as PseudoDivRem, but only computes q

void PseudoRem(ZZX& r, const ZZX& a, const ZZX& b);
ZZX PseudoRem(const ZZX& a, const ZZX& b);
// same as PseudoDivRem, but only computes r


/**************************************************************************\

                                  GCD's

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
91精品福利视频| 国产·精品毛片| 一区二区三区在线观看网站| 欧美精彩视频一区二区三区| 久久久蜜臀国产一区二区| 日韩精品一区二区三区视频在线观看 | 奇米影视一区二区三区| 欧美高清视频一二三区| 精品国产伦一区二区三区免费| 亚洲小少妇裸体bbw| 成人av网站在线观看免费| 精品国产精品网麻豆系列| 亚洲一区二区三区影院| 91亚洲精华国产精华精华液| 久久亚洲一区二区三区明星换脸| 成人蜜臀av电影| 欧美成人欧美edvon| 日韩成人av影视| 欧美三级中文字幕在线观看| 亚洲欧美一区二区久久| 成人综合在线网站| 久久精品一区二区三区不卡 | 亚洲另类春色校园小说| 综合久久久久综合| 日韩电影在线一区二区三区| 精品亚洲成av人在线观看| 成人免费精品视频| 欧美性猛交xxxxxxxx| 日韩三级中文字幕| 中文一区一区三区高中清不卡| 玉米视频成人免费看| 蜜臀精品一区二区三区在线观看 | 国产成人精品网址| 91碰在线视频| 欧美变态口味重另类| 中文字幕中文乱码欧美一区二区| 亚洲图片欧美一区| 国产精品综合一区二区三区| 欧美伊人久久大香线蕉综合69| 日韩欧美一级二级三级| 国产精品福利一区二区| 美女性感视频久久| 91黄色激情网站| 欧美精品一区二区三区高清aⅴ| 亚洲色欲色欲www在线观看| 图片区小说区国产精品视频| 丁香六月综合激情| 91精品福利在线一区二区三区 | 亚洲一区二区三区四区不卡| 欧美性高清videossexo| 久久人人超碰精品| 日韩精品乱码免费| 日本久久电影网| 久久久亚洲精品一区二区三区| 亚洲v中文字幕| 97精品电影院| 国产精品久久久久aaaa樱花 | 久久久久久久综合色一本| 亚洲成a人v欧美综合天堂下载| 成人爽a毛片一区二区免费| 欧美一区二区三区男人的天堂| 亚洲精品写真福利| 亚洲国产精品一区二区久久| 91免费在线看| 免费在线观看日韩欧美| 国产精品视频一二三区| 欧美日韩三级一区二区| 国产在线不卡视频| 一区二区免费在线播放| 精品乱人伦一区二区三区| 国产欧美日韩三区| 欧美亚洲国产bt| 国产精品亚洲一区二区三区妖精| 亚洲激情五月婷婷| 久久久久久一二三区| 欧美做爰猛烈大尺度电影无法无天| 老司机午夜精品99久久| 一区二区三区在线视频观看 | 日韩精品国产精品| 国产精品三级av在线播放| 亚洲免费av在线| 国产成人精品免费视频网站| 国产三级精品视频| 国产成人一区二区精品非洲| 国产日韩精品一区二区三区| 盗摄精品av一区二区三区| 国产精品美日韩| 色噜噜久久综合| 亚洲第一主播视频| 欧美成人三级在线| 顶级嫩模精品视频在线看| 国产精品高清亚洲| 欧美最新大片在线看| 婷婷久久综合九色综合绿巨人| 日韩欧美自拍偷拍| 国产999精品久久久久久| 国产精品美女一区二区在线观看| www.日本不卡| 亚洲国产一区二区视频| 日韩欧美国产综合一区| 国产成人免费视| 不卡电影免费在线播放一区| 亚洲免费三区一区二区| 欧美日本韩国一区二区三区视频| 免费成人在线观看| 国产精品成人午夜| 欧美日韩国产片| 国产高清视频一区| 亚洲午夜三级在线| 久久亚洲春色中文字幕久久久| 99国产精品国产精品毛片| 五月天一区二区三区| 中文字幕二三区不卡| 欧美日韩免费一区二区三区视频| 精品一区二区三区视频| 中文字幕一区二区三区四区| 91精品国产91综合久久蜜臀| 国产成a人亚洲精品| 亚洲chinese男男1069| 久久久美女艺术照精彩视频福利播放| 色综合一区二区| 国产剧情一区在线| 亚洲成人精品影院| 国产精品嫩草影院com| 日韩一级片在线观看| 99视频在线精品| 国产老妇另类xxxxx| 免费亚洲电影在线| 亚洲一区av在线| 国产精品国产自产拍高清av王其| 欧美一区二区视频在线观看2020| av成人老司机| 国产成人免费在线视频| 2019国产精品| 在线成人高清不卡| 精品国产伦一区二区三区观看体验| 久久久久久一二三区| 中文字幕中文字幕中文字幕亚洲无线| 亚洲欧美国产三级| 日韩国产精品久久久久久亚洲| 久久9热精品视频| 精品人伦一区二区色婷婷| 中文字幕+乱码+中文字幕一区| 亚洲精品视频在线| 蜜桃精品视频在线| 国产成人综合亚洲91猫咪| 色噜噜狠狠成人网p站| 在线不卡的av| 欧美激情一区二区三区不卡| 亚洲综合色自拍一区| 久久99久久99小草精品免视看| 成人一级黄色片| 欧美日韩国产精品成人| 久久久亚洲精品一区二区三区| 亚洲男人的天堂在线观看| 精品国产免费久久 | 玉米视频成人免费看| 亚洲欧美另类图片小说| 亚洲另类一区二区| 亚洲国产精品精华液网站| 一个色妞综合视频在线观看| 亚洲午夜av在线| 天堂成人免费av电影一区| 日韩激情在线观看| 久久国产欧美日韩精品| 久久99国产精品成人| 国产成人精品亚洲777人妖| 不卡一卡二卡三乱码免费网站| 9l国产精品久久久久麻豆| 日本道免费精品一区二区三区| 欧美性大战久久久| 日韩一区二区中文字幕| 国产亚洲午夜高清国产拍精品| 中文字幕欧美日韩一区| 亚洲精品va在线观看| 欧美激情综合五月色丁香| 久久在线观看免费| fc2成人免费人成在线观看播放 | 精品少妇一区二区三区在线视频| 中文字幕日韩欧美一区二区三区| 一区二区中文字幕在线| 一区二区三区四区激情| 日韩和的一区二区| 粉嫩aⅴ一区二区三区四区五区| 波多野洁衣一区| 欧美色图12p| 久久久久亚洲蜜桃| 伊人一区二区三区| 狠狠色丁香婷婷综合久久片| av激情综合网| 91精品国产综合久久久蜜臀粉嫩| 亚洲精品一区二区三区精华液 | 久久人人爽爽爽人久久久| 国产精品久久久久永久免费观看 | 欧美日韩高清一区二区三区| 日韩精品一区二区三区四区| 亚洲乱码中文字幕| 激情五月播播久久久精品| 欧美综合色免费| 国产欧美日韩不卡|