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

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

?? gf2e.txt

?? NTL is a high-performance, portable C++ library providing data structures and algorithms for manipul
?? TXT
字號:


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

MODULE: GF2E

SUMMARY:

The class GF2E is used to represent polynomials in F_2[X] modulo a
polynomial P.  The modulus P may be any polynomial with deg(P) > 0,
not necessarily irreducible.  

Objects of the class GF2E are represented as a GF2X of degree < deg(P).

An executing program maintains a "current modulus", which is set to P
using GF2E::init(P).  The current modulus *must* be initialized before
any GF2E constructors are invoked.

The modulus may be changed, and a mechanism is provided for saving and
restoring a modulus (see classes GF2EBak and GF2EContext below).


NOTE: if P is a trinomial X^n + X^k + 1, or a pentanomial
X^n + X^k3 + X^k2 + X^k1 + 1, or of the form X^n + g, where
g has low degree, then performance will be somewhat improved.
Such polynomials are constructed by the routines
BuildSparseIrred and BuildIrred in GF2XFactoring.


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

#include <NTL/GF2X.h>

class GF2E {
public:
   
   GF2E(); // initial value 0

   GF2E(const GF2E& a); // copy constructor
   
   GF2E& operator=(const GF2E& a); // assignment
   GF2E& operator=(GF2 a); // assignment
   GF2E& operator=(long a); // assignment
   
   ~GF2E(); // destructor

   void init(const GF2X& P);
   // GF2E::init(P) initializes the current modulus to P;
   // required: deg(P) >= 1.
   
   static const GF2XModulus& modulus();
   // GF2E::modulus() yields read-only reference to the current modulus 

   static long degree();
   // GF2E::degree() returns deg(P)
};


const GF2X& rep(const GF2E& a); // read-only access to representation of a



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

                                  Comparison

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

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

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

// PROMOTIONS: ==, != promote {long, GF2} to GF2E on (a, b).


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

                                    Addition 

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

// operator notation:

GF2E operator+(const GF2E& a, const GF2E& b);

GF2E operator-(const GF2E& a, const GF2E& b);
GF2E operator-(const GF2E& a);

GF2E& operator+=(GF2E& x, const GF2E& a);
GF2E& operator+=(GF2E& x, GF2 a);
GF2E& operator+=(GF2E& x, long a);

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

GF2E& operator-=(GF2E& x, const GF2E& a);
GF2E& operator-=(GF2E& x, GF2 a);
GF2E& operator-=(GF2E& x, long a);

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

// procedural versions:

void add(GF2E& x, const GF2E& a, const GF2E& b); // x = a + b
void sub(GF2E& x, const GF2E& a, const GF2E& b); // x = a - b = a + b
void negate(GF2E& x, const GF2E& a); // x = - a = a

// PROMOTIONS: +, -, add, sub promote {long, GF2} to GF2E on (a, b).


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

                                  Multiplication 

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


// operator notation:

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

GF2E& operator*=(GF2E& x, const GF2E& a);
GF2E& operator*=(GF2E& x, GF2 a);
GF2E& operator*=(GF2E& x, long a);

// procedural versions:


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

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

// PROMOTIONS: *, mul promote {long, GF2} to GF2E on (a, b).


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

                                     Division

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


// operator notation:

GF2E operator/(const GF2E& a, const GF2E& b);

GF2E& operator/=(GF2E& x, const GF2E& a);
GF2E& operator/=(GF2E& x, GF2 a);
GF2E& operator/=(GF2E& x, long a);


// procedural versions:

void div(GF2E& x, const GF2E& a, const GF2E& b);
// x = a/b.  If b is not invertible, an error is raised.

void inv(GF2E& x, const GF2E& a);
GF2E inv(const GF2E& a);
// x = 1/a

PROMOTIONS: /, div promote {long, GF2} to GF2E on (a, b).


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

                                  Exponentiation

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



void power(GF2E& x, const GF2E& a, const ZZ& e); 
GF2E power(const GF2E& a, const ZZ& e);

void power(GF2E& x, const GF2E& a, long e); 
GF2E power(const GF2E& a, long e);

// x = a^e (e may be negative)



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

                               Random Elements

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


void random(GF2E& x);
GF2E random_GF2E();
// x = random element in GF2E.

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

                                  Traces

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


void trace(GF2& x, const GF2E& a);  // x = trace of a
GF2 trace(const GF2E& a);



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

                                Input/Output

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


ostream& operator<<(ostream& s, const GF2E& a);

istream& operator>>(istream& s, GF2E& x);
// a GF2X is read and reduced mod p


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

                       Modulus Switching 

A class GF2EBak is provided for "backing up" the current modulus.

