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

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

?? zchaff_dbase.cpp

?? 這是一種非常有用的SAT解析器
?? CPP
?? 第 1 頁 / 共 2 頁
字號(hào):
inline double CDatabase::lit_pool_utilization(void) {    // minus num_clauses() is because of spacing (i.e. clause indices)  return (double)num_literals() / ((double) (lit_pool_size() - num_clauses())) ;}inline CLitPoolElement & CDatabase::lit_pool(int i) {  return _lit_pool_start[i];}void CDatabase::compact_lit_pool(void) {  unsigned i, sz;  int new_index = 1;  // first do the compaction for the lit pool  for (i = 1, sz = lit_pool_size(); i < sz;  ++i) {    // begin with 1 because 0 position is always 0    if (!lit_pool(i).is_literal() && !lit_pool(i-1).is_literal()) {      continue;    } else {      lit_pool(new_index) = lit_pool(i);      ++new_index;    }  }  _lit_pool_finish = lit_pool_begin() + new_index;  // update all the pointers to the literals;  // 1. clean up the watched pointers from variables  for (i = 1, sz = variables()->size(); i < sz;  ++i) {    variable(i).watched(0).clear();    variable(i).watched(1).clear();  }  for (i = 1, sz = lit_pool_size(); i < sz;  ++i) {    CLitPoolElement & lit = lit_pool(i);    // 2. reinsert the watched pointers    if (lit.is_literal()) {      if (lit.is_watched()) {         int var_idx = lit.var_index();         int sign = lit.var_sign();         variable(var_idx).watched(sign).push_back(& lit_pool(i));       }    } else {  // lit is not literal    // 3. update the clauses' first literal pointer      int cls_idx = lit.get_clause_index();      clause(cls_idx).first_lit() = &lit_pool(i) - clause(cls_idx).num_lits();    }  }  ++_stats.num_compact;}bool CDatabase::enlarge_lit_pool(void) {  // will return true if successful, otherwise false.  unsigned i, sz;  // if memory efficiency < 2/3, we do a compaction  if (lit_pool_utilization() < 0.67) {    compact_lit_pool();    return true;  }  // otherwise we have to enlarge it.  // first, check if memory is running out  int current_mem = estimate_mem_usage();  float grow_ratio = 1;  if (current_mem < _params.mem_limit / 4)    grow_ratio = 2;  else if (current_mem < _params.mem_limit /2 )    grow_ratio = 1.5;  else if (current_mem < _params.mem_limit * 0.8)    grow_ratio = 1.2;  if (grow_ratio < 1.2) {    if (lit_pool_utilization() < 0.9) {  // still has some garbage      compact_lit_pool();      return true;    }    else      return false;  }  // second, make room for new lit pool.  CLitPoolElement * old_start = _lit_pool_start;  CLitPoolElement * old_finish = _lit_pool_finish;  int old_size = _lit_pool_end_storage - _lit_pool_start;  int new_size = (int)(old_size * grow_ratio);  _lit_pool_start = (CLitPoolElement *) realloc(_lit_pool_start,                                                sizeof(CLitPoolElement) *                                                new_size);  _lit_pool_finish = _lit_pool_start + (old_finish - old_start);  _lit_pool_end_storage = _lit_pool_start + new_size;  // update all the pointers  int displacement = _lit_pool_start - old_start;  for (i = 0; i < clauses()->size(); ++i) {    if (clause(i).status() != DELETED_CL)      clause(i).first_lit() += displacement;  }  for (i = 0, sz = variables()->size(); i < sz ;  ++i) {    CVariable & v = variable(i);    for (int j = 0; j < 2 ; ++j) {      int k, sz1;      vector<CLitPoolElement *> & watched = v.watched(j);      for (k = 0, sz1 = watched.size(); k < sz1 ; ++k) {        watched[k] += displacement;      }    }  }  ++_stats.num_enlarge;  return true;}ClauseIdx CDatabase::get_free_clause_idx(void) {  ClauseIdx new_cl;  new_cl = _clauses.size();  _clauses.resize(new_cl + 1);  clause(new_cl).set_id(_stats.num_added_clauses);  return new_cl;}ClauseIdx CDatabase::add_clause(int * lits, int n_lits, int gflag) {  int new_cl;  // a. do we need to enlarge lits pool?  while (lit_pool_free_space() <= n_lits + 1) {    if (enlarge_lit_pool() == false)      return -1;  // mem out, can't enlarge lit pool, because      // ClauseIdx can't be -1, so it shows error.  }  // b. get a free cl index;  new_cl = get_free_clause_idx();  // c. add the clause lits to lits pool  CClause & cl = clause(new_cl);  cl.init(lit_pool_end(), n_lits, gflag);  lit_pool_incr_size(n_lits + 1);  if (n_lits == 2) {    ++variable(lits[0]>>1).two_lits_count(lits[0] & 0x1);    ++variable(lits[1]>>1).two_lits_count(lits[1] & 0x1);  }  for (int i = 0; i < n_lits; ++i) {    int var_idx = lits[i] >> 1;    assert((unsigned)var_idx < variables()->size());    int var_sign = lits[i] & 0x1;    cl.literal(i).set(var_idx, var_sign);    ++variable(var_idx).lits_count(var_sign);#ifdef KEEP_LIT_CLAUSES    variable(var_idx).lit_clause(var_sign).push_back(new_cl);#endif  }  // the element after the last one is the spacing element  cl.literal(n_lits).set_clause_index(new_cl);  // d. set the watched pointers  if (cl.num_lits() > 1) {    // add the watched literal. note: watched literal must be the last free var    int max_idx = -1, max_dl = -1;    int i, sz = cl.num_lits();    // set the first watched literal    for (i = 0; i < sz; ++i) {      int v_idx = cl.literal(i).var_index();      int v_sign = cl.literal(i).var_sign();      CVariable & v = variable(v_idx);      if (literal_value(cl.literal(i)) != 0) {        v.watched(v_sign).push_back(&cl.literal(i));        cl.literal(i).set_watch(1);        break;      } else {        if (v.dlevel() > max_dl) {          max_dl = v.dlevel();          max_idx = i;        }      }    }    if (i >= sz) {  // no unassigned literal. so watch literal with max dlevel      int v_idx = cl.literal(max_idx).var_index();      int v_sign = cl.literal(max_idx).var_sign();      variable(v_idx).watched(v_sign).push_back(&cl.literal(max_idx));      cl.literal(max_idx).set_watch(1);    }    // set the second watched literal    max_idx = -1;    max_dl = -1;    for (i = sz-1; i >= 0; --i) {      if (cl.literal(i).is_watched())        continue;  // need to watch two different literals      int v_idx = cl.literal(i).var_index();      int v_sign = cl.literal(i).var_sign();      CVariable & v = variable(v_idx);      if (literal_value(cl.literal(i)) != 0) {        v.watched(v_sign).push_back(&cl.literal(i));        cl.literal(i).set_watch(-1);        break;      } else {        if (v.dlevel() > max_dl) {          max_dl = v.dlevel();          max_idx = i;        }      }    }    if (i < 0) {      int v_idx = cl.literal(max_idx).var_index();      int v_sign = cl.literal(max_idx).var_sign();      variable(v_idx).watched(v_sign).push_back(&cl.literal(max_idx));      cl.literal(max_idx).set_watch(-1);    }  }  // update some statistics  ++_stats.num_added_clauses;  _stats.num_added_literals += n_lits;  return new_cl;}void CDatabase::output_lit_pool_stats(void) {  cout << "Lit_Pool Used " << lit_pool_size() << " Free "       << lit_pool_free_space()       << " Total " << lit_pool_size() + lit_pool_free_space()       << " Num. Cl " << num_clauses() << " Num. Lit " << num_literals()       << " Efficiency " <<  lit_pool_utilization() << endl;}void CDatabase::detail_dump_cl(ClauseIdx cl_idx, ostream & os) {  os << "CL : " << cl_idx;  CClause & cl = clause(cl_idx);  if (cl.status() == DELETED_CL)    os << "\t\t\t======removed=====";  char value;  for (unsigned i = 0; i < cl.num_lits(); ++i) {    if (literal_value(cl.literal(i)) == 0)      value = '0';    else if (literal_value(cl.literal(i)) == 1)      value = '1';    else      value = 'X';    os << cl.literal(i) << "(" << value << "@"       << variable(cl.literal(i).var_index()).dlevel()<< ")  ";  }  os << endl;}void CDatabase::dump(ostream & os) {  unsigned i;  os << "Dump Database: " << endl;  for (i = 0; i < _clauses.size(); ++i)    detail_dump_cl(i);  for (i = 1; i < _variables.size(); ++i)    os << "VID " << i << ":\t" << variable(i);}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久国产精品露脸对白| 国产成人在线视频免费播放| 国产无人区一区二区三区| 91久久免费观看| 国产在线不卡一卡二卡三卡四卡| 亚洲女人的天堂| 国产日产欧产精品推荐色| 91精品国产高清一区二区三区蜜臀| 国产91清纯白嫩初高中在线观看| 蜜臀av一区二区在线观看| 亚洲精品成a人| 国产日产欧美一区二区三区| 日韩欧美国产综合在线一区二区三区 | 日韩精品一区二区三区视频播放| 色视频成人在线观看免| 国产成人高清在线| 久久精品国产第一区二区三区| 一级中文字幕一区二区| 中文字幕日韩一区| 国产精品美女久久久久久久久| 欧美大胆一级视频| 777欧美精品| 欧美老肥妇做.爰bbww视频| 91麻豆免费看| 99精品1区2区| kk眼镜猥琐国模调教系列一区二区 | av不卡免费电影| 国产69精品一区二区亚洲孕妇| 久久不见久久见免费视频1| 午夜精品在线视频一区| 亚洲成人动漫在线免费观看| 亚洲精品水蜜桃| 亚洲靠逼com| 亚洲精品免费播放| 一区二区日韩电影| 一区二区不卡在线视频 午夜欧美不卡在 | 亚洲欧美另类图片小说| 国产精品美女久久久久久| 亚洲国产经典视频| 国产精品亲子乱子伦xxxx裸| 国产清纯美女被跳蛋高潮一区二区久久w| 精品日韩av一区二区| 日韩欧美区一区二| 久久久午夜精品| 中文字幕高清一区| 18欧美乱大交hd1984| 亚洲男人天堂一区| 一片黄亚洲嫩模| 热久久国产精品| 国产综合一区二区| 丁香天五香天堂综合| 99re热视频精品| 欧美视频在线播放| 欧美一级生活片| 久久日一线二线三线suv| 国产午夜精品理论片a级大结局| 日本一区二区三区国色天香| 国产精品国产成人国产三级| 亚洲自拍另类综合| 蜜桃视频一区二区| 丰满白嫩尤物一区二区| 91极品视觉盛宴| 日韩三级在线观看| 国产欧美日韩精品一区| 亚洲综合清纯丝袜自拍| 蜜臀久久99精品久久久久宅男| 国产精品一区2区| 色一区在线观看| 日韩欧美色综合| 国产精品区一区二区三| 天天色图综合网| 国产在线精品一区二区三区不卡 | 欧美日韩二区三区| 久久免费视频色| 亚洲裸体xxx| 久久国产精品第一页| 91啪亚洲精品| 精品久久国产老人久久综合| 中文字幕一区二区三中文字幕| 婷婷成人激情在线网| 国产一区二区91| 欧美性大战久久久久久久| 欧美xxx久久| 亚洲中国最大av网站| 国产乱码精品一品二品| 欧美综合一区二区| 久久综合成人精品亚洲另类欧美| 亚洲综合在线五月| 国产在线视频不卡二| 欧日韩精品视频| 欧美国产精品一区二区三区| 日本美女一区二区三区视频| 91亚洲精品乱码久久久久久蜜桃| 欧美精品久久久久久久久老牛影院| 日本一区二区三区四区在线视频| 三级成人在线视频| 成人免费av资源| 精品久久人人做人人爰| 亚洲精品成人在线| 成人免费黄色在线| 精品粉嫩超白一线天av| 亚洲国产日产av| 不卡的av中国片| 日韩精品一区二区三区老鸭窝| 亚洲主播在线观看| 97成人超碰视| 精品国产免费人成在线观看| 日日摸夜夜添夜夜添国产精品| 99久久国产综合精品色伊 | 亚洲va在线va天堂| 97精品久久久午夜一区二区三区| 久久久精品中文字幕麻豆发布| 午夜精品久久久久久久| 色老头久久综合| 成人欧美一区二区三区| 国产伦精一区二区三区| 日韩一区二区在线免费观看| 丝袜亚洲另类欧美综合| 欧美日韩精品三区| 亚洲国产一区二区在线播放| 色老综合老女人久久久| 亚洲人成精品久久久久久| 国产不卡视频一区| 欧美激情在线一区二区三区| 国内精品久久久久影院一蜜桃| 欧美一区二区三区播放老司机| 亚洲高清免费观看| 欧美精品亚洲一区二区在线播放| 亚洲午夜在线观看视频在线| 欧日韩精品视频| 午夜电影久久久| 欧美狂野另类xxxxoooo| 日韩有码一区二区三区| 3751色影院一区二区三区| 日韩电影在线看| 精品人在线二区三区| 久久不见久久见免费视频1| 精品999久久久| 国产寡妇亲子伦一区二区| 久久久久亚洲蜜桃| 不卡视频免费播放| 一区二区视频在线| 欧美日韩情趣电影| 免费在线观看一区二区三区| 日韩精品一区二| 国产aⅴ精品一区二区三区色成熟| 国产精品私房写真福利视频| proumb性欧美在线观看| 一区二区三区免费在线观看| 欧美日韩国产精选| 免费人成精品欧美精品 | 亚洲一区在线观看免费观看电影高清| 91成人国产精品| 丝袜美腿高跟呻吟高潮一区| 欧美一区二区在线视频| 国产资源精品在线观看| 国产日韩一级二级三级| 色婷婷综合久久久久中文一区二区 | 精品国产乱码久久久久久1区2区 | 色综合久久久久网| 亚洲不卡av一区二区三区| 日韩欧美电影在线| 成人av资源在线观看| 午夜免费久久看| 久久噜噜亚洲综合| 91婷婷韩国欧美一区二区| 午夜av一区二区三区| 久久先锋影音av鲁色资源| 99精品黄色片免费大全| 视频一区二区国产| 中文成人综合网| 欧美日韩免费不卡视频一区二区三区| 精品午夜久久福利影院| 亚洲精品一二三四区| 精品久久免费看| 色悠久久久久综合欧美99| 日本网站在线观看一区二区三区| 国产亚洲综合性久久久影院| 在线观看亚洲a| 国产原创一区二区三区| 伊人夜夜躁av伊人久久| 久久亚洲综合色| 欧美日韩黄色影视| 国产精品 日产精品 欧美精品| 一区二区高清在线| 久久久精品2019中文字幕之3| 欧美最猛性xxxxx直播| 国产福利视频一区二区三区| 视频一区免费在线观看| 国产精品麻豆99久久久久久| 717成人午夜免费福利电影| 北条麻妃国产九九精品视频| 免费日本视频一区| 一区二区三区四区蜜桃| 国产亚洲女人久久久久毛片| 91精品国产手机| 欧美少妇xxx| 91在线视频在线| 国产精品一区二区三区四区| 日韩黄色免费电影|