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

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

?? nixvec.cc

?? it is very important
?? CC
字號:
// Support for NixVector routing// George F. Riley, Georgia Tech, Winter 2000#include <stdio.h>#include "nixvec.h"#ifndef TEST_NIXVEC// Constructor from existingNixVec::NixVec(NixVec* p) : m_used(0), m_alth(p->m_alth){  if (Lth() > NIX_BPW)    { // Need to allocate storage      m_pNV = new Nix_t[Lth() / NIX_BPW];      memcpy(m_pNV, p->m_pNV, Lth()/8);    }  else    { // Just use the pointer      m_pNV = p->m_pNV;    }}NixVec::~NixVec(){ // Destructor   if(0)printf("Hello from nixvec destructor\n");  if (Lth() > NIX_BPW) delete [] m_pNV;  // Delete the allocated memory}void NixVec::Add( NixPair_t p){ // Add some bits to the nix vectorNixl_t newused;Nix_t  newbits;Nixl_t newlth; if (p.second == 0) return; // Not really possible!#ifdef NEED_DEBUG // debug follows Nix_t db; if (Lth() == NIX_BPW)   db = (Nix_t)m_pNV; else   db = m_pNV[0]; db = ((db & 0xfffffff0) ^ 0x00038520); if (!db)   {     printf("Adding %ld lth %ld\n", p.first, p.second);     DBDump();   } // end debug#endif newused = m_used + p.second; if (newused > Lth())   { // Need more room     newlth = Lth() + NIX_BPW;     Nix_t* pNew = new Nix_t[newlth / NIX_BPW];     if (Lth() == NIX_BPW)       { // Old is not pointer, just transfer         pNew[0] = (Nix_t)m_pNV;       }     else       {         for (unsigned long k = 0; k < Lth() / NIX_BPW; k++)           pNew[k] = m_pNV[k];       }     pNew[newlth / NIX_BPW - 1] = 0;     if (Lth() != NIX_BPW)       delete [] m_pNV;     m_pNV = pNew;     if (m_used == Lth())       { // No overlap, just use the new entry         newbits = p.first << (NIX_BPW - m_used + (newlth - 32)  - p.second);         Nixl_t i = (m_used / NIX_BPW);         m_pNV[i] |= newbits;       }     else       {         // Fill in remaining of previous word         Nixl_t left = Lth() - m_used;         newbits = p.first >> (p.second - left);         Nixl_t i = (m_used / NIX_BPW);         m_pNV[i] |= newbits;         // And the next word         newbits = p.first << (NIX_BPW - (p.second - left));         i = (m_used / NIX_BPW) + 1;         m_pNV[i] |= newbits;       }     //     Lth() = newlth;   } else   {     newbits = p.first << (NIX_BPW - m_used + (Lth() - 32)  - p.second);     if (Lth() == NIX_BPW)       { // Not a pointer, just the vector         Nix_t n = (Nix_t)m_pNV;         n |= newbits;         m_pNV = (Nix_t*)n;       }     else       { // Pointer, find the correct index         Nixl_t i = (m_used / NIX_BPW);         m_pNV[i] |= newbits;       }   } m_used = newused; if (m_used > m_alth) m_alth = m_used;#ifdef NEED_DEBUG if (!db)   {     printf("Added  %ld lth %ld\n", p.first, p.second);     DBDump();   }#endif}Nix_t NixVec::Extract(Nixl_t n){ // Extract using built in "m_used"  return(Extract(n, &m_used));}Nix_t NixVec::Extract(Nixl_t n, Nixl_t* pUsed){ // Get the next "n" bits from the vecNixl_t used = *pUsed;Nixl_t word = used / NIX_BPW;Nixl_t bit  = used - (word * NIX_BPW);long  m     = 0x80000000; // n bit maskNix_t  w; if(0)printf("Extracting %ld bits, used %ld lth %ld alth %ld\n",         n, used, Lth(), m_alth);  if ((used + n) > m_alth) return(NIX_NONE); // Overflow  if ((bit + n) <= NIX_BPW)    { // Simple case      if (Lth() == NIX_BPW)        w = (long)m_pNV;      else        w = m_pNV[word];      m >>= (n-1); // n bit mask      Nix_t u = (Nix_t)m;      u >>= bit;   // position mask      w &= u;      // extract the bits      w >>= (NIX_BPW - bit - n);    }  else    { // spans a word      if (Lth() == NIX_BPW)        w = (long)m_pNV;      else        w = m_pNV[word];      Nixl_t t = NIX_BPW - bit; // Number bits in first word      m >>= (t-1); // n bit mask      Nix_t u = (Nix_t)m;      u >>= bit;   // position mask      w &= u;      t = n - t;   // number bits in second word      w <<= t;      m = 0x80000000; // n bit mask      m >>= (t-1);      w |= (m_pNV[word+1] >> (NIX_BPW - t));    }  used += n;  *pUsed = used; // Return advanced  return(w);}void NixVec::DBDump(){  printf("Lth %3ld ActualLth %3ld Used %3ld ", Lth(), ALth(), m_used);  if (Lth() == NIX_BPW)    { // print the lone value      printf("val[0] %08lx\n", (unsigned long)m_pNV);    }  else    {      printf("val[0] %08lx\n", m_pNV[0]);      for (unsigned long i = 1; i < Lth() / NIX_BPW; i++)        printf("                 val[%ld] %08lx\n", i, m_pNV[i]);    }}void NixVec::Reset(){  m_used = 0; // Reset to beginning}// Static functionsNixl_t NixVec::GetBitl( Nixl_t l){ // Find out how many bits needed  int h = 31; // highest bit number set  // Find a good starting point  if ((l & 0xFFFF0000) == 0)    {      if (l & 0xFFFFFF00 == 0)        {          h = 7;        }      else        {          h = 15;        }    }  while(h > 0)    {      Nixl_t m = 0x1L << h;      if (m & l)        { // Found highest bit          return(h+1);        }      h--;    }  return(1);}Nixl_t NixVec::Lth(){ // Compute the length in bits of maximum allocated size  if (m_alth == 0) return (NIX_BPW); // Empty vector, can use up to 32  return((((m_alth - 1) / NIX_BPW) + 1) * NIX_BPW);}#endif#ifdef TEST_NIXVECint main(){NixVec n;NixVec n1;NixVec n2;int    i;  // test the nixvector generator  for (i = 0; i < NIX_BPW-1; i++)    {      n.Add(NixPair_t(1, 1));    }   n.Add(NixPair_t(2, 2));  n.Add(NixPair_t(1, 1));  n.DBDump();  //  exit(1);  n.Reset();  for (i = 0; i < NIX_BPW; i++)    {      n.Add(NixPair_t(1, 1));      n.Add(NixPair_t(0, 1));      n.DBDump();    }   n.Reset();  for (i = 0; i < NIX_BPW*2; i++)    {      Nix_t v = n.Extract(1);      printf("V0 = %lx\n", v);    }  for (i = 0; i < 16; i++)    {      n1.Add(NixPair_t(i, 4));      n1.DBDump();    }  n1.Reset();  for (i = 0; i < 16; i++)    {      Nix_t v = n1.Extract(4);      printf("V1 = %lx\n", v);    }  for (i = 0; i < 8; i++)    {      n2.Add(NixPair_t(0xfe0 + i, 12));      n2.DBDump();    }  n2.Reset();  while(1)    {      Nix_t v = n2.Extract(12);      if (v == NIX_NONE) break;      printf("V2 = %lx\n", v);    }}#endif

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
99精品国产热久久91蜜凸| 色综合久久88色综合天天6| 国产高清在线精品| 色中色一区二区| 日韩一区二区在线看| 国产精品福利一区二区| 日本特黄久久久高潮| 99久久亚洲一区二区三区青草| 欧美精品一区二区三区蜜桃| 一区二区三区不卡视频在线观看| 久久国产夜色精品鲁鲁99| 色婷婷国产精品久久包臀| 26uuu欧美日本| 天堂成人国产精品一区| proumb性欧美在线观看| 精品裸体舞一区二区三区| 亚洲国产wwwccc36天堂| 成人午夜精品在线| 26uuu成人网一区二区三区| 亚洲电影你懂得| 色婷婷av一区二区| 中文字幕一区视频| 国产不卡一区视频| 久久久久久久性| 久久福利资源站| 日韩一区二区三区在线| 午夜影院在线观看欧美| 欧美中文一区二区三区| 亚洲欧美成aⅴ人在线观看| 国产高清精品久久久久| 欧美电影免费观看高清完整版在线观看 | 91精品国产色综合久久久蜜香臀| 亚洲日本护士毛茸茸| 成人av资源站| 国产精品电影院| 91丨九色丨国产丨porny| 国产三级精品三级| 粉嫩av一区二区三区在线播放| 精品卡一卡二卡三卡四在线| 热久久一区二区| 日韩美女一区二区三区| 久久精工是国产品牌吗| 亚洲伦在线观看| 99久久伊人精品| 亚洲欧洲制服丝袜| 91福利在线免费观看| 亚洲午夜视频在线观看| 欧美日韩中文字幕一区| 青草国产精品久久久久久| 日韩三级视频在线观看| 国内精品在线播放| 国产精品午夜春色av| av午夜一区麻豆| 亚洲美女在线国产| 欧美精品三级在线观看| 久久国产综合精品| 国产精品人人做人人爽人人添| 成人av在线播放网站| 亚洲精品ww久久久久久p站| 精品视频全国免费看| 久久99精品久久久| 中文字幕精品综合| 欧美日韩一区二区不卡| 久久99热99| 中文字幕一区日韩精品欧美| 欧美午夜电影网| 九色porny丨国产精品| 中文字幕 久热精品 视频在线| 91欧美激情一区二区三区成人| 亚洲国产精品一区二区www在线| 日韩区在线观看| 99综合影院在线| 日韩在线一区二区三区| 国产区在线观看成人精品| 一本色道亚洲精品aⅴ| 免费观看在线色综合| 国产精品系列在线| 欧美一区二区三区白人| 不卡免费追剧大全电视剧网站| 亚洲1区2区3区视频| 国产亚洲一区二区三区四区 | 午夜天堂影视香蕉久久| 久久色中文字幕| 欧美性大战久久久| 国产成人综合亚洲网站| 亚洲一区二区三区四区不卡| 国产日韩欧美精品综合| 欧美午夜精品理论片a级按摩| 国产大陆a不卡| 奇米777欧美一区二区| 亚洲欧洲日韩一区二区三区| 日韩一区二区三区观看| 日本大香伊一区二区三区| 国产精品88av| 日本sm残虐另类| 亚洲国产一二三| 国产日本一区二区| 久久综合九色综合久久久精品综合 | 亚洲一卡二卡三卡四卡无卡久久| 久久久精品一品道一区| 日韩视频一区二区三区 | 国产盗摄视频一区二区三区| 三级影片在线观看欧美日韩一区二区| 国产精品免费视频一区| 久久免费的精品国产v∧| 51精品国自产在线| 欧美日韩高清一区二区| 一本色道久久综合狠狠躁的推荐| 国产成人免费网站| 国内精品写真在线观看| 久久国产综合精品| 久久电影国产免费久久电影| 日韩av在线播放中文字幕| 午夜一区二区三区视频| 亚洲午夜电影在线| 亚洲国产aⅴ成人精品无吗| 亚洲精选在线视频| 亚洲欧美日韩精品久久久久| ●精品国产综合乱码久久久久| 中文字幕精品综合| 国产精品伦一区| 中文字幕一区二区三区色视频| 国产精品久久久久一区二区三区 | 久久99久久精品欧美| 久久精品噜噜噜成人av农村| 久久国产精品99久久久久久老狼 | 国产欧美精品在线观看| www亚洲一区| 国产亚洲精品7777| 国产欧美日韩在线视频| 欧美韩日一区二区三区| 亚洲欧洲日本在线| 一区二区不卡在线播放 | 国产偷国产偷精品高清尤物 | 一级日本不卡的影视| 亚洲综合视频网| 五月天激情综合网| 美脚の诱脚舐め脚责91| 国产在线视视频有精品| av一区二区三区| 欧美精品v国产精品v日韩精品| 91精品国产综合久久精品app| 精品美女一区二区三区| 国产精品网站在线播放| 亚洲午夜免费电影| 久久精品国产久精国产| 成人激情开心网| 欧美理论在线播放| 久久久久久99久久久精品网站| 亚洲欧洲美洲综合色网| 亚洲在线视频网站| 极品尤物av久久免费看| 99re热视频这里只精品| 欧美一级欧美三级在线观看| 久久精品免费在线观看| 一区二区三区波多野结衣在线观看| 日韩在线一区二区| youjizz国产精品| 欧美日韩1区2区| 欧美国产日本视频| 天天色天天爱天天射综合| 国产99精品视频| 91.xcao| 亚洲天堂免费看| 精品在线播放免费| 欧美亚洲愉拍一区二区| 久久久99久久| 婷婷中文字幕综合| 91尤物视频在线观看| 日韩免费电影一区| 亚洲一区二区四区蜜桃| 国产成人综合网站| 欧美一级黄色大片| 亚洲一线二线三线久久久| 国产精品自在欧美一区| 欧美剧在线免费观看网站 | 99精品久久只有精品| 日韩精品在线一区二区| 亚洲一区二区三区三| 国产99久久久国产精品免费看| 日韩免费高清av| 婷婷夜色潮精品综合在线| 99精品热视频| 国产精品美女久久久久av爽李琼| 久久国产精品区| 日韩一区二区三区视频| 亚洲成人久久影院| 欧美中文字幕一区二区三区亚洲| 国产精品久久网站| 国产高清视频一区| 国产欧美日韩综合精品一区二区| 久久se精品一区二区| 日韩视频一区二区三区| 日韩中文欧美在线| 91精品国产综合久久婷婷香蕉| 亚洲自拍偷拍九九九| 在线亚洲一区观看| 亚洲午夜在线视频| 精品视频资源站| 视频在线观看国产精品|