Here is what you do to save the current modulus, temporarily
set it to something new, and then restore it:

   GF2EBak bak;
   bak.save();   // save current modulus (if any)

   GF2E::init(P);  // set modulus to desired value P

      // ...

   bak.restore(); // restore old modulus (if any)

Note that between the save and restore, you may have several calls to
GF2E::init, each of which simply clobbers the previous modulus.

The GF2EBak interface is good for implementing simple stack-like
modulus "context switching".  For more general context switching,
see GF2EContext below.

..........................................................................

When the current modulus is changed, there may be extant
GF2E objects. If the old modulus was saved and then later restored, 
these objects can be used again as if the modulus had never changed.  
Note, however, that if a GF2E object is created under one modulus 
and then used in any way (except destroyed) under another, 
program behavior is not predictable.  This condition is not
explicitly checked for, but an error is likely to be raised.
One should also not presume that things will work properly
if the modulus is changed, but its value happens to be the same---
one should restore the same "context", from either a GF2EBak
or a GF2EContext object.  This is anyway more efficient.

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




class GF2EBak {
public:

   // To describe this logic, think of a GF2EBak object
   // of having two components: a modulus Q (possibly "null") and 
   // an "auto-restore bit" b.

   // There is also a global current modulus P (initially "null").

   GF2EBak();  // Q = "null", b = 0

   ~GF2EBak();  // if (b) P = Q

   void save();  // Q = P, b = 1 
   void restore();  // P = Q, b = 0


private:
   GF2EBak(const GF2EBak&);  // copy disabled
   void operator=(const GF2EBak&);  // assignment disabled
};


// more general context switching:

class GF2EContext {

// A GF2EContext object has a modulus Q (possibly "null"),
// but has no auto-restore bit like a GF2EBak object.
// However, these objects can be initialized and copied with
// complete generality.

// As above, P is the current global modulus (initially "null")

public:

GF2EContext(); // Q = "null"
GF2EContext(const GF2X& new_Q); // Q = new_Q

void save(); // Q = P
void restore() const; // P = Q

GF2EContext(const GF2EContext&);  // copy
GF2EContext& operator=(const GF2EContext&); // assignment
~GF2EContext(); // destructor


};


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

                               Miscellany

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

void clear(GF2E& x); // x = 0
void set(GF2E& x); // x = 1

static const GF2E& GF2E::zero();
// GF2E::zero() yields a read-only reference to zero

static long GF2X::WordLength();
// GF2E::size() returns # of words needed to store a polynomial of
// degree < GF2E::degree()

void swap(GF2E& x, GF2E& y);
// swap x and y (done by "pointer swapping", if possible).

