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

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

?? vec_gf2.h

?? 大數(shù)運算類
?? H
字號:

#ifndef NTL_vec_GF2__H
#define NTL_vec_GF2__H

#include <NTL/WordVector.h>
#include <NTL/GF2.h>

NTL_OPEN_NNS

class vec_GF2;

class subscript_GF2 {
public:
   vec_GF2& v;
   long i;

   subscript_GF2(vec_GF2& vv, long ii) : v(vv), i(ii) { }

   inline const subscript_GF2& operator=(const subscript_GF2&) const;
   inline const subscript_GF2& operator=(GF2) const;
   inline const subscript_GF2& operator=(long) const;

   inline operator GF2() const;
};

class const_subscript_GF2 {
public:
   const vec_GF2& v;
   long i;

   const_subscript_GF2(const vec_GF2& vv, long ii) : v(vv), i(ii) { }

   inline operator GF2() const;

private:
   void operator=(const const_subscript_GF2&); // disabled

};
   

class vec_GF2 {

public:

// these should be private, but they are not

   WordVector rep;

   long _len;  // length (in bits)
   long _maxlen;  // (MaxLength << 1) | (fixed)

   // invariants: rep.length() "tracks" length() ( = _len)
   //             All bits in positions >= length are zero.

   // Note:       rep.MaxLength() may exceed the value
   //             indicated by MaxLength().
   

//the following are "really" public


   vec_GF2() : _len(0), _maxlen(0) {}
   vec_GF2(INIT_SIZE_TYPE, long n) : _len(0), _maxlen(0) { SetLength(n); }
   vec_GF2(const vec_GF2& a) : _len(0), _maxlen(0) { *this = a; }

   vec_GF2& operator=(const vec_GF2& a);

   ~vec_GF2() {}

   void kill();

   void SetLength(long n);
   void SetMaxLength(long n);
   void FixLength(long n);

   long length() const { return _len; }
   long MaxLength() const { return _maxlen >> 1; }  
   long allocated() const { return rep.MaxLength() * NTL_BITS_PER_LONG; }
   long fixed() const { return _maxlen & 1; }


   vec_GF2(vec_GF2& x, INIT_TRANS_TYPE) : 
      rep(x.rep, INIT_TRANS), _len(x._len), _maxlen(x._maxlen) { }

   GF2 get(long i) const;
   void put(long i, GF2 a);
   void put(long i, long a) { put(i, to_GF2(a)); }

   subscript_GF2 operator[](long i) 
      { return subscript_GF2(*this, i); }

   subscript_GF2 operator()(long i) 
      { return subscript_GF2(*this, i-1); }

   const_subscript_GF2 operator[](long i) const 
      { return const_subscript_GF2(*this, i); }

   const_subscript_GF2 operator()(long i) const 
      { return const_subscript_GF2(*this, i-1); }

};

inline subscript_GF2::operator GF2() const
{
   return v.get(i);
}

inline const_subscript_GF2::operator GF2() const
{
   return v.get(i);
}

inline const subscript_GF2& 
   subscript_GF2::operator=(const subscript_GF2& a) const
   { v.put(i, a.v.get(a.i));  return *this; }

inline const subscript_GF2& 
   subscript_GF2::operator=(GF2 a) const
   { v.put(i, a);  return *this; }

inline const subscript_GF2& 
   subscript_GF2::operator=(long a) const
   { v.put(i, a);  return *this; }

inline const subscript_GF2& operator+=(const subscript_GF2& x, GF2 b)
   { x = x + b; return x; }  

inline const subscript_GF2& operator+=(const subscript_GF2& x, long b)
   { x = x + b; return x; }  

inline const subscript_GF2& operator-=(const subscript_GF2& x, GF2 b)
   { x = x - b; return x; }  

inline const subscript_GF2& operator-=(const subscript_GF2& x, long b)
   { x = x - b; return x; }  

inline const subscript_GF2& operator*=(const subscript_GF2& x, GF2 b)
   { x = x * b; return x; }  

inline const subscript_GF2& operator*=(const subscript_GF2& x, long b)
   { x = x * b; return x; }  

inline const subscript_GF2& operator/=(const subscript_GF2& x, GF2 b)
   { x = x / b; return x; }  

inline const subscript_GF2& operator/=(const subscript_GF2& x, long b)
   { x = x / b; return x; }  

inline const subscript_GF2& operator++(const subscript_GF2& x) 
   { x = x + 1; return x; }

inline void operator++(const subscript_GF2& x, int) 
   { x = x + 1; }

inline const subscript_GF2& operator--(const subscript_GF2& x) 
   { x = x - 1; return x; }

inline void operator--(const subscript_GF2& x, int) 
   { x = x - 1; }

void swap(vec_GF2& x, vec_GF2& y);
void append(vec_GF2& v, GF2 a);
void append(vec_GF2& v, const vec_GF2& a);

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

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

void shift(vec_GF2& x, const vec_GF2& a, long n);
// x = a shifted n places, i.e., if l = a.length(),
//    x.length() = l, x[i] = a[i-n] for 0 <= i-n < l,
//    and x[i] = 0 for all other i such that 0 <= i < l.

