Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021 #ifndef GRAPHCOLORINGINTERFACE_H
00022 #define GRAPHCOLORINGINTERFACE_H
00023
00024 using namespace std;
00025
00026 namespace ColPack
00027 {
00031 class GraphColoringInterface : public GraphColoring
00032 {
00033 public:
00034
00036
00071 GraphColoringInterface(int i_type, ...);
00072
00074
00101 int Coloring(string s_OrderingVariant = "NATURAL", string s_ColoringVariant = "DISTANCE_ONE");
00102
00104
00127 void GenerateSeedHessian(double*** dp3_seed, int *ip1_SeedRowCount, int *ip1_SeedColumnCount, string s_OrderingVariant="NATURAL", string s_ColoringVariant="STAR");
00128
00129
00131
00134 void GenerateSeedHessian_unmanaged(double*** dp3_seed, int *ip1_SeedRowCount, int *ip1_SeedColumnCount, string s_OrderingVariant="NATURAL", string s_ColoringVariant="STAR");
00135
00136 double** GetSeedMatrix(int* ip1_SeedRowCount, int* ip1_SeedColumnCount);
00137
00138 void GetOrderedVertices(vector<int> &output);
00139
00140 int CalculateVertexColorClasses();
00141
00142
00143 ~GraphColoringInterface();
00144
00145
00146 virtual void Clear();
00147
00148
00149 int DistanceOneColoring(string s_OrderingVariant);
00150
00151
00152 int DistanceTwoColoring(string s_OrderingVariant);
00153
00154
00155 int NaiveStarColoring(string s_OrderingVariant);
00156
00157
00158 int RestrictedStarColoring(string s_OrderingVariant);
00159
00160
00161 int StarColoring(string s_OrderingVariant);
00162
00163
00164 int AcyclicColoring(string s_OrderingVariant);
00165
00166 int AcyclicColoring_ForIndirectRecovery(string s_OrderingVariant);
00167
00168
00169 int TriangularColoring(string s_OrderingVariant);
00170
00171
00172 static void PrintInducedVertexDegrees(int SetID, int i_HighestInducedVertexDegree, vector< list<int> > &vli_GroupedInducedVertexDegrees);
00173
00174 static void PrintVertexEdgeMap(vector<int> &vi_Vertices, vector<int> &vi_Edges , map< int, map< int, int> > &mimi2_VertexEdgeMap);
00175
00176 private:
00177
00178 Timer m_T_Timer;
00179 };
00180 }
00181 #endif