static ZZ& GF2E::cardinality();
// yields the cardinality, i.e., 2^{GF2E::degree()}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲一级二级在线| 欧美亚洲高清一区| 久久香蕉国产线看观看99| 看片的网站亚洲| 精品国产第一区二区三区观看体验| 久久成人免费网站| 欧美国产丝袜视频| 色国产综合视频| 免费久久精品视频| 中文字幕免费一区| 在线视频一区二区三| 日本美女一区二区三区视频| 久久亚洲二区三区| av色综合久久天堂av综合| 亚洲成a人v欧美综合天堂| 欧美电视剧在线观看完整版| 国产成人午夜精品影院观看视频 | 久久久久久久久久电影| 豆国产96在线|亚洲| 悠悠色在线精品| 日韩精品一区二区三区视频在线观看| 国产成人免费9x9x人网站视频| 国产精品久久久久久久浪潮网站 | 亚洲超碰97人人做人人爱| 精品久久久久av影院| caoporm超碰国产精品| 视频一区二区三区在线| 久久久久久97三级| 欧美日韩精品久久久| 国产一区 二区 三区一级| 一区二区三区四区亚洲| 欧美sm美女调教| 91国在线观看| 国产精品影视网| 国产精品资源网| 亚洲一区二区综合| 欧美经典三级视频一区二区三区| 欧美日韩中文一区| 成人黄色小视频| 久99久精品视频免费观看| 亚洲精品视频一区| 国产日产欧美一区二区视频| 欧美精品第1页| 99re这里都是精品| 国产精品1区2区| 日韩国产精品久久久久久亚洲| 欧美激情一区二区三区四区| 欧美人牲a欧美精品| 色综合天天综合网国产成人综合天| 麻豆免费精品视频| 亚洲成a人v欧美综合天堂 | 亚洲欧洲日韩女同| 久久先锋影音av鲁色资源| 欧美高清性hdvideosex| 99久久精品国产一区二区三区| 国内外成人在线视频| 亚洲线精品一区二区三区 | 久久久久久久久一| 日韩一级免费观看| 欧美日韩一区二区电影| 色婷婷av久久久久久久| 成人一二三区视频| 国产成人亚洲综合色影视| 精品一区二区在线看| 奇米亚洲午夜久久精品| 日韩精品亚洲一区| 日韩精品成人一区二区三区| 亚洲激情欧美激情| 一个色综合av| 亚洲一区二区三区免费视频| 亚洲精品视频在线看| 亚洲免费观看高清完整版在线| 国产精品第五页| 国产精品青草综合久久久久99| 国产亚洲成年网址在线观看| 精品国产一区二区亚洲人成毛片| 日韩一级精品视频在线观看| 欧美一区二区三区四区在线观看| 91精品国产全国免费观看| 欧美一级一级性生活免费录像| 欧美一区二区三区色| 日韩欧美精品在线视频| 亚洲精品在线观看视频| 久久日韩粉嫩一区二区三区| 国产日韩欧美精品综合| 国产精品嫩草久久久久| 亚洲人一二三区| 亚洲精品欧美激情| 五月激情六月综合| 久久aⅴ国产欧美74aaa| 国产福利一区在线| 97精品视频在线观看自产线路二| 99re成人精品视频| 欧美日韩高清在线| 欧美成人精品1314www| www久久久久| 亚洲色图在线播放| 日韩精品每日更新| 国内久久精品视频| 99精品视频在线观看| 欧美精品久久一区| 久久久99精品免费观看| 亚洲精品乱码久久久久久久久| 亚洲成人先锋电影| 国产精品一区二区免费不卡| 91在线无精精品入口| 欧美人牲a欧美精品| 久久午夜老司机| 亚洲精品写真福利| 美女一区二区三区在线观看| 成人综合婷婷国产精品久久| 一本色道久久综合亚洲aⅴ蜜桃| 6080日韩午夜伦伦午夜伦| 国产欧美日韩视频在线观看| 亚洲制服丝袜一区| 国产精品一品视频| 欧美日韩国产a| 国产精品日韩精品欧美在线| 肉肉av福利一精品导航| 成人福利视频网站| 日韩女优视频免费观看| 亚洲激情中文1区| 国产精品中文字幕日韩精品 | 国产成人精品网址| 欧美日韩一区二区三区四区| 久久久精品欧美丰满| 亚洲国产精品久久艾草纯爱| 国产毛片一区二区| 欧美高清性hdvideosex| 成人欧美一区二区三区视频网页| 日本视频中文字幕一区二区三区| youjizz久久| 久久亚洲一级片| 午夜在线成人av| 91在线视频官网| 久久天天做天天爱综合色| 亚洲成a人v欧美综合天堂| eeuss鲁片一区二区三区在线观看| 日韩视频一区在线观看| 亚洲美腿欧美偷拍| 成人免费福利片| 久久久综合精品| 久久国产精品第一页| 51精品秘密在线观看| 亚洲永久精品国产| 99视频有精品| 亚洲国产精品精华液ab| 久久成人免费网| 日韩一区二区电影在线| 午夜精品福利一区二区三区av| 91在线精品秘密一区二区| 欧美国产日韩精品免费观看| 另类欧美日韩国产在线| 欧美日韩高清一区二区| 亚洲国产美女搞黄色| 欧美亚日韩国产aⅴ精品中极品| 国产精品久久久久影院老司| 国产精品99久| 久久精品人人做人人综合| 国产一区二区精品在线观看| 日韩欧美亚洲国产另类| 久久精品99国产国产精| 欧美一区二区二区| 日韩主播视频在线| 91精品免费观看| 日本vs亚洲vs韩国一区三区二区 | 日韩免费性生活视频播放| 免费成人av在线播放| 欧美一区二区久久| 久久国产婷婷国产香蕉| 日韩欧美国产wwwww| 精品亚洲免费视频| 久久人人97超碰com| 风间由美性色一区二区三区| 亚洲国产高清在线| 97久久精品人人做人人爽50路| 亚洲欧洲无码一区二区三区| 91视频com| 亚洲mv大片欧洲mv大片精品| 欧美日韩精品福利| 美腿丝袜亚洲色图| 国产情人综合久久777777| 成人黄色a**站在线观看| 亚洲人123区| 91麻豆精品国产综合久久久久久| 日韩va亚洲va欧美va久久| 欧美大胆一级视频| 国产大片一区二区| 亚洲精品一二三| 6080日韩午夜伦伦午夜伦| 国产一区二区剧情av在线| 亚洲欧洲日韩综合一区二区| 欧美性欧美巨大黑白大战| 青青草国产成人av片免费 | 国产精品素人一区二区| 日本韩国欧美在线| 久久精品久久综合| 中文字幕一区二区视频| 欧美精品精品一区| 成人h版在线观看|