<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/> <meta http-equiv="X-UA-Compatible" content="IE=9"/> <title>CVC3: CClause Class Reference</title> <link href="tabs.css" rel="stylesheet" type="text/css"/> <script type="text/javascript" src="jquery.js"></script> <script type="text/javascript" src="dynsections.js"></script> <link href="doxygen.css" rel="stylesheet" type="text/css" /> </head> <body> <div id="top"><!-- do not remove this div, it is closed by doxygen! --> <div id="titlearea"> <table cellspacing="0" cellpadding="0"> <tbody> <tr style="height: 56px;"> <td style="padding-left: 0.5em;"> <div id="projectname">CVC3 </div> </td> </tr> </tbody> </table> </div> <!-- end header part --> <!-- Generated by Doxygen 1.8.2 --> <div id="navrow1" class="tabs"> <ul class="tablist"> <li><a href="index.html"><span>Main Page</span></a></li> <li><a href="pages.html"><span>Related Pages</span></a></li> <li><a href="modules.html"><span>Modules</span></a></li> <li><a href="namespaces.html"><span>Namespaces</span></a></li> <li class="current"><a href="annotated.html"><span>Classes</span></a></li> <li><a href="files.html"><span>Files</span></a></li> </ul> </div> <div id="navrow2" class="tabs2"> <ul class="tablist"> <li><a href="annotated.html"><span>Class List</span></a></li> <li><a href="classes.html"><span>Class Index</span></a></li> <li><a href="inherits.html"><span>Class Hierarchy</span></a></li> <li><a href="functions.html"><span>Class Members</span></a></li> </ul> </div> </div><!-- top --> <div class="header"> <div class="summary"> <a href="#pub-methods">Public Member Functions</a> | <a href="#pro-attribs">Protected Attributes</a> | <a href="#friends">Friends</a> | <a href="classCClause-members.html">List of all members</a> </div> <div class="headertitle"> <div class="title">CClause Class Reference</div> </div> </div><!--header--> <div class="contents"> <p><code>#include <<a class="el" href="xchaff__base_8h_source.html">xchaff_base.h</a>></code></p> <div class="dynheader"> Collaboration diagram for CClause:</div> <div class="dyncontent"> <div class="center"><img src="classCClause__coll__graph.gif" border="0" usemap="#CClause_coll__map" alt="Collaboration graph"/></div> <map name="CClause_coll__map" id="CClause_coll__map"> </map> </div> <table class="memberdecls"> <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a> Public Member Functions</h2></td></tr> <tr class="memitem:aadb77f8245e78c2c6e3571c888d0883a"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="classCClause.html#aadb77f8245e78c2c6e3571c888d0883a">CClause</a> (void)</td></tr> <tr class="separator:aadb77f8245e78c2c6e3571c888d0883a"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a989337392671ea2855b3131c456a52a4"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="classCClause.html#a989337392671ea2855b3131c456a52a4">~CClause</a> ()</td></tr> <tr class="separator:a989337392671ea2855b3131c456a52a4"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a9dea20f5f7e41be18dfbe01105c58f2c"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classCClause.html#a9dea20f5f7e41be18dfbe01105c58f2c">init</a> (<a class="el" href="classCLitPoolElement.html">CLitPoolElement</a> *head, int <a class="el" href="classCClause.html#ae4f9f5a951b75aab530b5b05a3232082">num_lits</a>)</td></tr> <tr class="separator:a9dea20f5f7e41be18dfbe01105c58f2c"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a8254175660df4f73f485f9227becaf14"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classCLitPoolElement.html">CLitPoolElement</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="classCClause.html#a8254175660df4f73f485f9227becaf14">literals</a> (void)</td></tr> <tr class="separator:a8254175660df4f73f485f9227becaf14"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a08b669c2f239c65df9cae46603cab85f"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classCLitPoolElement.html">CLitPoolElement</a> *& </td><td class="memItemRight" valign="bottom"><a class="el" href="classCClause.html#a08b669c2f239c65df9cae46603cab85f">first_lit</a> (void)</td></tr> <tr class="separator:a08b669c2f239c65df9cae46603cab85f"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ae4f9f5a951b75aab530b5b05a3232082"><td class="memItemLeft" align="right" valign="top">int & </td><td class="memItemRight" valign="bottom"><a class="el" href="classCClause.html#ae4f9f5a951b75aab530b5b05a3232082">num_lits</a> (void)</td></tr> <tr class="separator:ae4f9f5a951b75aab530b5b05a3232082"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:accc3ecb433cd7ba00affc3180b0911d4"><td class="memItemLeft" align="right" valign="top">bool & </td><td class="memItemRight" valign="bottom"><a class="el" href="classCClause.html#accc3ecb433cd7ba00affc3180b0911d4">in_use</a> (void)</td></tr> <tr class="separator:accc3ecb433cd7ba00affc3180b0911d4"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:aa9e91f96e80b94da2b28e3ab381b9acc"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classCLitPoolElement.html">CLitPoolElement</a> & </td><td class="memItemRight" valign="bottom"><a class="el" href="classCClause.html#aa9e91f96e80b94da2b28e3ab381b9acc">literal</a> (int idx)</td></tr> <tr class="separator:aa9e91f96e80b94da2b28e3ab381b9acc"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:af3bf6d35dd865946c571aeb3ac5405c1"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classCClause.html#af3bf6d35dd865946c571aeb3ac5405c1">dump</a> (ostream &os=cout)</td></tr> <tr class="separator:af3bf6d35dd865946c571aeb3ac5405c1"><td class="memSeparator" colspan="2"> </td></tr> </table><table class="memberdecls"> <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-attribs"></a> Protected Attributes</h2></td></tr> <tr class="memitem:a5a69f02bb5d7a29aa859105c21f93622"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classCLitPoolElement.html">CLitPoolElement</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="classCClause.html#a5a69f02bb5d7a29aa859105c21f93622">_first_lit</a></td></tr> <tr class="separator:a5a69f02bb5d7a29aa859105c21f93622"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ad52e9eeb7316e0b9be73c4f556f38856"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="classCClause.html#ad52e9eeb7316e0b9be73c4f556f38856">_num_lits</a></td></tr> <tr class="separator:ad52e9eeb7316e0b9be73c4f556f38856"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a94169375b0ac79972818318e157751b8"><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classCClause.html#a94169375b0ac79972818318e157751b8">_in_use</a></td></tr> <tr class="separator:a94169375b0ac79972818318e157751b8"><td class="memSeparator" colspan="2"> </td></tr> </table><table class="memberdecls"> <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="friends"></a> Friends</h2></td></tr> <tr class="memitem:a03f918c95f5c21a52e38a1879c53dc95"><td class="memItemLeft" align="right" valign="top">ostream & </td><td class="memItemRight" valign="bottom"><a class="el" href="classCClause.html#a03f918c95f5c21a52e38a1879c53dc95">operator<<</a> (ostream &os, <a class="el" href="classCClause.html">CClause</a> &cl)</td></tr> <tr class="separator:a03f918c95f5c21a52e38a1879c53dc95"><td class="memSeparator" colspan="2"> </td></tr> </table> <a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2> <div class="textblock"><p>Class**********************************************************************</p> <p>Synopsis [Definition of a clause]</p> <p>Description [A clause is consisted of a certain number of literals. All literals are collected in a single large vector, we call it literal pool. Each clause has a pointer to the beginning position of it's literals in the pool. The boolean propagation mechanism use two pointers (called head/tail pointer, by sato's convention) which always point to the last assigned literals of this clause.]</p> <p>SeeAlso [<a class="el" href="classCDatabase.html">CDatabase</a>] </p> <p>Definition at line <a class="el" href="xchaff__base_8h_source.html#l00165">165</a> of file <a class="el" href="xchaff__base_8h_source.html">xchaff_base.h</a>.</p> </div><h2 class="groupheader">Constructor & Destructor Documentation</h2> <a class="anchor" id="aadb77f8245e78c2c6e3571c888d0883a"></a> <div class="memitem"> <div class="memproto"> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname">CClause::CClause </td> <td>(</td> <td class="paramtype">void </td> <td class="paramname"></td><td>)</td> <td></td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">inline</span></span> </td> </tr> </table> </div><div class="memdoc"> <p>Definition at line <a class="el" href="xchaff__base_8h_source.html#l00173">173</a> of file <a class="el" href="xchaff__base_8h_source.html">xchaff_base.h</a>.</p> </div> </div> <a class="anchor" id="a989337392671ea2855b3131c456a52a4"></a> <div class="memitem"> <div class="memproto"> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname">CClause::~CClause </td> <td>(</td> <td class="paramname"></td><td>)</td> <td></td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">inline</span></span> </td> </tr> </table> </div><div class="memdoc"> <p>Definition at line <a class="el" href="xchaff__base_8h_source.html#l00175">175</a> of file <a class="el" href="xchaff__base_8h_source.html">xchaff_base.h</a>.</p> </div> </div> <h2 class="groupheader">Member Function Documentation</h2> <a class="anchor" id="a9dea20f5f7e41be18dfbe01105c58f2c"></a> <div class="memitem"> <div class="memproto"> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname">void CClause::init </td> <td>(</td> <td class="paramtype"><a class="el" href="classCLitPoolElement.html">CLitPoolElement</a> * </td> <td class="paramname"><em>head</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">int </td> <td class="paramname"><em>num_lits</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">inline</span></span> </td> </tr> </table> </div><div class="memdoc"> <p>Definition at line <a class="el" href="xchaff__base_8h_source.html#l00177">177</a> of file <a class="el" href="xchaff__base_8h_source.html">xchaff_base.h</a>.</p> <p>Referenced by <a class="el" href="xchaff__solver_8cpp_source.html#l00179">CSolver::add_clause()</a>.</p> </div> </div> <a class="anchor" id="a8254175660df4f73f485f9227becaf14"></a> <div class="memitem"> <div class="memproto"> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname"><a class="el" href="classCLitPoolElement.html">CLitPoolElement</a>* CClause::literals </td> <td>(</td> <td class="paramtype">void </td> <td class="paramname"></td><td>)</td> <td></td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">inline</span></span> </td> </tr> </table> </div><div class="memdoc"> <p>Definition at line <a class="el" href="xchaff__base_8h_source.html#l00183">183</a> of file <a class="el" href="xchaff__base_8h_source.html">xchaff_base.h</a>.</p> <p>Referenced by <a class="el" href="xchaff__solver_8cpp_source.html#l00179">CSolver::add_clause()</a>, <a class="el" href="xchaff__dbase_8cpp_source.html#l00176">CDatabase::detail_dump_cl()</a>, <a class="el" href="xchaff__solver_8cpp_source.html#l00447">CSolver::find_max_clause_dlevel()</a>, <a class="el" href="xchaff__solver_8cpp_source.html#l00497">CDatabase::find_unit_literal()</a>, <a class="el" href="xchaff__solver_8cpp_source.html#l00479">CDatabase::is_conflict()</a>, and <a class="el" href="xchaff__solver_8cpp_source.html#l00488">CDatabase::is_satisfied()</a>.</p> </div> </div> <a class="anchor" id="a08b669c2f239c65df9cae46603cab85f"></a> <div class="memitem"> <div class="memproto"> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname"><a class="el" href="classCLitPoolElement.html">CLitPoolElement</a>* & CClause::first_lit </td> <td>(</td> <td class="paramtype">void </td> <td class="paramname"></td><td>)</td> <td></td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">inline</span></span> </td> </tr> </table> </div><div class="memdoc"> <p>Definition at line <a class="el" href="xchaff__base_8h_source.html#l00186">186</a> of file <a class="el" href="xchaff__base_8h_source.html">xchaff_base.h</a>.</p> <p>Referenced by <a class="el" href="xchaff__dbase_8cpp_source.html#l00062">CDatabase::compact_lit_pool()</a>, and <a class="el" href="xchaff__dbase_8cpp_source.html#l00100">CDatabase::enlarge_lit_pool()</a>.</p> </div> </div> <a class="anchor" id="ae4f9f5a951b75aab530b5b05a3232082"></a> <div class="memitem"> <div class="memproto"> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname">int& CClause::num_lits </td> <td>(</td> <td class="paramtype">void </td> <td class="paramname"></td><td>)</td> <td></td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">inline</span></span> </td> </tr> </table> </div><div class="memdoc"> <p>Definition at line <a class="el" href="xchaff__base_8h_source.html#l00189">189</a> of file <a class="el" href="xchaff__base_8h_source.html">xchaff_base.h</a>.</p> <p>Referenced by <a class="el" href="xchaff__solver_8cpp_source.html#l00179">CSolver::add_clause()</a>, <a class="el" href="xchaff__dbase_8cpp_source.html#l00062">CDatabase::compact_lit_pool()</a>, <a class="el" href="xchaff__solver_8cpp_source.html#l00513">CSolver::delete_unrelevant_clauses()</a>, <a class="el" href="xchaff__dbase_8cpp_source.html#l00176">CDatabase::detail_dump_cl()</a>, <a class="el" href="xchaff_8cpp_source.html#l00035">Xchaff::GetClauseLits()</a>, <a class="el" href="xchaff__dbase_8h_source.html#l00221">CDatabase::mark_clause_deleted()</a>, and <a class="el" href="xchaff__solver_8cpp_source.html#l00706">CSolver::preprocess()</a>.</p> </div> </div> <a class="anchor" id="accc3ecb433cd7ba00affc3180b0911d4"></a> <div class="memitem"> <div class="memproto"> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname">bool& CClause::in_use </td> <td>(</td> <td class="paramtype">void </td> <td class="paramname"></td><td>)</td> <td></td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">inline</span></span> </td> </tr> </table> </div><div class="memdoc"> <p>Definition at line <a class="el" href="xchaff__base_8h_source.html#l00192">192</a> of file <a class="el" href="xchaff__base_8h_source.html">xchaff_base.h</a>.</p> <p>Referenced by <a class="el" href="xchaff__solver_8cpp_source.html#l00513">CSolver::delete_unrelevant_clauses()</a>, <a class="el" href="xchaff__dbase_8cpp_source.html#l00176">CDatabase::detail_dump_cl()</a>, <a class="el" href="xchaff__dbase_8cpp_source.html#l00100">CDatabase::enlarge_lit_pool()</a>, <a class="el" href="xchaff_8cpp_source.html#l00020">Xchaff::GetClause()</a>, <a class="el" href="xchaff_8h_source.html#l00060">Xchaff::GetFirstClause()</a>, <a class="el" href="xchaff_8h_source.html#l00065">Xchaff::GetNextClause()</a>, and <a class="el" href="xchaff__dbase_8h_source.html#l00221">CDatabase::mark_clause_deleted()</a>.</p> </div> </div> <a class="anchor" id="aa9e91f96e80b94da2b28e3ab381b9acc"></a> <div class="memitem"> <div class="memproto"> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname"><a class="el" href="classCLitPoolElement.html">CLitPoolElement</a>& CClause::literal </td> <td>(</td> <td class="paramtype">int </td> <td class="paramname"><em>idx</em></td><td>)</td> <td></td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">inline</span></span> </td> </tr> </table> </div><div class="memdoc"> <p>Definition at line <a class="el" href="xchaff__base_8h_source.html#l00195">195</a> of file <a class="el" href="xchaff__base_8h_source.html">xchaff_base.h</a>.</p> <p>Referenced by <a class="el" href="xchaff__solver_8cpp_source.html#l00513">CSolver::delete_unrelevant_clauses()</a>, <a class="el" href="xchaff__dbase_8cpp_source.html#l00176">CDatabase::detail_dump_cl()</a>, <a class="el" href="xchaff_8cpp_source.html#l00035">Xchaff::GetClauseLits()</a>, and <a class="el" href="xchaff__dbase_8h_source.html#l00221">CDatabase::mark_clause_deleted()</a>.</p> </div> </div> <a class="anchor" id="af3bf6d35dd865946c571aeb3ac5405c1"></a> <div class="memitem"> <div class="memproto"> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname">void CClause::dump </td> <td>(</td> <td class="paramtype">ostream & </td> <td class="paramname"><em>os</em> = <code>cout</code></td><td>)</td> <td></td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">inline</span></span> </td> </tr> </table> </div><div class="memdoc"> <p>Definition at line <a class="el" href="xchaff__base_8h_source.html#l00199">199</a> of file <a class="el" href="xchaff__base_8h_source.html">xchaff_base.h</a>.</p> <p>References <a class="el" href="expr__stream_8cpp_source.html#l00353">std::endl()</a>.</p> </div> </div> <h2 class="groupheader">Friends And Related Function Documentation</h2> <a class="anchor" id="a03f918c95f5c21a52e38a1879c53dc95"></a> <div class="memitem"> <div class="memproto"> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname">ostream& operator<< </td> <td>(</td> <td class="paramtype">ostream & </td> <td class="paramname"><em>os</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="classCClause.html">CClause</a> & </td> <td class="paramname"><em>cl</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">friend</span></span> </td> </tr> </table> </div><div class="memdoc"> <p>Definition at line <a class="el" href="xchaff__base_8h_source.html#l00207">207</a> of file <a class="el" href="xchaff__base_8h_source.html">xchaff_base.h</a>.</p> </div> </div> <h2 class="groupheader">Member Data Documentation</h2> <a class="anchor" id="a5a69f02bb5d7a29aa859105c21f93622"></a> <div class="memitem"> <div class="memproto"> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname"><a class="el" href="classCLitPoolElement.html">CLitPoolElement</a>* CClause::_first_lit</td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">protected</span></span> </td> </tr> </table> </div><div class="memdoc"> <p>Definition at line <a class="el" href="xchaff__base_8h_source.html#l00168">168</a> of file <a class="el" href="xchaff__base_8h_source.html">xchaff_base.h</a>.</p> </div> </div> <a class="anchor" id="ad52e9eeb7316e0b9be73c4f556f38856"></a> <div class="memitem"> <div class="memproto"> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname">int CClause::_num_lits</td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">protected</span></span> </td> </tr> </table> </div><div class="memdoc"> <p>Definition at line <a class="el" href="xchaff__base_8h_source.html#l00169">169</a> of file <a class="el" href="xchaff__base_8h_source.html">xchaff_base.h</a>.</p> </div> </div> <a class="anchor" id="a94169375b0ac79972818318e157751b8"></a> <div class="memitem"> <div class="memproto"> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname">bool CClause::_in_use</td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">protected</span></span> </td> </tr> </table> </div><div class="memdoc"> <p>Definition at line <a class="el" href="xchaff__base_8h_source.html#l00170">170</a> of file <a class="el" href="xchaff__base_8h_source.html">xchaff_base.h</a>.</p> </div> </div> <hr/>The documentation for this class was generated from the following file:<ul> <li><a class="el" href="xchaff__base_8h_source.html">xchaff_base.h</a></li> </ul> </div><!-- contents --> <!-- start footer part --> <hr class="footer"/><address class="footer"><small> Generated on Thu May 16 2013 13:25:16 for CVC3 by  <a href="http://www.doxygen.org/index.html"> <img class="footer" src="doxygen.png" alt="doxygen"/> </a> 1.8.2 </small></address> </body> </html>