SNAP Library 2.3, Developer Reference  2014-06-16 11:58:46
SNAP, a general purpose, high performance system for analysis and manipulation of large networks
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
TSnap::TSnapDetail Namespace Reference

Classes

class  TCNMQMatrix
 
struct  TConvertSubGraph
 
struct  TConvertSubGraph< POutGraph, PInGraph, false >
 
struct  TDelSelfEdges
 
struct  TDelSelfEdges< PGraph, true >
 
struct  TGetSubGraph
 
struct  TGetSubGraph< PGraph, false >
 

Functions

double CalcEffDiam (const TIntFltKdV &DistNbrsCdfV, const double &Percentile=0.9)
 Helper function for computing a given Percentile of a (unnormalized) cumulative distribution function. More...
 
double CalcEffDiam (const TFltPrV &DistNbrsCdfV, const double &Percentile=0.9)
 Helper function for computing a given Percentile of a (unnormalized) cumulative distribution function. More...
 
double CalcEffDiamPdf (const TIntFltKdV &DistNbrsPdfV, const double &Percentile=0.9)
 Helper function for computing a given Percentile of a (unnormalized) probability distribution function. More...
 
double CalcEffDiamPdf (const TFltPrV &DistNbrsPdfV, const double &Percentile=0.9)
 Helper function for computing a given Percentile of a (unnormalized) probability distribution function. More...
 
double CalcAvgDiamPdf (const TIntFltKdV &DistNbrsPdfV)
 Helper function for computing the mean of a (unnormalized) probability distribution function. More...
 
double CalcAvgDiamPdf (const TFltPrV &DistNbrsPdfV)
 Helper function for computing the mean of a (unnormalized) probability distribution function. More...
 
void CmtyGirvanNewmanStep (PUNGraph &Graph, TIntV &Cmty1, TIntV &Cmty2)
 A single step of Girvan-Newman clustering procedure. More...
 
double _GirvanNewmanGetModularity (const PUNGraph &G, const TIntH &OutDegH, const int &OrigEdges, TCnComV &CnComV)
 
TIntFltH MapEquationNew2Modules (PUNGraph &Graph, TIntH &Module, TIntFltH &Qi, int a, int b)
 
float Equation (PUNGraph &Graph, TIntFltH &PAlpha, float &SumPAlphaLogPAlpha, TIntFltH &Qi)
 
void GetSphereDev (const int &Dim, TRnd &Rnd, TFltV &ValV)
 Sample random point from the surface of a Dim-dimensional unit sphere. More...
 
template<class PGraph >
TIntPr GetRndEdgeNonAdjNode (const PGraph &Graph, int NId1, int NId2)
 Returns a random edge in a graph Graph where the edge does not touch nodes NId1 and NId2. More...
 
double GetInvParticipRatEig (const TFltV &EigVec)
 
void GVizDoLayout (const TStr &GraphInFNm, TStr OutFNm, const TGVizLayout &Layout)
 Runs GraphViz layout engine over a graph saved in the file GraphInFNm with output saved to OutFNm. More...
 
TStr GVizGetLayoutStr (const TGVizLayout &Layout)
 Generates the GraphViz command string based on the selected Layout engine. More...
 

Function Documentation

double TSnap::TSnapDetail::_GirvanNewmanGetModularity ( const PUNGraph G,
const TIntH OutDegH,
const int &  OrigEdges,
TCnComV CnComV 
)

Definition at line 36 of file cmty.cpp.

References THash< TKey, TDat, THashFunc >::GetDat(), TUNGraph::TNodeI::GetOutDeg(), TSnap::GetWccs(), and TVec< TVal, TSizeTy >::Len().

Referenced by TSnap::CommunityGirvanNewman().

