angel  mercurial changeset:
xaif_interface.hpp
Go to the documentation of this file.
00001 // $Id: xaif_interface.hpp,v 1.7 2004/10/16 04:18:17 jean_utke Exp $
00002 /*
00003 #############################################################
00004 # This file is part of angel released under the BSD license #
00005 # The full COPYRIGHT notice can be found in the top         #
00006 # level directory of the angel distribution                 #
00007 #############################################################
00008 */
00009 
00010 
00011 #ifndef         _xaif_interface_include_
00012 #define         _xaif_interface_include_
00013 
00014 #ifdef USEXAIFBOOSTER
00015 
00016 #include<list>
00017 
00018 #include "angel_types.hpp"
00019 
00020 #include "xaifBooster/algorithms/CrossCountryInterface/inc/EliminationException.hpp"
00021 #include "xaifBooster/algorithms/CrossCountryInterface/inc/Elimination.hpp"
00022 
00023 namespace angel {
00024 
00026   bool isTrivialEdge(const c_graph_t::edge_t& e,
00027                      c_graph_t& theAngelLCG,
00028                      const xaifBoosterCrossCountryInterface::AwarenessLevel::AwarenessLevel_E ourAwarenessLevel);
00029 
00031   void assessPairElim(const c_graph_t::edge_t& e1,
00032                       const c_graph_t::edge_t& e2,
00033                       c_graph_t& theAngelLCG,
00034                       const xaifBoosterCrossCountryInterface::AwarenessLevel::AwarenessLevel_E ourAwarenessLevel,
00035                       unsigned int& cost,
00036                       int& totalEdgecountChange,
00037                       int& nontrivialEdgecountChange);
00038 
00040   void assessFrontEdgeElim(const c_graph_t::edge_t& e,
00041                            c_graph_t& theAngelLCG,
00042                            const xaifBoosterCrossCountryInterface::AwarenessLevel::AwarenessLevel_E ourAwarenessLevel,
00043                            unsigned int& cost,
00044                            int& totalEdgecountChange,
00045                            int& nontrivialEdgecountChange);
00046 
00048   void assessBackEdgeElim(const c_graph_t::edge_t& e,
00049                           c_graph_t& theAngelLCG,
00050                           const xaifBoosterCrossCountryInterface::AwarenessLevel::AwarenessLevel_E ourAwarenessLevel,
00051                           unsigned int& cost,
00052                           int& totalEdgecountChange,
00053                           int& nontrivialEdgecountChange);
00054 
00060   void assessEdgeElim(const EdgeElim& anEdgeElim,
00061                       c_graph_t& theAngelLCG,
00062                       const xaifBoosterCrossCountryInterface::AwarenessLevel::AwarenessLevel_E ourAwarenessLevel,
00063                       unsigned int& cost,
00064                       int& totalEdgecountChange,
00065                       int& nontrivialEdgecountChange);
00066 
00073   void postProcessRemainderGraph(c_graph_t& theAngelLCG,
00074                                  xaifBoosterCrossCountryInterface::JacobianAccumulationExpressionList& theJAEList,
00075                                  std::list<EdgeRef_t>& edge_ref_list,
00076                                  const xaifBoosterCrossCountryInterface::AwarenessLevel::AwarenessLevel_E ourAwarenessLevel);
00077 
00078 } // end namespace angel
00079 
00080 #endif // USEXAIFBOOSTER
00081 
00082 #endif  // _xaif_interface_include_
00083 
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines