<!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: CVC3::DecisionEngine 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 id="nav-path" class="navpath"> <ul> <li class="navelem"><a class="el" href="namespaceCVC3.html">CVC3</a></li><li class="navelem"><a class="el" href="classCVC3_1_1DecisionEngine.html">DecisionEngine</a></li> </ul> </div> </div><!-- top --> <div class="header"> <div class="summary"> <a href="#pub-methods">Public Member Functions</a> | <a href="#pro-methods">Protected Member Functions</a> | <a href="#pro-attribs">Protected Attributes</a> | <a href="classCVC3_1_1DecisionEngine-members.html">List of all members</a> </div> <div class="headertitle"> <div class="title">CVC3::DecisionEngine Class Reference<span class="mlabels"><span class="mlabel">abstract</span></span></div> </div> </div><!--header--> <div class="contents"> <p><code>#include <<a class="el" href="decision__engine_8h_source.html">decision_engine.h</a>></code></p> <p>Inherited by <a class="el" href="classCVC3_1_1DecisionEngineCaching.html">CVC3::DecisionEngineCaching</a>, <a class="el" href="classCVC3_1_1DecisionEngineDFS.html">CVC3::DecisionEngineDFS</a>, and <a class="el" href="classCVC3_1_1DecisionEngineMBTF.html">CVC3::DecisionEngineMBTF</a>.</p> <div class="dynheader"> Collaboration diagram for CVC3::DecisionEngine:</div> <div class="dyncontent"> <div class="center"><img src="classCVC3_1_1DecisionEngine__coll__graph.gif" border="0" usemap="#CVC3_1_1DecisionEngine_coll__map" alt="Collaboration graph"/></div> <map name="CVC3_1_1DecisionEngine_coll__map" id="CVC3_1_1DecisionEngine_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:gae0864ba9d167d33e9d1c1ed4416a76fd"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__DE.html#gae0864ba9d167d33e9d1c1ed4416a76fd">DecisionEngine</a> (<a class="el" href="classCVC3_1_1TheoryCore.html">TheoryCore</a> *core, <a class="el" href="classCVC3_1_1SearchImplBase.html">SearchImplBase</a> *se)</td></tr> <tr class="separator:gae0864ba9d167d33e9d1c1ed4416a76fd"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ga55c5dee7b559b90e9d0c3fd8aa7c70b2"><td class="memItemLeft" align="right" valign="top">virtual </td><td class="memItemRight" valign="bottom"><a class="el" href="group__DE.html#ga55c5dee7b559b90e9d0c3fd8aa7c70b2">~DecisionEngine</a> ()</td></tr> <tr class="separator:ga55c5dee7b559b90e9d0c3fd8aa7c70b2"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ga6f191a7f4edb645e8df7c1f005a50bf8"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="classCVC3_1_1Expr.html">Expr</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__DE.html#ga6f191a7f4edb645e8df7c1f005a50bf8">findSplitter</a> (const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &e)=0</td></tr> <tr class="memdesc:ga6f191a7f4edb645e8df7c1f005a50bf8"><td class="mdescLeft"> </td><td class="mdescRight">Finds a splitter inside a non const expression. The expression passed in must not be a boolean constant, otherwise a DebugAssert will occur. <a href="group__DE.html#ga6f191a7f4edb645e8df7c1f005a50bf8"></a><br/></td></tr> <tr class="separator:ga6f191a7f4edb645e8df7c1f005a50bf8"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ga03a83031c2361cce4e8ce952842973be"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__DE.html#ga03a83031c2361cce4e8ce952842973be">pushDecision</a> (<a class="el" href="classCVC3_1_1Expr.html">Expr</a> splitter, bool whichCase=true)</td></tr> <tr class="memdesc:ga03a83031c2361cce4e8ce952842973be"><td class="mdescLeft"> </td><td class="mdescRight">Push context and record the splitter. <a href="group__DE.html#ga03a83031c2361cce4e8ce952842973be"></a><br/></td></tr> <tr class="separator:ga03a83031c2361cce4e8ce952842973be"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ga96c0e5c796d102da129381dd12595e8a"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__DE.html#ga96c0e5c796d102da129381dd12595e8a">popDecision</a> ()</td></tr> <tr class="memdesc:ga96c0e5c796d102da129381dd12595e8a"><td class="mdescLeft"> </td><td class="mdescRight">Pop last decision (and context) <a href="group__DE.html#ga96c0e5c796d102da129381dd12595e8a"></a><br/></td></tr> <tr class="separator:ga96c0e5c796d102da129381dd12595e8a"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ga90d2e881c4cc004754708ee579682d85"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__DE.html#ga90d2e881c4cc004754708ee579682d85">popTo</a> (int dl)</td></tr> <tr class="memdesc:ga90d2e881c4cc004754708ee579682d85"><td class="mdescLeft"> </td><td class="mdescRight">Pop to given scope. <a href="group__DE.html#ga90d2e881c4cc004754708ee579682d85"></a><br/></td></tr> <tr class="separator:ga90d2e881c4cc004754708ee579682d85"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ga5b67011c3ea03780faf2071d5085a544"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classCVC3_1_1Expr.html">Expr</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__DE.html#ga5b67011c3ea03780faf2071d5085a544">lastSplitter</a> ()</td></tr> <tr class="memdesc:ga5b67011c3ea03780faf2071d5085a544"><td class="mdescLeft"> </td><td class="mdescRight">Return the last known splitter. <a href="group__DE.html#ga5b67011c3ea03780faf2071d5085a544"></a><br/></td></tr> <tr class="separator:ga5b67011c3ea03780faf2071d5085a544"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ga7910d09d94bd27c02f53a3f7e0a9af00"><td class="memItemLeft" align="right" valign="top">virtual void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__DE.html#ga7910d09d94bd27c02f53a3f7e0a9af00">goalSatisfied</a> ()=0</td></tr> <tr class="memdesc:ga7910d09d94bd27c02f53a3f7e0a9af00"><td class="mdescLeft"> </td><td class="mdescRight">Search should call this when it derives 'false'. <a href="group__DE.html#ga7910d09d94bd27c02f53a3f7e0a9af00"></a><br/></td></tr> <tr class="separator:ga7910d09d94bd27c02f53a3f7e0a9af00"><td class="memSeparator" colspan="2"> </td></tr> </table><table class="memberdecls"> <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-methods"></a> Protected Member Functions</h2></td></tr> <tr class="memitem:ga5974aad82f7244de1ce9a49969b2d57d"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classCVC3_1_1Expr.html">Expr</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__DE.html#ga5974aad82f7244de1ce9a49969b2d57d">findSplitterRec</a> (const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &e)</td></tr> <tr class="separator:ga5974aad82f7244de1ce9a49969b2d57d"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:gaaa431eec1b04f02c8a7573d34616158b"><td class="memItemLeft" align="right" valign="top">virtual bool </td><td class="memItemRight" valign="bottom"><a class="el" href="group__DE.html#gaaa431eec1b04f02c8a7573d34616158b">isBetter</a> (const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &e1, const <a class="el" href="classCVC3_1_1Expr.html">Expr</a> &e2)=0</td></tr> <tr class="separator:gaaa431eec1b04f02c8a7573d34616158b"><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:gaea6842e7db1a4cb203d8a6da726b52ed"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classCVC3_1_1TheoryCore.html">TheoryCore</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="group__DE.html#gaea6842e7db1a4cb203d8a6da726b52ed">d_core</a></td></tr> <tr class="memdesc:gaea6842e7db1a4cb203d8a6da726b52ed"><td class="mdescLeft"> </td><td class="mdescRight">Pointer to core theory. <a href="group__DE.html#gaea6842e7db1a4cb203d8a6da726b52ed"></a><br/></td></tr> <tr class="separator:gaea6842e7db1a4cb203d8a6da726b52ed"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ga11d61d4a7d9938dd4c72ffe564dc9cb7"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classCVC3_1_1SearchImplBase.html">SearchImplBase</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="group__DE.html#ga11d61d4a7d9938dd4c72ffe564dc9cb7">d_se</a></td></tr> <tr class="memdesc:ga11d61d4a7d9938dd4c72ffe564dc9cb7"><td class="mdescLeft"> </td><td class="mdescRight">Pointer to search engine. <a href="group__DE.html#ga11d61d4a7d9938dd4c72ffe564dc9cb7"></a><br/></td></tr> <tr class="separator:ga11d61d4a7d9938dd4c72ffe564dc9cb7"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:gaf662ad88359f7ce623ffe35ebc6d74ef"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classCVC3_1_1CDList.html">CDList</a>< <a class="el" href="classCVC3_1_1Expr.html">Expr</a> > </td><td class="memItemRight" valign="bottom"><a class="el" href="group__DE.html#gaf662ad88359f7ce623ffe35ebc6d74ef">d_splitters</a></td></tr> <tr class="memdesc:gaf662ad88359f7ce623ffe35ebc6d74ef"><td class="mdescLeft"> </td><td class="mdescRight">List of currently active splitters. <a href="group__DE.html#gaf662ad88359f7ce623ffe35ebc6d74ef"></a><br/></td></tr> <tr class="separator:gaf662ad88359f7ce623ffe35ebc6d74ef"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:gae9092ccb020b756b56556eb57a7af5ab"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classCVC3_1_1StatCounter.html">StatCounter</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__DE.html#gae9092ccb020b756b56556eb57a7af5ab">d_splitterCount</a></td></tr> <tr class="memdesc:gae9092ccb020b756b56556eb57a7af5ab"><td class="mdescLeft"> </td><td class="mdescRight">Total number of splitters. <a href="group__DE.html#gae9092ccb020b756b56556eb57a7af5ab"></a><br/></td></tr> <tr class="separator:gae9092ccb020b756b56556eb57a7af5ab"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ga922651f82bf5dec8e9f6d7211507a6fd"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classCVC3_1_1ExprMap.html">ExprMap</a>< <a class="el" href="classCVC3_1_1Expr.html">Expr</a> > </td><td class="memItemRight" valign="bottom"><a class="el" href="group__DE.html#ga922651f82bf5dec8e9f6d7211507a6fd">d_bestByExpr</a></td></tr> <tr class="separator:ga922651f82bf5dec8e9f6d7211507a6fd"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:gab9a86f01371ea2ef051119f0e414727b"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classCVC3_1_1ExprMap.html">ExprMap</a>< <a class="el" href="classCVC3_1_1Expr.html">Expr</a> > </td><td class="memItemRight" valign="bottom"><a class="el" href="group__DE.html#gab9a86f01371ea2ef051119f0e414727b">d_visited</a></td></tr> <tr class="memdesc:gab9a86f01371ea2ef051119f0e414727b"><td class="mdescLeft"> </td><td class="mdescRight">Visited cache for findSplitterRec traversal. <a href="group__DE.html#gab9a86f01371ea2ef051119f0e414727b"></a><br/></td></tr> <tr class="separator:gab9a86f01371ea2ef051119f0e414727b"><td class="memSeparator" colspan="2"> </td></tr> </table> <a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2> <div class="textblock"> <p>Definition at line <a class="el" href="decision__engine_8h_source.html#l00029">29</a> of file <a class="el" href="decision__engine_8h_source.html">decision_engine.h</a>.</p> </div><hr/>The documentation for this class was generated from the following files:<ul> <li><a class="el" href="decision__engine_8h_source.html">decision_engine.h</a></li> <li><a class="el" href="decision__engine_8cpp_source.html">decision_engine.cpp</a></li> </ul> </div><!-- contents --> <!-- start footer part --> <hr class="footer"/><address class="footer"><small> Generated on Thu May 16 2013 13:25:19 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>