36  {
37  TSnap::GetWccs(G, CnComV); // get communities
38  double Mod = 0;
39  for (int c = 0; c < CnComV.Len(); c++) {
40  const TIntV& NIdV = CnComV[c]();
41  double EIn=0, EEIn=0;
42  for (int i = 0; i < NIdV.Len(); i++) {
43  TUNGraph::TNodeI NI = G->GetNI(NIdV[i]);
44  EIn += NI.GetOutDeg();
45  EEIn += OutDegH.GetDat(NIdV[i]);
46  }
47  Mod += (EIn-EEIn*EEIn/(2.0*OrigEdges));
48  }
49  if (Mod == 0) { return 0; }
50  else { return Mod/(2.0*OrigEdges); }
51 }
TSizeTy Len() const
Returns the number of elements in the vector.
Definition: ds.h:535
Node iterator. Only forward iteration (operator++) is supported.
Definition: graph.h:63
const TDat & GetDat(const TKey &Key) const
Definition: hash.h:220
int GetOutDeg() const
Returns out-degree of the current node (returns same as value GetDeg() since the graph is undirected)...
Definition: graph.h:86
TNodeI GetNI(const int &NId) const
Returns an iterator referring to the node of ID NId in the graph.
Definition: graph.h:205
void GetWccs(const PGraph &Graph, TCnComV &CnComV)
Returns all weakly connected components in a Graph.
Definition: cncom.h:376

Here is the call graph for this function:

Here is the caller graph for this function:

double TSnap::TSnapDetail::CalcAvgDiamPdf ( const TIntFltKdV DistNbrsPdfV)

Helper function for computing the mean of a (unnormalized) probability distribution function.

Definition at line 41 of file anf.cpp.

References TVec< TVal, TSizeTy >::Len().

Referenced by TSnap::PlotShortPathDistr().

41  {
42  double Paths=0, SumLen=0;
43  for (int i = 0; i < DistNbrsPdfV.Len(); i++) {
44  SumLen += DistNbrsPdfV[i].Key * DistNbrsPdfV[i].Dat;
45  Paths += DistNbrsPdfV[i].Dat;
46  }
47  return SumLen/Paths;
48 }
TSizeTy Len() const
Returns the number of elements in the vector.
Definition: ds.h:535

Here is the call graph for this function:

Here is the caller graph for this function:

double TSnap::TSnapDetail::CalcAvgDiamPdf ( const TFltPrV DistNbrsPdfV)

Helper function for computing the mean of a (unnormalized) probability distribution function.

Definition at line 50 of file anf.cpp.

References TVec< TVal, TSizeTy >::Len().

50  {
51  double Paths=0, SumLen=0;
52  for (int i = 0; i < DistNbrsPdfV.Len(); i++) {
53  SumLen += DistNbrsPdfV[i].Val1 * DistNbrsPdfV[i].Val2;
54  Paths += DistNbrsPdfV[i].Val2;
55  }
56  return SumLen/Paths;
57 }
TSizeTy Len() const
Returns the number of elements in the vector.
Definition: ds.h:535

Here is the call graph for this function:

double TSnap::TSnapDetail::CalcEffDiam ( const TIntFltKdV DistNbrsCdfV,
const double &  Percentile 
)

Helper function for computing a given Percentile of a (unnormalized) cumulative distribution function.

Definition at line 7 of file anf.cpp.

References TVec< TVal, TSizeTy >::Last(), and TVec< TVal, TSizeTy >::Len().

Referenced by CalcEffDiam(), CalcEffDiamPdf(), TSnap::GetAnfEffDiam(), TSnap::PlotHops(), and TGStat::TakeDiam().

7  {
8  const double EffPairs = Percentile * DistNbrsCdfV.Last().Dat;
9  int ValN;
10  for (ValN = 0; ValN < DistNbrsCdfV.Len(); ValN++) {
11  if (DistNbrsCdfV[ValN].Dat() > EffPairs) { break; }
12  }
13  if (ValN >= DistNbrsCdfV.Len()) return DistNbrsCdfV.Last().Key;
14  if (ValN == 0) return 1;
15  // interpolate
16  const double DeltaNbrs = DistNbrsCdfV[ValN].Dat - DistNbrsCdfV[ValN-1].Dat;
17  if (DeltaNbrs == 0) return DistNbrsCdfV[ValN].Key;
18  return DistNbrsCdfV[ValN-1].Key + (EffPairs - DistNbrsCdfV[ValN-1].Dat)/DeltaNbrs;
19 }
TSizeTy Len() const
Returns the number of elements in the vector.
Definition: ds.h:535
const TVal & Last() const
Returns a reference to the last element of the vector.
Definition: ds.h:539

Here is the call graph for this function:

Here is the caller graph for this function:

double TSnap::TSnapDetail::CalcEffDiam ( const TFltPrV DistNbrsCdfV,
const double &  Percentile 
)

Helper function for computing a given Percentile of a (unnormalized) cumulative distribution function.

Definition at line 21 of file anf.cpp.

