#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"
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. |