heuristics.cpp File Reference

#include <limits.h>
#include <algorithm>
#include "angel/include/heuristics.hpp"
#include "angel/include/angel_exceptions.hpp"
#include "angel/include/angel_tools.hpp"
#include "angel/include/reroutings.hpp"

Include dependency graph for heuristics.cpp:

Go to the source code of this file.

Namespaces

namespace  angel

Classes

struct  angel::lmv_op_t
struct  angel::lrm_op_t
struct  angel::fiv_op_t
struct  angel::markowitz_enlargement_front_t
struct  angel::markowitz_enlargement_back_t
struct  angel::lmmdv_op_t
struct  angel::momrv_op_t
struct  angel::oplrv_op_t
struct  angel::lme_op_t
struct  angel::lmmde_op_t
struct  angel::momre_op_t
struct  angel::diste_op_t
struct  angel::lmf_op_t
class  angel::new_pik_t
struct  angel::source_not_independent_t
class  angel::new_iks_t
struct  angel::target_not_dependent_t
struct  angel::momrf_op_t
struct  angel::distf_op_t

Functions

int angel::new_in_edges (c_graph_t::edge_t e, const c_graph_t &cg)
int angel::new_out_edges (c_graph_t::edge_t e, const c_graph_t &cg)
int angel::markowitz_enlargement_front (c_graph_t::edge_t e, const c_graph_t &cg, bool eliminate_parallel_edges=false)
int angel::markowitz_enlargement_front (c_graph_t::edge_t e, c_graph_t::edge_t e2, const c_graph_t &cg)
int angel::markowitz_enlargement_back (c_graph_t::edge_t e, const c_graph_t &cg, bool eliminate_parallel_edges=false)
int angel::markowitz_enlargement_back (c_graph_t::edge_t e, c_graph_t::edge_t e2, const c_graph_t &cg)
int angel::markowitz_enlargement_all_neighbors (c_graph_t::vertex_t v, const c_graph_t &cg)
int angel::oplr_face (c_graph_t::edge_t e1, c_graph_t::edge_t e2, const vector< int > &vni, const vector< int > &vli, const vector< int > &vno, const vector< int > &vlo, const c_graph_t &cg)
int angel::oplr_edge_front (c_graph_t::edge_t e, const vector< int > &vni, const vector< int > &vli, const vector< int > &vno, const vector< int > &vlo, const c_graph_t &cg)
int angel::oplr_edge_back (c_graph_t::edge_t e, const vector< int > &vni, const vector< int > &vli, const vector< int > &vno, const vector< int > &vlo, const c_graph_t &cg)
int angel::forward_mode_edge_f (const vector< c_graph_t::edge_t > &ev1, bool front, const c_graph_t &cg, vector< c_graph_t::edge_t > &ev2)
 Forward mode in edge elimination.
double angel::fme_obj (edge_bool_t eb, const c_graph_t &cg)
int angel::reverse_mode_edge_f (const vector< c_graph_t::edge_t > &ev1, bool front, const c_graph_t &cg, vector< c_graph_t::edge_t > &ev2)
 Reverse mode in edge elimination.
double angel::rme_obj (edge_bool_t eb, const c_graph_t &cg)
int angel::lowest_markowitz_edge_f (const vector< c_graph_t::edge_t > &ev1, bool front, const c_graph_t &cg, vector< c_graph_t::edge_t > &ev2)
 Lowest Markowitz in edge elimination.
int angel::lowest_relative_markowitz_edge_f (const vector< c_graph_t::edge_t > &ev1, bool front, const c_graph_t &cg, vector< c_graph_t::edge_t > &ev2)
 Lowest relative Markowitz in edge elimination.
int angel::fill_in_front (c_graph_t::edge_t e, const c_graph_t &cg)
int angel::fill_in_back (c_graph_t::edge_t e, const c_graph_t &cg)
int angel::lowest_fill_in_edge_f (const vector< c_graph_t::edge_t > &ev1, bool front, const c_graph_t &cg, vector< c_graph_t::edge_t > &ev2)
 Lowest Fill-in in edge elimination.
int angel::lmmd_edge_front (c_graph_t::edge_t e, double w, const c_graph_t &cg)
int angel::lmmd_edge_back (c_graph_t::edge_t e, double w, const c_graph_t &cg)
int angel::momr_edge_front (c_graph_t::edge_t e, const c_graph_t &cg)
int angel::momr_edge_back (c_graph_t::edge_t e, const c_graph_t &cg)
int angel::momr_edge_f (const vector< c_graph_t::edge_t > &ev1, bool front, const c_graph_t &cg, vector< c_graph_t::edge_t > &ev2)
 Maximal overall Markowitz reduction in edge elimination.
int angel::moplr_edge (const vector< c_graph_t::edge_t > &ev1, bool front, const c_graph_t &cg, vector< c_graph_t::edge_t > &ev2)
 Maximal overall path length reduction in mixed edge elimination.
double angel::fmf_obj (line_graph_t::face_t f, const line_graph_t &lg)
void angel::markowitz_on_line_graph (const line_graph_t &lg, vector< int > &mdegree)
int angel::edge_elim_effect (const edge_bool_t be, const c_graph_t &angelLCG, const AwarenessLevel::AwarenessLevel_E ourAwarenessLevel)
int angel::edge_elim_effect (const EdgeElim ee, const c_graph_t &angelLCG, const AwarenessLevel::AwarenessLevel_E ourAwarenessLevel)
bool angel::maintaining_edge_eliminations (const vector< EdgeElim > &bev1, const c_graph_t &angelLCG, const AwarenessLevel::AwarenessLevel_E ourAwarenessLevel, vector< EdgeElim > &bev2)
bool angel::reducing_edge_eliminations (const vector< EdgeElim > &bev1, const c_graph_t &angelLCG, const AwarenessLevel::AwarenessLevel_E ourAwarenessLevel, vector< EdgeElim > &bev2)
bool angel::refill_avoiding_edge_eliminations (const vector< EdgeElim > &bev1, c_graph_t &angelLCG, const refillDependenceMap_t refillDependences, vector< EdgeElim > &bev2)
 Filter that selects edge elimination targets whose refill dependences (a possibly empty set of vertices) have been met (meaning that there is no alternate path for the edge through the vertex).