References TVec< TVal, TSizeTy >::Add(), CalcEffDiam(), and TVec< TVal, TSizeTy >::Len().

21  {
22  TIntFltKdV KdV(DistNbrsCdfV.Len(), 0);
23  for (int i = 0; i < DistNbrsCdfV.Len(); i++) {
24  KdV.Add(TIntFltKd(int(DistNbrsCdfV[i].Val1()), DistNbrsCdfV[i].Val2));
25  }
26  return CalcEffDiam(KdV, Percentile);
27 }
TSizeTy Len() const
Returns the number of elements in the vector.
Definition: ds.h:535
TKeyDat< TInt, TFlt > TIntFltKd
Definition: ds.h:371
double CalcEffDiam(const TFltPrV &DistNbrsCdfV, const double &Percentile)
Helper function for computing a given Percentile of a (unnormalized) cumulative distribution function...
Definition: anf.cpp:21
TSizeTy Add()
Adds a new element at the end of the vector, after its current last element.
Definition: ds.h:559
Vector is a sequence TVal objects representing an array that can change in size.
Definition: ds.h:420

Here is the call graph for this function:

double TSnap::TSnapDetail::CalcEffDiamPdf ( const TIntFltKdV DistNbrsPdfV,
const double &  Percentile 
)

Helper function for computing a given Percentile of a (unnormalized) probability distribution function.

Definition at line 29 of file anf.cpp.

References CalcEffDiam(), and TGUtil::GetCdf().

Referenced by TSnap::GetBfsEffDiam(), and TSnap::PlotShortPathDistr().

29  {
30  TIntFltKdV CdfV;
31  TGUtil::GetCdf(DistNbrsPdfV, CdfV);
32  return CalcEffDiam(CdfV, Percentile);
33 }
static void GetCdf(const TIntPrV &PdfV, TIntPrV &CdfV)
Definition: util.cpp:3
double CalcEffDiam(const TFltPrV &DistNbrsCdfV, const double &Percentile)
Helper function for computing a given Percentile of a (unnormalized) cumulative distribution function...
Definition: anf.cpp:21
Vector is a sequence TVal objects representing an array that can change in size.
Definition: ds.h:420

Here is the call graph for this function:

Here is the caller graph for this function:

double TSnap::TSnapDetail::CalcEffDiamPdf ( const TFltPrV DistNbrsPdfV,
const double &  Percentile 
)

Helper function for computing a given Percentile of a (unnormalized) probability distribution function.

Definition at line 35 of file anf.cpp.

References CalcEffDiam(), and TGUtil::GetCdf().

35  {
36  TFltPrV CdfV;
37  TGUtil::GetCdf(DistNbrsPdfV, CdfV);
38  return CalcEffDiam(CdfV, Percentile);
39 }
static void GetCdf(const TIntPrV &PdfV, TIntPrV &CdfV)
Definition: util.cpp:3
double CalcEffDiam(const TFltPrV &DistNbrsCdfV, const double &Percentile)
Helper function for computing a given Percentile of a (unnormalized) cumulative distribution function...
Definition: anf.cpp:21

Here is the call graph for this function:

void TSnap::TSnapDetail::CmtyGirvanNewmanStep ( PUNGraph Graph,
TIntV Cmty1,
TIntV Cmty2 
)

A single step of Girvan-Newman clustering procedure.

Definition at line 14 of file cmty.cpp.

References TVec< TVal, TSizeTy >::Clr(), TBreathFS< PGraph >::DoBfs(), THash< TKey, TDat, THashFunc >::Empty(), TSnap::GetBetweennessCentr(), TBreathFS< PGraph >::GetHops(), THash< TKey, TDat, THashFunc >::GetKey(), TSnap::GetNodeWcc(), TInt::Mx, THash< TKey, TDat, THashFunc >::SortByDat(), TPair< TVal1, TVal2 >::Val1, and TPair< TVal1, TVal2 >::Val2.

Referenced by TSnap::CommunityGirvanNewman().

