angel  mercurial changeset:
src/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.

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

Namespaces

namespace  angel
 

Namespace for the complete library.


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)
lmmd_vertex_t angel::lmmd_vertex (1.0)
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.
lmmd_edge_t angel::lmmd_edge (1.0)
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

minimal_distance_edge_t angel::minimal_distance_edge
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines