00001
00002
00003 #ifndef __EG_KP_PAIRS__
00004 #define __EG_KP_PAIRS__
00005 #include "eg_dijkstra.h"
00006 #include "eg_dijkstra_app.h"
00007 #include "eg_dgraph.h"
00008 #include "eg_greedytypes.h"
00009 #include "eg_greedykp.h"
00010
00011
00029 int EGgenerateInternalPairs (EGgreedyData_t*const data,
00030 EGdkdomino_t*const zerodom,
00031 const unsigned int orientation,
00032 EGlist_t*const pairs,
00033 const unsigned max_pairs,
00034 double const percentage,
00035 unsigned char*const node_mark,
00036 unsigned char*const edge_mark,
00037 EGdGraphNode_t**const dc_nodes);
00038
00039
00041 void EGinternalPairsClear(void*pair,EGmemPool_t*mem);
00042
00043
00045 void EGfreeInternalPairs(void*pair,EGmemPool_t*mem);
00046
00047
00062 int EGgetCutNodes(EGgreedyData_t*const data,
00063 EGdualCut_t*const dualcut,
00064 const unsigned int orientation,
00065 int*const cutsz,
00066 int**const cutnodes,
00067 unsigned char*const node_mark,
00068 unsigned char*const edge_mark);
00069
00070
00086 int EGgetANodes(EGgreedyData_t*const data,
00087 EGdkdomino_t*const kdom,
00088 int unsigned const k,
00089 int*const cutsz,
00090 int**const cutnodes,
00091 unsigned char*const node_mark,
00092 unsigned char*const edge_mark,
00093 EGdGraphEdge_t**const dc_nodes);
00094
00095
00107 int EGgetOrientation( EGgreedyData_t*const data,
00108 EGdualCut_t*const dualcut,
00109 int unsigned const pathsz,
00110 EGdGraphEdge_t**const path,
00111 unsigned int*const orientation,
00112 unsigned char*const node_mark,
00113 unsigned char*const edge_mark);
00114
00115
00126 int EGgetDualCut( EGgreedyData_t*const data,
00127 EGdualCut_t**const dualcut,
00128 const int pset_sz,
00129 const int*const pset,
00130 unsigned char*const node_mark,
00131 unsigned char*const edge_mark,
00132 EGdGraphEdge_t**const dc_edges);
00133
00134
00136 #define KPPAIRS_VERBOSE 100
00137
00138
00139
00140 #endif