14  {
15  TIntPrFltH BtwEH;
16  TBreathFS<PUNGraph> BFS(Graph);
17  Cmty1.Clr(false); Cmty2.Clr(false);
18  while (true) {
19  TSnap::GetBetweennessCentr(Graph, BtwEH);
20  BtwEH.SortByDat(false);
21  if (BtwEH.Empty()) { return; }
22  const int NId1 = BtwEH.GetKey(0).Val1;
23  const int NId2 = BtwEH.GetKey(0).Val2;
24  Graph->DelEdge(NId1, NId2);
25  BFS.DoBfs(NId1, true, false, NId2, TInt::Mx);
26  if (BFS.GetHops(NId1, NId2) == -1) { // two components
27  TSnap::GetNodeWcc(Graph, NId1, Cmty1);
28  TSnap::GetNodeWcc(Graph, NId2, Cmty2);
29  return;
30  }
31  }
32 }
void GetNodeWcc(const PGraph &Graph, const int &NId, TIntV &CnCom)
Returns (via output parameter CnCom) all nodes that are in the same connected component as node NId...
Definition: cncom.h:277
static const int Mx
Definition: dt.h:1046
void GetBetweennessCentr(const PUNGraph &Graph, const TIntV &BtwNIdV, TIntFltH &NodeBtwH, const bool &DoNodeCent, TIntPrFltH &EdgeBtwH, const bool &DoEdgeCent)
Definition: centr.cpp:28
bool Empty() const
Definition: hash.h:185
void Clr(const bool &DoDel=true, const TSizeTy &NoDelLim=-1)
Clears the contents of the vector.
Definition: ds.h:953
void DelEdge(const int &SrcNId, const int &DstNId)
Deletes an edge between node IDs SrcNId and DstNId from the graph.
Definition: graph.cpp:95
TVal1 Val1
Definition: ds.h:34
TVal2 Val2
Definition: ds.h:35
const TKey & GetKey(const int &KeyId) const
Definition: hash.h:210
void SortByDat(const bool &Asc=true)
Definition: hash.h:246

Here is the call graph for this function:

Here is the caller graph for this function:

float TSnap::TSnapDetail::Equation ( PUNGraph Graph,
TIntFltH PAlpha,
float &  SumPAlphaLogPAlpha,
TIntFltH Qi 
)

Definition at line 84 of file cmty.cpp.

References THash< TKey, TDat, THashFunc >::Len().

Referenced by TSnap::Infomap().

84  {
85  float SumPAlpha = 1.0, SumQi = 0.0, SumQiLogQi=0.0, SumQiSumPAlphaLogQiSumPAlpha = 0.0;
86  for (int i=0; i<Qi.Len(); i++) {
87  SumQi += Qi[i];
88  SumQiLogQi += Qi[i]*log(Qi[i]);
89  SumQiSumPAlphaLogQiSumPAlpha += (Qi[i]+SumPAlpha)*log(Qi[i]+SumPAlpha);
90  }
91  return (SumQi*log(SumQi)-2*SumQiLogQi-SumPAlphaLogPAlpha+SumQiSumPAlphaLogQiSumPAlpha);
92 }
int Len() const
Definition: hash.h:186

Here is the call graph for this function:

Here is the caller graph for this function:

double TSnap::TSnapDetail::GetInvParticipRatEig ( const TFltV EigVec)

Definition at line 401 of file gsvd.cpp.

References TVec< TVal, TSizeTy >::Len().

Referenced by TSnap::GetInvParticipRat().

401  {
402  double Sum2=0.0, Sum4=0.0;
403  for (int i = 0; i < EigVec.Len(); i++) {
404  Sum2 += EigVec[i]*EigVec[i];
405  Sum4 += pow(EigVec[i].Val, 4.0);
406  }
407  return Sum4/(Sum2*Sum2);
408 }
TSizeTy Len() const
Returns the number of elements in the vector.
Definition: ds.h:535

Here is the call graph for this function:

Here is the caller graph for this function:

template<class PGraph >
TIntPr TSnap::TSnapDetail::GetRndEdgeNonAdjNode ( const PGraph &  Graph,
int  NId1,
int  NId2 
)

Returns a random edge in a graph Graph where the edge does not touch nodes NId1 and NId2.

Definition at line 240 of file ggen.h.

References TRnd::GetUniDevInt(), and TInt::Rnd.

Referenced by TSnap::GenDegSeq().

