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

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

?? zchaff_dbase.cpp

?? 這是一種非常有用的SAT解析器
?? CPP
?? 第 1 頁 / 共 2 頁
字號:
// *********************************************************************// Copyright 2000-2004, Princeton University.  All rights reserved.// By using this software the USER indicates that he or she has read,// understood and will comply with the following://// --- Princeton University hereby grants USER nonexclusive permission// to use, copy and/or modify this software for internal, noncommercial,// research purposes only. Any distribution, including commercial sale// or license, of this software, copies of the software, its associated// documentation and/or modifications of either is strictly prohibited// without the prior consent of Princeton University.  Title to copyright// to this software and its associated documentation shall at all times// remain with Princeton University.  Appropriate copyright notice shall// be placed on all software copies, and a complete copy of this notice// shall be included in all copies of the associated documentation.// No right is  granted to use in advertising, publicity or otherwise// any trademark,  service mark, or the name of Princeton University.////// --- This software and any associated documentation is provided "as is"//// PRINCETON UNIVERSITY MAKES NO REPRESENTATIONS OR WARRANTIES, EXPRESS// OR IMPLIED, INCLUDING THOSE OF MERCHANTABILITY OR FITNESS FOR A// PARTICULAR PURPOSE, OR THAT  USE OF THE SOFTWARE, MODIFICATIONS, OR// ASSOCIATED DOCUMENTATION WILL NOT INFRINGE ANY PATENTS, COPYRIGHTS,// TRADEMARKS OR OTHER INTELLECTUAL PROPERTY RIGHTS OF A THIRD PARTY.//// Princeton University shall not be liable under any circumstances for// any direct, indirect, special, incidental, or consequential damages// with respect to any claim by USER or any third party on account of// or arising from the use, or inability to use, this software or its// associated documentation, even if Princeton University has been advised// of the possibility of those damages.// ********************************************************************/#include <cstdlib>#include <iostream>#include <vector>#include <set>using namespace std;#include "zchaff_dbase.h"CDatabase::CDatabase(void) {  _stats.mem_used_up                 = false;  _stats.init_num_clauses            = 0;  _stats.init_num_literals           = 0;  _stats.num_added_clauses           = 0;  _stats.num_added_literals          = 0;  _stats.num_deleted_clauses         = 0;  _stats.num_del_orig_cls            = 0;  _stats.num_deleted_literals        = 0;  _stats.num_enlarge                 = 0;  _stats.num_compact                 = 0;  _lit_pool_start = (CLitPoolElement *) malloc(sizeof(CLitPoolElement) *                                               STARTUP_LIT_POOL_SIZE);  _lit_pool_finish = _lit_pool_start;  _lit_pool_end_storage = _lit_pool_start + STARTUP_LIT_POOL_SIZE;  lit_pool_push_back(0);  // set the first element as a dummy element  _params.mem_limit = 1024 * 1024 * 1024;  // that's 1 G  variables()->resize(1);                  // var_id == 0 is never used.  _allocated_gid                    = 0;}CDatabase::~CDatabase(void) {  free(_lit_pool_start);}unsigned CDatabase::estimate_mem_usage(void) {  unsigned mem_lit_pool = sizeof(CLitPoolElement) * (lit_pool_size() +                                                     lit_pool_free_space());  unsigned mem_vars = sizeof(CVariable) * variables()->capacity();  unsigned mem_cls = sizeof(CClause) * clauses()->capacity();  unsigned mem_cls_queue = sizeof(int) * _unused_clause_idx.size();  unsigned mem_watched = 2 * num_clauses() * sizeof(CLitPoolElement *);  unsigned mem_lit_clauses = 0;#ifdef KEEP_LIT_CLAUSES  mem_lit_clauses = num_literals() * sizeof(ClauseIdx);#endif  return (mem_lit_pool + mem_vars + mem_cls +          mem_cls_queue + mem_watched + mem_lit_clauses);}unsigned CDatabase::mem_usage(void) {  int mem_lit_pool = (lit_pool_size() + lit_pool_free_space()) *                     sizeof(CLitPoolElement);  int mem_vars = sizeof(CVariable) * variables()->capacity();  int mem_cls = sizeof(CClause) * clauses()->capacity();  int mem_cls_queue = sizeof(int) * _unused_clause_idx.size();  int mem_watched = 0, mem_lit_clauses = 0;  for (unsigned i = 0, sz = variables()->size(); i < sz ;  ++i) {    CVariable & v = variable(i);    mem_watched        += v.watched(0).capacity() + v.watched(1).capacity();#ifdef KEEP_LIT_CLAUSES    mem_lit_clauses += v.lit_clause(0).capacity() + v.lit_clause(1).capacity();#endif  }  mem_watched *= sizeof(CLitPoolElement*);  mem_lit_clauses *= sizeof(ClauseIdx);  return (mem_lit_pool + mem_vars + mem_cls +          mem_cls_queue + mem_watched + mem_lit_clauses);}int CDatabase::alloc_gid(void) {  for (unsigned i = 1; i <= WORD_WIDTH; ++i) {    if (is_gid_allocated(i) == false) {      _allocated_gid |= (1 << (i-1));      return i;    }  }  warning(_POSITION_, "Not enough GID");  return VOLATILE_GID;}void CDatabase::free_gid(int gid) {  assert(gid > 0 && "Can't free volatile or permanent group");  assert(gid <= WORD_WIDTH && "gid > WORD_WIDTH?");  if (!is_gid_allocated(gid)) {    fatal(_POSITION_, "Can't free unallocated GID");  }  _allocated_gid &= (~(1<< (gid-1)));}bool CDatabase::is_gid_allocated(int gid) {  if (gid == VOLATILE_GID || gid == PERMANENT_GID)    return true;  assert(gid <= WORD_WIDTH && gid > 0);  if (_allocated_gid & (1 << (gid -1)))    return true;  return false;}int CDatabase::merge_clause_group(int g2, int g1) {  assert(g1 >0 && g2> 0 && "Can't merge with permanent or volatile group");  assert(g1 != g2);  assert(is_gid_allocated(g1) && is_gid_allocated(g2));  for (unsigned i = 0, sz = clauses()->size(); i < sz; ++i) {    if (clause(i).status() != DELETED_CL) {      if (clause(i).gid(g1) == true) {        clause(i).clear_gid(g1);        clause(i).set_gid(g2);      }    }  }  free_gid(g1);  return g2;}void CDatabase::mark_clause_deleted(CClause & cl) {  ++_stats.num_deleted_clauses;  _stats.num_deleted_literals += cl.num_lits();  CLAUSE_STATUS status = cl.status();  if (status == ORIGINAL_CL)     _stats.num_del_orig_cls++;  cl.set_status(DELETED_CL);  for (unsigned i = 0; i < cl.num_lits(); ++i) {    CLitPoolElement & l = cl.literal(i);    --variable(l.var_index()).lits_count(l.var_sign());    l.val() = 0;  }  _unused_clause_idx.insert(&cl - &(*clauses()->begin()));}bool CDatabase::is_conflicting(ClauseIdx cl) {  CLitPoolElement * lits = clause(cl).literals();  for (int i = 0, sz= clause(cl).num_lits(); i < sz;  ++i) {    if (literal_value(lits[i]) != 0)      return false;  }  return true;}bool CDatabase::is_satisfied(ClauseIdx cl) {  CLitPoolElement * lits = clause(cl).literals();  for (int i = 0, sz = clause(cl).num_lits(); i < sz; ++i) {    if (literal_value(lits[i]) == 1)      return true;  }  return false;}bool CDatabase::is_unit(ClauseIdx cl) {  int num_unassigned = 0;  CLitPoolElement * lits = clause(cl).literals();  for (unsigned i = 0, sz= clause(cl).num_lits(); i < sz;  ++i) {    int value = literal_value(lits[i]);    if (value == 1)      return false;    else if (value != 0)      ++num_unassigned;  }  return num_unassigned == 1;}int CDatabase::find_unit_literal(ClauseIdx cl) {  // will return 0 if not unit  int unit_lit = 0;  for (int i = 0, sz = clause(cl).num_lits(); i < sz;  ++i) {    int value = literal_value(clause(cl).literal(i));    if (value == 1)      return 0;    else if (value != 0) {      if (unit_lit == 0)        unit_lit = clause(cl).literals()[i].s_var();      else        return 0;    }  }  return unit_lit;}inline CLitPoolElement * CDatabase::lit_pool_begin(void) {  return _lit_pool_start;}inline CLitPoolElement * CDatabase::lit_pool_end(void) {  return _lit_pool_finish;}inline void CDatabase::lit_pool_incr_size(int size) {  _lit_pool_finish += size;  assert(_lit_pool_finish <= _lit_pool_end_storage);}inline void CDatabase::lit_pool_push_back(int value) {  assert(_lit_pool_finish <= _lit_pool_end_storage);  _lit_pool_finish->val() = value;  ++_lit_pool_finish;}inline int CDatabase::lit_pool_size(void) {  return _lit_pool_finish - _lit_pool_start;}inline int CDatabase::lit_pool_free_space(void) {  return _lit_pool_end_storage - _lit_pool_finish;}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲图片欧美一区| 丝袜亚洲另类欧美综合| 日韩三级在线免费观看| 91久久奴性调教| 成人午夜激情视频| 不卡的电视剧免费网站有什么| 国产99一区视频免费| 国产九九视频一区二区三区| 国产传媒一区在线| 国产精品 欧美精品| 国产成a人亚洲精| a美女胸又www黄视频久久| 99国产一区二区三精品乱码| 91在线精品一区二区三区| 92国产精品观看| 欧美曰成人黄网| 欧美日韩精品一二三区| 日韩三级中文字幕| 日本一区二区视频在线| 亚洲视频图片小说| 午夜伊人狠狠久久| 久国产精品韩国三级视频| 国产91精品一区二区麻豆亚洲| 9久草视频在线视频精品| 日本高清视频一区二区| 91精品国产综合久久久久久漫画 | 91精品1区2区| 日韩一区二区在线看| 中文在线免费一区三区高中清不卡| 一区在线中文字幕| 人人超碰91尤物精品国产| 国产高清一区日本| 欧美性受xxxx| 国产色爱av资源综合区| 午夜精品在线看| 成人国产精品视频| 欧美一区二区高清| 亚洲天堂久久久久久久| 蜜臀av亚洲一区中文字幕| av不卡免费在线观看| 欧美一级视频精品观看| 亚洲精品自拍动漫在线| 国内精品自线一区二区三区视频| 色综合夜色一区| 久久精品视频在线免费观看| 亚洲va欧美va人人爽午夜| 成人av在线网| 欧美变态tickling挠脚心| 亚洲精品福利视频网站| 国产精品影视在线| 欧美老肥妇做.爰bbww| 国产精品久久久久四虎| 国产一区二区三区四区五区美女| 欧美三级在线播放| 中文字幕在线一区| 国产精品亚洲专一区二区三区 | 亚洲激情图片一区| 高清成人免费视频| 久久久久久一级片| 亚洲第四色夜色| 91亚洲男人天堂| 久久精品人人做人人综合| 日韩精品一二三| 欧美性猛交xxxx乱大交退制版| 国产精品久久精品日日| 国产美女视频91| 久久久综合网站| 国内精品伊人久久久久av影院| 欧美军同video69gay| 亚洲一二三区在线观看| 欧美自拍偷拍一区| 亚洲精品国产一区二区三区四区在线 | 亚洲精品在线观| 久久精品av麻豆的观看方式| 欧美一区欧美二区| 日韩电影在线看| 欧美一区二区三区人| 日本在线观看不卡视频| 日韩一区二区三区视频在线观看| 亚洲成人动漫在线免费观看| 欧美二区在线观看| 麻豆一区二区在线| www国产成人免费观看视频 深夜成人网| 日韩中文欧美在线| 欧美精品一区二区三区蜜桃 | 亚洲综合视频在线| 欧美日韩一区二区在线视频| 午夜在线成人av| 精品日本一线二线三线不卡| 国产精品一级片| 国产精品卡一卡二卡三| 在线视频国内自拍亚洲视频| 午夜伊人狠狠久久| 精品国产伦一区二区三区观看体验 | 欧美伊人久久久久久久久影院 | 久久久久99精品国产片| av一本久道久久综合久久鬼色| 亚洲欧美激情插| 欧美巨大另类极品videosbest | 在线观看www91| 日韩成人av影视| 欧美国产成人精品| 在线看一区二区| 激情综合色播五月| 亚洲欧美乱综合| 日韩女优视频免费观看| 成人av免费网站| 午夜精品福利在线| 国产亚洲污的网站| 欧美亚洲一区二区三区四区| 麻豆精品新av中文字幕| 国产精品久久久久久久久免费樱桃 | 亚洲欧洲av一区二区三区久久| 欧美视频在线播放| 国产成人自拍在线| 日韩精品电影一区亚洲| 国产欧美一区二区三区在线老狼| eeuss国产一区二区三区| 人人超碰91尤物精品国产| 亚洲婷婷国产精品电影人久久| 91精品国产色综合久久久蜜香臀| yourporn久久国产精品| 日本欧美大码aⅴ在线播放| 亚洲色图欧美偷拍| 久久综合久久久久88| 一本色道亚洲精品aⅴ| 国产做a爰片久久毛片| 午夜电影网一区| 亚洲欧美经典视频| 国产精品乱码妇女bbbb| 26uuu国产一区二区三区| 欧美日韩1234| 91丝袜高跟美女视频| 国产成人8x视频一区二区| 美女脱光内衣内裤视频久久网站| 亚洲一区二区三区中文字幕| 中文字幕中文乱码欧美一区二区| 国产婷婷精品av在线| 日韩欧美国产麻豆| 欧美日韩日日夜夜| 在线观看欧美黄色| 在线观看亚洲精品视频| 99精品视频中文字幕| 成人黄色国产精品网站大全在线免费观看| 日韩 欧美一区二区三区| 午夜精品福利久久久| 亚洲一区二区三区美女| 伊人开心综合网| 亚洲综合在线观看视频| 亚洲男同性视频| 亚洲视频 欧洲视频| 一区二区日韩电影| 一区二区三区国产精华| 亚洲制服丝袜av| 亚洲国产美女搞黄色| 偷拍与自拍一区| 日韩精品免费专区| 玖玖九九国产精品| 国产一区二区导航在线播放| 国产精品一区二区男女羞羞无遮挡 | 欧美日韩一级片网站| 欧美人妇做爰xxxⅹ性高电影| 欧美精品在线视频| 日韩欧美国产不卡| 欧美电影免费观看高清完整版| 欧美videos大乳护士334| 精品国产伦一区二区三区观看体验 | 亚洲国产精品一区二区www在线| 亚洲美女免费视频| 亚洲国产精品一区二区www| 日韩av在线发布| 精品夜夜嗨av一区二区三区| 国产黄色精品网站| 91蜜桃传媒精品久久久一区二区| 欧洲av在线精品| 日韩一区二区三区三四区视频在线观看 | 丰满亚洲少妇av| 色综合欧美在线| 91精品国产综合久久久久久| 精品免费视频.| 亚洲精品视频免费观看| 亚洲香蕉伊在人在线观| 国产专区综合网| 97久久超碰国产精品电影| 69av一区二区三区| 国产精品污网站| 亚洲 欧美综合在线网络| 国产精品亚洲一区二区三区在线 | 制服丝袜日韩国产| 国产精品欧美久久久久无广告 | 国产不卡视频在线观看| 欧美午夜视频网站| 久久久久九九视频| 亚洲最大的成人av| 福利电影一区二区三区| 欧美一区二区三区啪啪| 国产精品久久久久一区二区三区| 91浏览器打开| 在线观看91av| 中文字幕在线观看一区二区|