bool angel::rerouting_considerate_edge_eliminations (const vector< EdgeElim > &bev, const c_graph_t &angelLCG, const std::vector< Transformation > &transformationsPerformedV, vector< EdgeElim > &reroutingConsiderateEdgeElimsV)
unsigned int angel::lowestMarkowitzEdgeElim (const vector< EdgeElim > &inEEV, const c_graph_t &angelLCG, vector< EdgeElim > &outEEV)
bool angel::reverseModeEdgeElim (const vector< EdgeElim > &inEEV, const c_graph_t &angelLCG, vector< EdgeElim > &outEEV)
size_t angel::noncyclicReroutings (const vector< Rerouting > &erv, const std::vector< Transformation > &transformationsPerformedV, const c_graph_t &angelLCG, vector< Rerouting > &noncyclicReroutingsV)
bool angel::reducing_reroutings (const vector< Rerouting > &erv, const c_graph_t &angelLCG, const AwarenessLevel::AwarenessLevel_E ourAwarenessLevel, vector< Rerouting > &reducingReroutingsV)
int angel::transformation_effect (const Transformation t, const c_graph_t &angelLCG, const AwarenessLevel::AwarenessLevel_E ourAwarenessLevel)
bool angel::all_viable_transformations (c_graph_t &angelLCG, const std::vector< Transformation > &transformationsPerformedV, vector< Transformation > &allViableTransformationsV)
bool angel::maintaining_transformations (const vector< Transformation > &tv, const c_graph_t &angelLCG, const AwarenessLevel::AwarenessLevel_E ourAwarenessLevel, vector< Transformation > &maintainingTransformationsV)
bool angel::reducing_transformations (const vector< Transformation > &tv, const c_graph_t &angelLCG, const AwarenessLevel::AwarenessLevel_E ourAwarenessLevel, vector< Transformation > &reducingTransformationsV)
bool angel::refill_avoiding_transformations (const vector< Transformation > &tv, c_graph_t &angelLCG, const AwarenessLevel::AwarenessLevel_E ourAwarenessLevel, const refillDependenceMap_t &refillDependences, vector< Transformation > &refillAvoidingTransformationsV)
bool angel::rerouting_considerate_transformations (const vector< Transformation > &tv, const c_graph_t &angelLCG, const std::vector< Transformation > &transformationsPerformedV, vector< Transformation > &reroutingConsiderateTransformationsV)
bool angel::lowest_markowitz_transformations (const vector< Transformation > &tv, const c_graph_t &angelLCG, vector< Transformation > &lowestMarkowitzTransformationsV)
bool angel::reverse_mode_transformations (const vector< Transformation > &tv, const c_graph_t &angelLCG, vector< Transformation > &reverseModeTransformationsV)

Variables

forward_mode_vertex_t angel::forward_mode_vertex
 Forward mode in vertex elimination.
reverse_mode_vertex_t angel::reverse_mode_vertex
 Reverse mode in vertex elimination.
lowest_markowitz_vertex_t angel::lowest_markowitz_vertex
 Lowest Markowitz degree first in vertex elimination.
lowest_relative_markowitz_vertex_t angel::lowest_relative_markowitz_vertex
 Lowest relative Markowitz degree first in vertex elimination.
lowest_fill_in_vertex_t angel::lowest_fill_in_vertex
 Lowest fill-in in vertex elimination.
lmmd_vertex_t angel::lmmd_vertex (1.0)
 Predefined object of lmmd_vertex_t with weight=1.0.
momr_vertex_t angel::momr_vertex
 Instance of momr_vertex_t, can be used as a function and an argument.
moplr_vertex_t angel::moplr_vertex
 Maximal overall path length reduction in vertex elimination.
forward_mode_edge_t angel::forward_mode_edge
 Forward mode in edge elimination (mixed front and back elimination).
reverse_mode_edge_t angel::reverse_mode_edge
 Reverse mode in edge elimination (mixed front and back elimination).
lowest_markowitz_edge_t angel::lowest_markowitz_edge
 Lowest Markowitz in edge elimination (mixed front and back elimination).
lowest_relative_markowitz_edge_t angel::lowest_relative_markowitz_edge
 Lowest relative Markowitz in edge elimination (mixed front and back elimination).
lmmd_edge_t angel::lmmd_edge (1.0)
 Predefined object of lmmd_edge_t with weight=1.0.
momr_edge_t angel::momr_edge
 Maximal overall Markowitz reduction in mixed edge elimination.
minimal_distance_edge_t angel::minimal_distance_edge
forward_mode_face_t angel::forward_mode_face
 Forward mode in face elimination.
reverse_mode_face_t angel::reverse_mode_face
 Reverse mode in face elimination.
reverse_mode_face_whole_vertex_t angel::reverse_mode_face_whole_vertex
 Reverse mode emulating vertex elimination with face eliminations.
momr_face_t angel::momr_face
 Maximal overall Markowitz degree reduction in face elimination.


Generated on Wed Mar 11 10:33:23 2009 for angel by  doxygen 1.5.3