240  {
241  typename PGraph::TObj::TNodeI NI1, NI2;
242  int OutDeg = -1;
243  do {
244  NI1 = Graph->GetRndNI();
245  OutDeg = NI1.GetOutDeg();
246  } while (OutDeg == 0);
247  NI2 = Graph->GetNI(NI1.GetOutNId(TInt::Rnd.GetUniDevInt(OutDeg)));
248  int runs = 0;
249  while (NI1.IsNbrNId(NId1) || NI1.IsNbrNId(NId2) || NI2.IsNbrNId(NId1) || NI2.IsNbrNId(NId2) || NI1.GetId()==NI2.GetId()) {
250  do {
251  NI1 = Graph->GetRndNI();
252  OutDeg = NI1.GetOutDeg();
253  } while (OutDeg == 0);
254  NI2 = Graph->GetNI(NI1.GetOutNId(TInt::Rnd.GetUniDevInt(OutDeg)));
255  if (runs++ == 1000) { return TIntPr(-1, -1); }
256  }
257  return TIntPr(NI1.GetId(), NI2.GetId());
258 }
TPair< TInt, TInt > TIntPr
Definition: ds.h:83
static TRnd Rnd
Definition: dt.h:1050
int GetUniDevInt(const int &Range=0)
Definition: dt.cpp:39

Here is the call graph for this function:

Here is the caller graph for this function:

void TSnap::TSnapDetail::GetSphereDev ( const int &  Dim,
TRnd Rnd,
TFltV ValV 
)

Sample random point from the surface of a Dim-dimensional unit sphere.

Definition at line 343 of file ggen.cpp.

References TVec< TVal, TSizeTy >::Gen(), TRnd::GetNrmDev(), TVec< TVal, TSizeTy >::Len(), and TMath::Sqr().

Referenced by TSnap::GenGeoPrefAttach().

343  {
344  if (ValV.Len() != Dim) { ValV.Gen(Dim); }
345  double Length = 0.0;
346  for (int i = 0; i < Dim; i++) {
347  ValV[i] = Rnd.GetNrmDev();
348  Length += TMath::Sqr(ValV[i]); }
349  Length = 1.0 / sqrt(Length);
350  for (int i = 0; i < Dim; i++) {
351  ValV[i] *= Length;
352  }
353 }
TSizeTy Len() const
Returns the number of elements in the vector.
Definition: ds.h:535
static double Sqr(const double &x)
Definition: xmath.h:12
double GetNrmDev()
Definition: dt.cpp:63
void Gen(const TSizeTy &_Vals)
Constructs a vector (an array) of _Vals elements.
Definition: ds.h:486

Here is the call graph for this function:

Here is the caller graph for this function:

void TSnap::TSnapDetail::GVizDoLayout ( const TStr GraphInFNm,
TStr  OutFNm,
const TGVizLayout Layout 
)

Runs GraphViz layout engine over a graph saved in the file GraphInFNm with output saved to OutFNm.

Definition at line 5 of file gviz.cpp.

References TStr::CStr(), TStr::Fmt(), TStr::GetFExt(), GVizGetLayoutStr(), and IAssert.

Referenced by TSnap::DrawGViz(), TGraphKey::DrawGViz(), TGHash< TDat >::DrawGViz(), and TAGMUtil::GVizComGraph().

5  {
6  TStr LayoutExe = TSnap::TSnapDetail::GVizGetLayoutStr(Layout), Ext = OutFNm.GetFExt(), GvPath;
7  #if defined(GLib_WIN)
8  GvPath = "C:\\Prog\\GraphViz\\bin\\";
9  #else
10  GvPath = "/usr/bin/";
11  //OutFNm = OutFNm.GetFMid() + Ext;
12  #endif
13  IAssert(Ext==".ps" || Ext==".gif" || Ext==".png");
14  const TStr ExeCmd = TStr::Fmt("%s -T%s %s -o %s", LayoutExe.CStr(),
15  Ext.CStr()+1, GraphInFNm.CStr(), OutFNm.CStr());
16 
17  if (system(ExeCmd.CStr())==0) { return; }
18  #if defined(GLib_WIN)
19  if (system(TStr::Fmt(".\\%s", ExeCmd.CStr()).CStr())==0) { return; }
20  #else
21  if (system(TStr::Fmt("./%s", ExeCmd.CStr()).CStr())==0) { return; }
22  #endif
23  if (system(TStr::Fmt("%s%s", GvPath.CStr(), ExeCmd.CStr()).CStr())==0) { return; }
24  fprintf(stderr, "[%s:%d] Cannot find GraphViz (%s). Set the PATH.\n", __FILE__, __LINE__, ExeCmd.CStr());
25  //#if defined(GLib_WIN)
26  //if (ShowPlot) system(TStr::Fmt("start %s", OutFNm.CStr()).CStr());
27  //#endif
28 }
#define IAssert(Cond)
Definition: bd.h:262
TStr GetFExt() const
Definition: dt.cpp:1421
Definition: dt.h:412
static TStr Fmt(const char *FmtStr,...)
Definition: dt.cpp:1599
char * CStr()
Definition: dt.h:476
TStr GVizGetLayoutStr(const TGVizLayout &Layout)
Generates the GraphViz command string based on the selected Layout engine.
Definition: gviz.cpp:30

