本文整理汇总了C++中Watched::getOffset方法的典型用法代码示例。如果您正苦于以下问题:C++ Watched::getOffset方法的具体用法?C++ Watched::getOffset怎么用?C++ Watched::getOffset使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Watched
的用法示例。
在下文中一共展示了Watched::getOffset方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: redundant
bool CNF::redundant(const Watched& ws) const
{
return ( (ws.isBinary() && ws.red())
|| (ws.isTri() && ws.red())
|| (ws.isClause()
&& clAllocator.getPointer(ws.getOffset())->red()
)
);
}
示例2: redundant_or_removed
bool CNF::redundant_or_removed(const Watched& ws) const
{
if (ws.isBinary() || ws.isTri()) {
return ws.red();
}
assert(ws.isClause());
const Clause* cl = clAllocator.getPointer(ws.getOffset());
return cl->red() || cl->getRemoved();
}
示例3: watched_to_string
string CNF::watched_to_string(Lit otherLit, const Watched& ws) const
{
std::stringstream ss;
switch(ws.getType()) {
case watch_binary_t:
ss << otherLit << ", " << ws.lit2();
if (ws.red()) {
ss << "(red)";
}
break;
case CMSat::watch_tertiary_t:
ss << otherLit << ", " << ws.lit2() << ", " << ws.lit3();
if (ws.red()) {
ss << "(red)";
}
break;
case watch_clause_t: {
const Clause* cl = clAllocator.getPointer(ws.getOffset());
for(size_t i = 0; i < cl->size(); i++) {
ss << (*cl)[i];
if (i + 1 < cl->size())
ss << ", ";
}
if (cl->red()) {
ss << "(red)";
}
break;
}
default:
assert(false);
break;
}
return ss.str();
}
示例4: cl_size
size_t CNF::cl_size(const Watched& ws) const
{
switch(ws.getType()) {
case watch_binary_t:
return 2;
break;
case CMSat::watch_tertiary_t:
return 3;
break;
case watch_clause_t: {
const Clause* cl = clAllocator.getPointer(ws.getOffset());
return cl->size();
break;
}
default:
assert(false);
return 0;
break;
}
}