inline vec_GF2 shift(const vec_GF2& a, long n)
   { vec_GF2 x; shift(x, a, n); NTL_OPT_RETURN(vec_GF2, x); }

void reverse(vec_GF2& x, const vec_GF2& a);

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

void random(vec_GF2& x, long n);
inline vec_GF2 random_vec_GF2(long n)
   { vec_GF2 x; random(x, n); NTL_OPT_RETURN(vec_GF2, x); }

long weight(const vec_GF2& a);

void mul(vec_GF2& x, const vec_GF2& a, GF2 b);
inline void mul(vec_GF2& x, GF2 a, const vec_GF2& b)
   { mul(x, b, a); }

inline void mul(vec_GF2& x, const vec_GF2& a, long b)
   { mul(x, a, to_GF2(b)); }
inline void mul(vec_GF2& x, long a, const vec_GF2& b)
   { mul(x, b, a); }

void add(vec_GF2& x, const vec_GF2& a, const vec_GF2& b);

inline void sub(vec_GF2& x, const vec_GF2& a, const vec_GF2& b)
   { add(x, a, b); }

void clear(vec_GF2& x);

inline void negate(vec_GF2& x, const vec_GF2& a)
   { x = a; }

inline void InnerProduct(GF2& x, const vec_GF2& a, const vec_GF2& b)
   { x = to_GF2(InnerProduct(a.rep, b.rep)); }

long IsZero(const vec_GF2& a);

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

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

inline vec_GF2 operator-(const vec_GF2& a)
   { return a; }

inline vec_GF2 operator*(const vec_GF2& a, GF2 b)
   { vec_GF2 x; mul(x, a, b); NTL_OPT_RETURN(vec_GF2, x); }

inline vec_GF2 operator*(const vec_GF2& a, long b)
   { vec_GF2 x; mul(x, a, b); NTL_OPT_RETURN(vec_GF2, x); }

inline vec_GF2 operator*(GF2 a, const vec_GF2& b)
   { vec_GF2 x; mul(x, a, b); NTL_OPT_RETURN(vec_GF2, x); }

inline vec_GF2 operator*(long a, const vec_GF2& b)
   { vec_GF2 x; mul(x, a, b); NTL_OPT_RETURN(vec_GF2, x); }


inline GF2 operator*(const vec_GF2& a, const vec_GF2& b)
   { return to_GF2(InnerProduct(a.rep, b.rep)); }

// assignment operator notation:

inline vec_GF2& operator+=(vec_GF2& x, const vec_GF2& a)
{ 
   add(x, x, a);
   return x;
}

inline vec_GF2& operator-=(vec_GF2& x, const vec_GF2& a)
{ 
   sub(x, x, a);
   return x;
}

inline vec_GF2& operator*=(vec_GF2& x, GF2 a)
{ 
   mul(x, x, a);
   return x;
}

inline vec_GF2& operator*=(vec_GF2& x, long a)
{ 
   mul(x, x, a);
   return x;
}

void VectorCopy(vec_GF2& x, const vec_GF2& a, long n);
inline vec_GF2 VectorCopy(const vec_GF2& a, long n)
   { vec_GF2 x; VectorCopy(x, a, n); NTL_OPT_RETURN(vec_GF2, x); }

NTL_CLOSE_NNS


#endif


