|
SNAP Library 2.0, Developer Reference
2013-05-13 16:33:57
SNAP, a general purpose, high performance system for analysis and manipulation of large networks
|
#include <graphcounter.h>

Public Member Functions | |
| TD34GraphCounter (int GraphSz) | |
| void | operator() (const PNGraph &G, const TIntV &sg) |
| int | Len () const |
| int | GetId (const int &i) const |
| uint64 | GetCnt (const int &GraphId) const |
| PNGraph | GetGraph (const int &GraphId) const |
Private Attributes | |
| THash< TInt, TInt > | m_graphMaps |
| THash< TInt, TUInt64 > | m_graphCounters |
| int | m_subGraphSize |
Definition at line 8 of file graphcounter.h.
| TD34GraphCounter::TD34GraphCounter | ( | int | GraphSz | ) |
Definition at line 71 of file graphcounter.cpp.
References THash< TKey, TDat, THashFunc >::AddDat(), TGraphEnumUtils::GetIsoGraphs(), TGraphEnumUtils::GetMinAndGraphIds(), IAssert, TVec< TVal, TSizeTy >::Len(), m_graphCounters, TD3Graph::m_graphIds, TD4Graph::m_graphIds, m_graphMaps, TD3Graph::m_numOfGraphs, TD4Graph::m_numOfGraphs, and m_subGraphSize.
{
IAssert(GraphSz==3 || GraphSz==4);
//
m_subGraphSize = GraphSz;
//
int numOfGraphs = 0;
if(GraphSz==3) numOfGraphs = TD3Graph::m_numOfGraphs;
else if(GraphSz==4) numOfGraphs = TD4Graph::m_numOfGraphs;
//
for(int i=0; i<numOfGraphs; i++) {
int graphId = 0;
if(GraphSz==3) graphId = TD3Graph::m_graphIds[i];
else if(GraphSz==4) graphId = TD4Graph::m_graphIds[i];
//
TVec<PNGraph> isoG;
TGraphEnumUtils::GetIsoGraphs(graphId, GraphSz, isoG);
//
TVec<uint64> graphIds(isoG.Len());
uint64 minGraphId = TGraphEnumUtils::GetMinAndGraphIds(isoG, graphIds);
for(int j=0; j<graphIds.Len(); j++)
m_graphMaps.AddDat((int)graphIds[j], (int)minGraphId);
//
m_graphCounters.AddDat((int)minGraphId, 0);
}
}

| uint64 TD34GraphCounter::GetCnt | ( | const int & | GraphId | ) | const [inline] |
Definition at line 16 of file graphcounter.h.
References THash< TKey, TDat, THashFunc >::GetDat(), and m_graphCounters.
{ return m_graphCounters.GetDat(GraphId); }

| PNGraph TD34GraphCounter::GetGraph | ( | const int & | GraphId | ) | const |
Definition at line 107 of file graphcounter.cpp.
References m_subGraphSize, and TNGraph::New().
{
PNGraph G = TNGraph::New();
TGraphEnumUtils::GetGraph(GraphId, m_subGraphSize, G);
return G;
}

| int TD34GraphCounter::GetId | ( | const int & | i | ) | const [inline] |
Definition at line 15 of file graphcounter.h.
References THash< TKey, TDat, THashFunc >::GetKey(), and m_graphCounters.
{ return m_graphCounters.GetKey(i); }

| int TD34GraphCounter::Len | ( | ) | const [inline] |
Definition at line 14 of file graphcounter.h.
References THash< TKey, TDat, THashFunc >::Len(), and m_graphCounters.
{ return m_graphCounters.Len(); }

Definition at line 96 of file graphcounter.cpp.
References THash< TKey, TDat, THashFunc >::GetDat(), TD3Graph::getId(), TD4Graph::getId(), THash< TKey, TDat, THashFunc >::IsKey(), m_graphCounters, m_graphMaps, and m_subGraphSize.
{
int graphId = 0;
if(m_subGraphSize==3) graphId = TD3Graph::getId(G, sg);
else if(m_subGraphSize==4) graphId = TD4Graph::getId(G, sg);
//
if(!m_graphMaps.IsKey(graphId)) { printf("This graph does not exist: %d\n", graphId); getchar(); return; }
int minGraphId = m_graphMaps.GetDat(graphId);
//
m_graphCounters.GetDat(minGraphId)++;
}

THash<TInt,TUInt64> TD34GraphCounter::m_graphCounters [private] |
Definition at line 20 of file graphcounter.h.
Referenced by GetCnt(), GetId(), Len(), operator()(), and TD34GraphCounter().
THash<TInt,TInt> TD34GraphCounter::m_graphMaps [private] |
Definition at line 19 of file graphcounter.h.
Referenced by operator()(), and TD34GraphCounter().
int TD34GraphCounter::m_subGraphSize [private] |
Definition at line 21 of file graphcounter.h.
Referenced by GetGraph(), operator()(), and TD34GraphCounter().