decision_engine_dfs.cpp

Go to the documentation of this file.
00001 /*****************************************************************************/
00002 /*!
00003  * \file decision_engine_dfs.cpp
00004  * \brief Decision Engine
00005  * 
00006  * Author: Clark Barrett
00007  * 
00008  * Created: Sun Jul 13 22:44:55 2003
00009  *
00010  * <hr>
00011  * Copyright (C) 2003 by the Board of Trustees of Leland Stanford
00012  * Junior University and by New York University. 
00013  *
00014  * License to use, copy, modify, sell and/or distribute this software
00015  * and its documentation for any purpose is hereby granted without
00016  * royalty, subject to the terms and conditions defined in the \ref
00017  * LICENSE file provided with this distribution.  In particular:
00018  *
00019  * - The above copyright notice and this permission notice must appear
00020  * in all copies of the software and related documentation.
00021  *
00022  * - THE SOFTWARE IS PROVIDED "AS-IS", WITHOUT ANY WARRANTIES,
00023  * EXPRESSED OR IMPLIED.  USE IT AT YOUR OWN RISK.
00024  * 
00025  * <hr>
00026  * 
00027  */
00028 /*****************************************************************************/
00029 
00030 
00031 #include "decision_engine_dfs.h"
00032 #include "theory_core.h"
00033 #include "search.h"
00034 
00035 
00036 using namespace std;
00037 using namespace CVCL;
00038 
00039 
00040 bool DecisionEngineDFS::isBetter(const Expr& e1, const Expr& e2)
00041 {
00042   return false;
00043 }
00044 
00045 
00046 /*****************************************************************************/
00047 /*!
00048  * Function: DecisionEngineDFS::DecisionEngineDFS
00049  *
00050  * Author: Clark Barrett
00051  *
00052  * Created: Sun Jul 13 22:52:51 2003
00053  *
00054  * Constructor
00055  */
00056 /*****************************************************************************/
00057 DecisionEngineDFS::DecisionEngineDFS(TheoryCore* core, SearchImplBase* se)
00058   : DecisionEngine(core, se)
00059 {
00060 }
00061 
00062 
00063 /*****************************************************************************/
00064 /*!
00065  * Function: DecisionEngineDFS::findSplitter
00066  *
00067  * Author: Clark Barrett
00068  *
00069  * Created: Sun Jul 13 22:53:18 2003
00070  *
00071  * Main function to choose the next splitter.
00072  * \return NULL if all known splitters are assigned.
00073  */
00074 /*****************************************************************************/
00075 Expr DecisionEngineDFS::findSplitter(const Expr& e) {
00076   TRACE("splitters verbose", "findSplitter(", e, ") {");
00077   Expr splitter; // Null by default
00078   d_visited.clear();
00079 
00080   if (!e.isNull()) {
00081     splitter = findSplitterRec(e);
00082     // It's OK not to find a splitter, since e may contain only "bad"
00083     // splitters, according to d_se->isGoodSplitter(e)
00084 
00085 //     DebugAssert(!splitter.isNull(),
00086 //              "findSplitter: can't find splitter in non-literal: "
00087 //              + e.toString());
00088     IF_DEBUG(if(!splitter.isNull())
00089              debugger.counter("splitters from decision engine")++);
00090   }
00091   TRACE("splitters verbose", "findSplitter => ", splitter, " }");
00092   return splitter;
00093 }
00094 
00095 
00096 void DecisionEngineDFS::goalSatisfied()
00097 {
00098 }

Generated on Thu Apr 13 16:57:30 2006 for CVC Lite by  doxygen 1.4.4