?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩中文字幕av电影| 91啪九色porn原创视频在线观看| 国产精品青草久久| 日韩久久久精品| 欧美精三区欧美精三区| 波多野结衣视频一区| 国产精品中文字幕一区二区三区| 日韩精品色哟哟| 亚洲一二三专区| 亚洲乱码国产乱码精品精的特点 | 亚洲精品一区二区三区福利| 国产不卡一区视频| 亚洲国产精品影院| 国产三级欧美三级日产三级99| 日韩天堂在线观看| 538prom精品视频线放| 成人99免费视频| 成人综合婷婷国产精品久久免费| 日韩专区中文字幕一区二区| 亚洲超丰满肉感bbw| 亚洲一二三四在线观看| 久久久午夜精品| 久久久www成人免费无遮挡大片| 精品少妇一区二区三区在线播放 | 日本亚洲电影天堂| 亚洲一区成人在线| 亚洲成精国产精品女| 亚洲高清中文字幕| 午夜精品福利一区二区蜜股av| 亚洲国产视频一区| 国产精品天天看| 日韩亚洲欧美在线| 日韩亚洲电影在线| 欧美成人激情免费网| 久久蜜桃av一区二区天堂 | 91国内精品野花午夜精品| 色综合欧美在线| 欧美系列一区二区| 91.麻豆视频| 欧美α欧美αv大片| 久久久www成人免费无遮挡大片| 国产欧美日韩麻豆91| 国产精品成人网| 亚洲综合成人网| 三级影片在线观看欧美日韩一区二区| 日本欧美一区二区三区乱码| 蜜桃视频在线观看一区| 人人超碰91尤物精品国产| 婷婷久久综合九色综合绿巨人| 日本中文字幕不卡| 精品在线亚洲视频| 韩国v欧美v日本v亚洲v| zzijzzij亚洲日本少妇熟睡| 91豆麻精品91久久久久久| 91精品福利视频| 欧美性色欧美a在线播放| 日韩欧美国产麻豆| 国产精品每日更新在线播放网址| 一区二区三区.www| 奇米影视一区二区三区| 成人久久18免费网站麻豆 | 精品国产123| 欧美国产日韩亚洲一区| 国产精品久久久久aaaa樱花| 中文字幕成人av| 午夜免费久久看| 国产精品一区二区在线观看网站| 91在线视频免费观看| 欧美精品一二三| 国产精品丝袜一区| 日本中文字幕一区| 99久久夜色精品国产网站| 7777精品伊人久久久大香线蕉最新版| 久久蜜臀精品av| 亚洲成人tv网| av在线不卡免费看| 精品国产乱码久久久久久影片| 亚洲天堂网中文字| 亚洲精选视频免费看| 日本欧美一区二区| 色综合欧美在线| 精品国产91乱码一区二区三区| 亚洲一区二区三区精品在线| 国产中文一区二区三区| 99精品国产视频| 欧美精品一区二区高清在线观看| 国产精品人成在线观看免费| 日本亚洲三级在线| a级精品国产片在线观看| 91麻豆精品91久久久久久清纯| 国产精品久久久久久久久免费樱桃| 免费观看久久久4p| 91行情网站电视在线观看高清版| 欧美国产精品一区二区| 久久精品国产免费看久久精品| 91免费看视频| 久久先锋影音av| 麻豆一区二区三区| 欧美精品99久久久**| 亚洲一区二区三区爽爽爽爽爽| 北条麻妃一区二区三区| 国产情人综合久久777777| 亚洲一本大道在线| 日本va欧美va瓶| 国产91精品一区二区麻豆网站| 日韩欧美精品在线视频| 日韩黄色免费电影| 欧美日韩精品欧美日韩精品| 一区二区三区四区国产精品| 成人av网站在线观看免费| 久久综合九色综合欧美就去吻| 亚洲天堂久久久久久久| 99re这里都是精品| 精品国产百合女同互慰| 青青国产91久久久久久| 欧美亚洲综合色| 亚洲一区av在线| 欧美图片一区二区三区| 亚洲欧美中日韩| 国产精品综合二区| 久久综合久久99| 国产成人综合亚洲91猫咪| 久久综合久久久久88| 国产精品综合一区二区三区| 久久久久国产免费免费| 国产精品一区二区三区99| 国产色婷婷亚洲99精品小说| 国产精品99久久久久久久女警| 久久日韩精品一区二区五区| 久久aⅴ国产欧美74aaa| 色综合久久久久综合体| 久久尤物电影视频在线观看| 麻豆精品在线看| 久久久久国产精品免费免费搜索| 懂色av噜噜一区二区三区av| 高潮精品一区videoshd| 国产精品美女久久久久aⅴ| 色婷婷一区二区三区四区| 一区二区日韩电影| 欧美日韩一区 二区 三区 久久精品| 久久婷婷色综合| 日韩精品一级中文字幕精品视频免费观看 | 久久综合九色欧美综合狠狠| 国产在线精品一区二区三区不卡| 久久久久久久精| 国产麻豆精品theporn| 国产精品看片你懂得| 国产一区二三区好的| 中文一区一区三区高中清不卡| 91蜜桃在线观看| 亚洲国产色一区| 精品国产乱码91久久久久久网站| 国产不卡免费视频| 一区2区3区在线看| 日韩三级视频在线观看| 日日摸夜夜添夜夜添国产精品| 五月天亚洲精品| 欧美麻豆精品久久久久久| 国产精品综合久久| 亚洲一区二区三区免费视频| 国产丝袜美腿一区二区三区| 欧美福利电影网| 99精品久久99久久久久| 国产一区二区三区香蕉| 一级特黄大欧美久久久| 欧美极品另类videosde| 91精品国产综合久久香蕉的特点| 成人黄色综合网站| 蜜桃av噜噜一区| 亚洲一区二区三区四区在线观看| 欧美激情在线看| 日韩欧美中文字幕公布| 欧美亚男人的天堂| 成人av在线资源网站| 精品午夜久久福利影院 | 成人免费精品视频| 另类小说综合欧美亚洲| 亚洲第一福利视频在线| 亚洲视频在线一区二区| 国产欧美视频一区二区三区| 欧美大胆人体bbbb| 91精品国产福利在线观看| 日本道在线观看一区二区| 国产不卡在线播放| 国产剧情一区二区| 久久99国产精品免费| 日韩精品一区第一页| 亚洲午夜久久久久久久久久久| 亚洲欧洲在线观看av| 国产欧美va欧美不卡在线| 精品日韩av一区二区| 欧美一区午夜精品| 这里是久久伊人| 欧美精选午夜久久久乱码6080| 欧美性猛交xxxx乱大交退制版| 91色视频在线| 91捆绑美女网站| 99精品国产热久久91蜜凸| 波多野结衣一区二区三区| 成年人午夜久久久|