SNAP Library 4.0, Developer Reference
2017-07-27 13:18:06
SNAP, a general purpose, high performance system for analysis and manipulation of large networks
|
#include <anf.h>
Public Member Functions | |
TGraphAnf (const PGraph &GraphPt, const int &Approx=32, const int &moreBits=5, const int &RndSeed=0) | |
uint64 | GetNIdOffset (const int &NId) const |
void | InitAnfBits (TAnfBitV &BitV) |
void | Union (TAnfBitV &BitV1, const uint64 &NId1Offset, TAnfBitV &BitV2, const uint64 &NId2Offset) const |
double | AvgLstZero (const TAnfBitV &BitV, const uint64 &NIdOffset) const |
double | GetCount (const TAnfBitV &BitV, const uint64 &NIdOffset) const |
void | GetNodeAnf (const int &SrcNId, TIntFltKdV &DistNbrsV, const int &MxDist, const bool &IsDir) |
void | GetGraphAnf (TIntFltKdV &DistNbrsV, const int &MxDist, const bool &IsDir) |
Private Types | |
typedef TVec< uint64 > | TAnfBitV |
Private Member Functions | |
UndefDefaultCopyAssign (TGraphAnf) | |
Private Attributes | |
THash< TInt, uint64 > | NIdToBitPosH |
TInt | NApprox |
TInt | NBits |
TInt | MoreBits |
TInt | ApproxBytes |
PGraph | Graph |
TRnd | Rnd |
Approximate Neighborhood Function. Implements the algorithm for computing the diameter of a given graph. The method is based on the approximate counting argument by Flajolet-Martin. For more details see C. R. Palmer, P. B. Gibbons and C. Faloutsos, ANF: A Fast and Scalable Tool for Data Mining in Massive Graphs, KDD 2002 (http://www.cs.cmu.edu/~christos/PUBLICATIONS/kdd02-anf.ps.gz) See TSnap::TestAnf() for example of how to use the class.
|
inline |
double TGraphAnf< PGraph >::AvgLstZero | ( | const TAnfBitV & | BitV, |
const uint64 & | NIdOffset | ||
) | const |
Definition at line 107 of file anf.h.
References TVec< TVal, TSizeTy >::BegI().
Referenced by TGraphAnf< PGraph >::GetCount().
|
inline |
Definition at line 50 of file anf.h.
References TGraphAnf< PGraph >::AvgLstZero().
void TGraphAnf< PGraph >::GetGraphAnf | ( | TIntFltKdV & | DistNbrsV, |
const int & | MxDist, | ||
const bool & | IsDir | ||
) |
Returns the number of pairs of nodes reachable in less than H hops. For example, DistNbrsV.GetDat(0) is the number of nodes in the graph, DistNbrsV.GetDat(1) is the number of nodes+edges and so on.
DistNbrsV | Maps between the distance H (in hops) and the number of nodes reachable in <=H hops. |
MxDist | Maximum number of hops the algorithm spreads from SrcNId. |
IsDir | false: consider links as undirected (drop link directions). |
Definition at line 148 of file anf.h.
References TVec< TVal, TSizeTy >::Add(), TVec< TVal, TSizeTy >::BegI(), TVec< TVal, TSizeTy >::Clr(), TVec< TVal, TSizeTy >::Gen(), IAssert, TVec< TVal, TSizeTy >::LastLast(), TVec< TVal, TSizeTy >::Len(), and TInt::Mx.
Referenced by TSnap::GetAnf(), TSnap::GetAnfEffDiam(), and TSnap::TestAnf().
Definition at line 46 of file anf.h.
References THash< TKey, TDat, THashFunc >::GetDat(), and TGraphAnf< PGraph >::NIdToBitPosH.
void TGraphAnf< PGraph >::GetNodeAnf | ( | const int & | SrcNId, |
TIntFltKdV & | DistNbrsV, | ||
const int & | MxDist, | ||
const bool & | IsDir | ||
) |
Returns the number of nodes reachable from SrcNId in less than H hops.
SrcNId | Starting node. |
DistNbrsV | Maps between the distance H (in hops) and the number of nodes reachable in <=H hops. |
MxDist | Maximum number of hops the algorithm spreads from SrcNId. |
IsDir | false: consider links as undirected (drop link directions). |
Definition at line 120 of file anf.h.
References TVec< TVal, TSizeTy >::Add(), TVec< TVal, TSizeTy >::BegI(), TVec< TVal, TSizeTy >::Clr(), TVec< TVal, TSizeTy >::Gen(), IAssert, TVec< TVal, TSizeTy >::Last(), TVec< TVal, TSizeTy >::Len(), and TInt::Mx.
Referenced by TSnap::GetAnf().
Definition at line 67 of file anf.h.
References TVec< TVal, TSizeTy >::BegI(), TStr::Fmt(), TVec< TVal, TSizeTy >::Gen(), TUInt64::GetStr(), IAssert, IAssertR, TMath::Log2(), TInt::Mx, and TVec< TVal, TSizeTy >::PutAll().
void TGraphAnf< PGraph >::Union | ( | TAnfBitV & | BitV1, |
const uint64 & | NId1Offset, | ||
TAnfBitV & | BitV2, | ||
const uint64 & | NId2Offset | ||
) | const |
Definition at line 99 of file anf.h.
References TVec< TVal, TSizeTy >::BegI().
|
private |
Definition at line 37 of file anf.h.
Referenced by TGraphAnf< PGraph >::TGraphAnf().
Definition at line 36 of file anf.h.
Referenced by TGraphAnf< PGraph >::GetNIdOffset().