Here is the call graph for this function:

Here is the caller graph for this function:

TStr TSnap::TSnapDetail::GVizGetLayoutStr ( const TGVizLayout Layout)

Generates the GraphViz command string based on the selected Layout engine.

Definition at line 30 of file gviz.cpp.

References Fail, TStr::GetNullStr(), gvlCirco, gvlDot, gvlNeato, gvlSfdp, and gvlTwopi.

Referenced by GVizDoLayout().

30  {
31  switch(Layout) {
32  case gvlDot : return "dot";
33  case gvlNeato : return "neato";
34  case gvlTwopi : return "twopi";
35  case gvlCirco: return "circo";
36  case gvlSfdp: return "sfdp";
37  default: Fail;
38  }
39  return TStr::GetNullStr();
40 }
Definition: gviz.h:3
#define Fail
Definition: bd.h:238
Definition: gviz.h:3
Definition: gviz.h:3
Definition: gviz.h:3
Definition: gviz.h:3
static TStr GetNullStr()
Definition: dt.cpp:1626

Here is the call graph for this function:

Here is the caller graph for this function:

TIntFltH TSnap::TSnapDetail::MapEquationNew2Modules ( PUNGraph Graph,
TIntH Module,
TIntFltH Qi,
int  a,
int  b 
)

Definition at line 53 of file cmty.cpp.

References THash< TKey, TDat, THashFunc >::AddDat(), THash< TKey, TDat, THashFunc >::DelKey(), THash< TKey, TDat, THashFunc >::GetDat(), and THash< TKey, TDat, THashFunc >::IsKey().

Referenced by TSnap::Infomap().

53  {
54  TIntFltH Qi1;
55  Qi1 = Qi;
56  float InModule=0.0, OutModule=0.0, Val;
57  int Mds[2] = {a,b};
58  for (int i=0; i<2; i++) {
59  InModule=0.0, OutModule=0.0;
60  if (Qi1.IsKey(Mds[i])){
61  int CentralModule = Mds[i];
62  for (TUNGraph::TEdgeI EI = Graph->BegEI(); EI < Graph->EndEI(); EI++) {
63  if (Module.GetDat(EI.GetSrcNId()) == Module.GetDat(EI.GetDstNId()) && Module.GetDat(EI.GetDstNId()) == CentralModule) {
64  InModule += 1.0;
65  } else if ((Module.GetDat(EI.GetSrcNId()) == CentralModule && Module.GetDat(EI.GetDstNId()) != CentralModule) || (Module.GetDat(EI.GetSrcNId()) != CentralModule && Module.GetDat(EI.GetDstNId()) == CentralModule)) {
66  OutModule +=1.0;
67  }
68  }
69  Val = 0.0;
70  if (InModule+OutModule > 0) {
71  Val = OutModule/(InModule+OutModule);
72  }
73  Qi1.DelKey(Mds[i]);
74  Qi1.AddDat(Mds[i],Val);
75  } else {
76  Qi1.DelKey(Mds[i]);
77  Qi1.AddDat(Mds[i],0.0);
78  }
79  }
80 
81  return Qi1;
82 }
Edge iterator. Only forward iteration (operator++) is supported.
Definition: graph.h:111
TEdgeI EndEI() const
Returns an iterator referring to the past-the-end edge in the graph.
Definition: graph.h:229
const TDat & GetDat(const TKey &Key) const
Definition: hash.h:220
void DelKey(const TKey &Key)
Definition: hash.h:358
TEdgeI BegEI() const
Returns an iterator referring to the first edge in the graph.
Definition: graph.h:227
bool IsKey(const TKey &Key) const
Definition: hash.h:216
TDat & AddDat(const TKey &Key)
Definition: hash.h:196

Here is the call graph for this function:

Here is the caller graph for this function: