• Main Page
  • Modules
  • Namespaces
  • Classes
  • Files
  • File List
  • File Members

BipartiteGraphBicoloring/BipartiteGraphCore.h

Go to the documentation of this file.
00001 /************************************************************************************
00002     Copyright (C) 2005-2008 Assefaw H. Gebremedhin, Arijit Tarafdar, Duc Nguyen,
00003     Alex Pothen
00004 
00005     This file is part of ColPack.
00006 
00007     ColPack is free software: you can redistribute it and/or modify
00008     it under the terms of the GNU Lesser General Public License as published
00009     by the Free Software Foundation, either version 3 of the License, or
00010     (at your option) any later version.
00011 
00012     ColPack is distributed in the hope that it will be useful,
00013     but WITHOUT ANY WARRANTY; without even the implied warranty of
00014     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
00015     GNU Lesser General Public License for more details.
00016 
00017     You should have received a copy of the GNU Lesser General Public License
00018     along with ColPack.  If not, see <http://www.gnu.org/licenses/>.
00019 ************************************************************************************/
00020 
00021 using namespace std;
00022 
00023 #ifndef BIPARTITEGRAPHCORE_H
00024 #define BIPARTITEGRAPHCORE_H
00025 
00026 namespace ColPack
00027 {
00033         class BipartiteGraphCore
00034         {
00035         public: //DOCUMENTED
00036                 //Public Function 2108:3108
00038                 int GetRowVertexCount();
00040                 int GetLeftVertexCount();
00041 
00042                 
00043                 //Public Function 2109:3109
00045                 int GetColumnVertexCount();
00047                 int GetRightVertexCount();
00048 
00049                 bool operator==(const BipartiteGraphCore &other) const;
00050 
00051         protected:
00052 
00053                 int m_i_MaximumLeftVertexDegree;
00054                 int m_i_MaximumRightVertexDegree;
00055                 int m_i_MaximumVertexDegree;
00056 
00057                 int m_i_MinimumLeftVertexDegree;
00058                 int m_i_MinimumRightVertexDegree;
00059                 int m_i_MinimumVertexDegree;
00060 
00061                 double m_d_AverageLeftVertexDegree;
00062                 double m_d_AverageRightVertexDegree;
00063                 double m_d_AverageVertexDegree;
00064 
00065                 string m_s_InputFile;
00066 
00067                 vector<int> m_vi_LeftVertices;
00068                 vector<int> m_vi_RightVertices;
00069 
00070                 vector<int> m_vi_Edges;
00071 
00072                 map< int, map<int, int> > m_mimi2_VertexEdgeMap;
00073                 
00074 
00075         public:
00076                 
00077                 //Virtual Function 2100:3100
00078                 virtual ~BipartiteGraphCore(){}
00079                 
00080                 //Virtual Function 2101:3101
00081                 virtual void Initialize() = 0;
00082         
00083                 //Virtual Function 2102:3102
00084                 virtual void Clear();
00085                 
00086                 //Public Function 2103:3103
00087                 string GetInputFile();
00088 
00089 
00090                 //Public Function 2104:3104
00091                 void GetRowVertices(vector<int> &output) const;
00092                 void GetLeftVertices(vector<int> &output) const;
00093                 
00094                 //Public Function 2105:3105
00095                 void GetColumnVertices(vector<int> &output) const;
00096                 void GetRightVertices(vector<int> &output) const;
00097 
00098                 unsigned int GetRowVertices(unsigned int** ip2_RowVertex);
00099                 unsigned int GetColumnIndices(unsigned int** ip2_ColumnIndex);
00100 
00101                 //Public Function 2106:3106
00102                 void GetEdges(vector<int> &output) const;
00103                 
00104                 //Public Function 2107:3107
00105                 void GetVertexEdgeMap(map< int, map<int, int> > &output);
00106 
00107                 
00108                 //Public Function 2110:3110
00109                 int GetEdgeCount();
00110 
00111                 
00112                 //Public Function 2111:3111
00113                 int GetMaximumRowVertexDegree();
00114 
00115                 
00116                 //Public Function 2112:3112
00117                 int GetMaximumColumnVertexDegree();
00118 
00119                 
00120                 //Public Function 2113:3113
00121                 int GetMaximumVertexDegree();
00122 
00123                 
00124                 //Public Function 2114:3114
00125                 int GetMinimumRowVertexDegree();
00126 
00127                 
00128                 //Public Function 2115:3115
00129                 int GetMinimumColumnVertexDegree();
00130 
00131                 
00132                 //Public Function 2116:3116
00133                 int GetMinimumVertexDegree();
00134 
00135                 
00136                 //Public Function 2117:3117
00137                 double GetAverageRowVertexDegree();
00138                 
00139                 //Public Function 2118:3118
00140                 double GetAverageColumnVertexDegree();
00141                 
00142                 //Public Function 2119:3119
00143                 double GetAverageVertexDegree();
00144         };
00145 }
00146 #endif

Generated on Tue Sep 7 2010 15:28:10 for ColPack by  doxygen 1.7.1