|
SNAP Library , Developer Reference
2013-01-07 14:03:36
SNAP, a general purpose, high performance system for analysis and manipulation of large networks
|
#include <gstat.h>

Public Member Functions | |
| TGStatVec (const TTmUnit &_TmUnit=tmu1Sec) | |
| TGStatVec (const TTmUnit &_TmUnit, const TFSet &TakeGrowthStat) | |
| TGStatVec (const TGStatVec &GStat) | |
| TGStatVec (TSIn &SIn) | |
| void | Save (TSOut &SOut) const |
| TGStatVec & | operator= (const TGStatVec &GStat) |
| PGStat | Add () |
| PGStat | Add (const TSecTm &Time, TStr GraphNm=TStr()) |
| void | Add (const PGStat &Growth) |
| void | Add (const PNGraph &Graph, const TSecTm &Time, const TStr &GraphNm=TStr()) |
| void | Add (const PNEGraph &Graph, const TSecTm &Time, const TStr &GraphNm=TStr()) |
| void | Clr () |
| void | Sort (const TGStatVal &SortBy=gsvNodes, const bool &Asc=true) |
| int | Len () const |
| bool | Empty () const |
| PGStat | operator[] (const int &ValN) const |
| PGStat | At (const int &ValN) const |
| PGStat | Last () const |
| const TGStatV & | GetGStatV () const |
| void | Del (const int &ValN) |
| void | DelLast () |
| void | DelBefore (const TSecTm &Tm) |
| void | DelAfter (const TSecTm &Tm) |
| void | DelSmallNodes (const int &MinNodes) |
| void | SetTmUnit (const TTmUnit &TimeUnit) |
| TTmUnit | GetTmUnit () const |
| void | SetTakeStat (const TFSet &TakeStatSet) |
| bool | HasVal (const TGStatVal &Stat) const |
| bool | HasDistr (const TGStatDistr &Stat) const |
| void | GetValV (const TGStatVal &XVal, const TGStatVal &YVal, TFltPrV &ValV) const |
| PGStat | GetAvgGStat (const bool &ClipAt1=false) |
| void | Plot (const TGStatVal &XVal, const TGStatVal &YVal, const TStr &OutFNm, TStr &Desc, const TGpScaleTy &Scale=gpsAuto, const bool &PowerFit=false) const |
| void | PlotAllVsX (const TGStatVal &XVal, const TStr &OutFNm, TStr Desc=TStr(), const TGpScaleTy &Scale=gpsAuto, const bool &PowerFit=false) const |
| void | ImposeDistr (const TGStatDistr &Distr, const TStr &FNmPref, TStr Desc=TStr(), const bool &ExpBin=false, const bool &PowerFit=false, const TGpSeriesTy &PlotWith=gpwLinesPoints, const TStr &Style="") const |
| void | SaveTxt (const TStr &FNmPref, const TStr &Desc) const |
Static Public Member Functions | |
| static PGStatVec | New (const TTmUnit &_TmUnit=tmu1Sec) |
| static PGStatVec | New (const TTmUnit &_TmUnit, const TFSet &TakeGrowthStat) |
| static PGStatVec | Load (TSIn &SIn) |
Static Public Attributes | |
| static uint | MinNodesEdges = 10 |
Private Attributes | |
| TCRef | CRef |
| TTmUnit | TmUnit |
| TFSet | StatFSet |
| TGStatV | GStatV |
Friends | |
| class | TPt< TGStatVec > |
| TGStatVec::TGStatVec | ( | const TTmUnit & | _TmUnit = tmu1Sec | ) |
| TGStatVec::TGStatVec | ( | const TTmUnit & | _TmUnit, |
| const TFSet & | TakeGrowthStat | ||
| ) |
| TGStatVec::TGStatVec | ( | const TGStatVec & | GStat | ) |
| TGStatVec::TGStatVec | ( | TSIn & | SIn | ) |
| PGStat TGStatVec::Add | ( | ) |
Definition at line 392 of file gstat.cpp.
References TVec< TVal >::Add(), GStatV, TVec< TVal >::Last(), and TGStat::New().
Referenced by Add(), and TMAGFitBern::PlotProperties().
{
GStatV.Add(TGStat::New());
return GStatV.Last();
}


| PGStat TGStatVec::Add | ( | const TSecTm & | Time, |
| TStr | GraphNm = TStr() |
||
| ) |
Definition at line 397 of file gstat.cpp.
References TVec< TVal >::Add(), GStatV, TVec< TVal >::Last(), and TGStat::New().
{
GStatV.Add(TGStat::New(Time, GraphNm));
return GStatV.Last();
}

| void TGStatVec::Add | ( | const PGStat & | Growth | ) | [inline] |
| void TGStatVec::Add | ( | const PNGraph & | Graph, |
| const TSecTm & | Time, | ||
| const TStr & | GraphNm = TStr() |
||
| ) |
Definition at line 402 of file gstat.cpp.
References Add(), TNGraph::GetNodes(), MinNodesEdges, TGStat::New(), and StatFSet.
{
if (Graph->GetNodes() < (int) TGStatVec::MinNodesEdges) {
printf(" ** TGStatVec::Add: graph too small (%d nodes).SKIP\n", Graph->GetNodes());
return;
}
Add(TGStat::New(Graph, Time, StatFSet, GraphNm));
}

| void TGStatVec::Add | ( | const PNEGraph & | Graph, |
| const TSecTm & | Time, | ||
| const TStr & | GraphNm = TStr() |
||
| ) |
Definition at line 410 of file gstat.cpp.
References Add(), MinNodesEdges, TGStat::New(), and StatFSet.
{
if (Graph->GetNodes() < (int) TGStatVec::MinNodesEdges) {
printf(" ** TGStatVec::Add: graph too small (%d nodes).SKIP\n", Graph->GetNodes());
return;
}
Add(TGStat::New(Graph, Time, StatFSet, GraphNm));
}

| PGStat TGStatVec::At | ( | const int & | ValN | ) | const [inline] |
Definition at line 177 of file gstat.h.
References GStatV.
Referenced by DelAfter(), DelBefore(), DelSmallNodes(), GetValV(), ImposeDistr(), TMAGFitBern::PlotProperties(), and SaveTxt().
{ return GStatV[ValN]; }

| void TGStatVec::Clr | ( | ) | [inline] |
| void TGStatVec::Del | ( | const int & | ValN | ) | [inline] |
| void TGStatVec::DelAfter | ( | const TSecTm & | Tm | ) |
| void TGStatVec::DelBefore | ( | const TSecTm & | Tm | ) |
| void TGStatVec::DelLast | ( | ) | [inline] |
| void TGStatVec::DelSmallNodes | ( | const int & | MinNodes | ) |
Definition at line 438 of file gstat.cpp.
References TVec< TVal >::Add(), At(), GStatV, Len(), and TVec< TVal >::Swap().
{
TGStatV NewTickV;
for (int i = 0; i < Len(); i++) {
if (At(i)->GetNodes() >= MinNodes) { NewTickV.Add(At(i)); }
}
GStatV.Swap(NewTickV);
}

| bool TGStatVec::Empty | ( | ) | const [inline] |
| PGStat TGStatVec::GetAvgGStat | ( | const bool & | ClipAt1 = false | ) |
| const TGStatV& TGStatVec::GetGStatV | ( | ) | const [inline] |
| TTmUnit TGStatVec::GetTmUnit | ( | ) | const [inline] |
| void TGStatVec::GetValV | ( | const TGStatVal & | XVal, |
| const TGStatVal & | YVal, | ||
| TFltPrV & | ValV | ||
| ) | const |
Definition at line 446 of file gstat.cpp.
References TVec< TVal >::Add(), At(), TVec< TVal >::Gen(), gsvTime, and Len().
Referenced by Plot().
{
ValV.Gen(Len(), 0);
double x;
for (int t = 0; t < Len(); t++) {
if (XVal == gsvTime) { x = t+1; }
else { x = At(t)->GetVal(XVal); }
ValV.Add(TFltPr(x, At(t)->GetVal(YVal)));
}
}


| bool TGStatVec::HasDistr | ( | const TGStatDistr & | Stat | ) | const [inline] |
Definition at line 191 of file gstat.h.
References TFSet::In(), and StatFSet.
Referenced by ImposeDistr().


| bool TGStatVec::HasVal | ( | const TGStatVal & | Stat | ) | const [inline] |
| void TGStatVec::ImposeDistr | ( | const TGStatDistr & | Distr, |
| const TStr & | FNmPref, | ||
| TStr | Desc = TStr(), |
||
| const bool & | ExpBin = false, |
||
| const bool & | PowerFit = false, |
||
| const TGpSeriesTy & | PlotWith = gpwLinesPoints, |
||
| const TStr & | Style = "" |
||
| ) | const |
Definition at line 492 of file gstat.cpp.
References TGnuPlot::AddPlot(), TGnuPlot::AddPwrFit(), At(), TStr::CStr(), TStr::Empty(), TStr::Fmt(), TStr::GetUc(), gpwLines, gsdMx, gsdUndef, HasDistr(), Last(), Len(), TGnuPlot::MakeExpBins(), TGnuPlot::SavePng(), TGnuPlot::SetScale(), TGnuPlot::SetXYLabel(), TQuad< TVal1, TVal2, TVal3, TVal4 >::Val1, TQuad< TVal1, TVal2, TVal3, TVal4 >::Val2, TQuad< TVal1, TVal2, TVal3, TVal4 >::Val3, and TQuad< TVal1, TVal2, TVal3, TVal4 >::Val4.
{
if (Desc.Empty()) Desc = FNmPref.GetUc();
if (! At(0)->HasDistr(Distr) || Distr==gsdUndef || Distr==gsdMx) { return; }
TGStat::TPlotInfo Info = At(0)->GetPlotInfo(Distr);
TGnuPlot GnuPlot(Info.Val1+TStr(".")+FNmPref, TStr::Fmt("%s. G(%d, %d) --> G(%d, %d)", Desc.CStr(),
At(0)->GetNodes(), At(0)->GetEdges(), Last()->GetNodes(), Last()->GetEdges()));
GnuPlot.SetXYLabel(Info.Val2, Info.Val3);
GnuPlot.SetScale(Info.Val4);
int plotId;
for (int at = 0; at < Len(); at++) {
TStr Legend = At(at)->GetNm();
if (Legend.Empty()) { Legend = At(at)->GetTmStr(); }
if (! ExpBin) {
plotId = GnuPlot.AddPlot(At(at)->GetDistr(Distr), PlotWith, Legend, Style); }
else {
TFltPrV ExpBinV;
TGnuPlot::MakeExpBins(At(at)->GetDistr(Distr), ExpBinV, 2, 0);
plotId = GnuPlot.AddPlot(ExpBinV, PlotWith, Legend, Style);
}
if (PowerFit) { GnuPlot.AddPwrFit(plotId, gpwLines); }
}
GnuPlot.SavePng();
}

| PGStat TGStatVec::Last | ( | ) | const [inline] |
Definition at line 178 of file gstat.h.
References GStatV, and TVec< TVal >::Last().
Referenced by ImposeDistr(), Plot(), and PlotAllVsX().


| int TGStatVec::Len | ( | ) | const [inline] |
Definition at line 174 of file gstat.h.
References GStatV, and TVec< TVal >::Len().
Referenced by DelAfter(), DelBefore(), DelSmallNodes(), GetValV(), ImposeDistr(), TMAGFitBern::PlotProperties(), and SaveTxt().


| static PGStatVec TGStatVec::Load | ( | TSIn & | SIn | ) | [inline, static] |
Definition at line 161 of file gstat.h.
References TGStatVec().
{ return new TGStatVec(SIn); }

| PGStatVec TGStatVec::New | ( | const TTmUnit & | _TmUnit = tmu1Sec | ) | [static] |
Definition at line 369 of file gstat.cpp.
References TGStatVec().
Referenced by TFfGGen::GenFFGraphs(), and GetAvgGStat().
{
return new TGStatVec(_TmUnit);
}


| PGStatVec TGStatVec::New | ( | const TTmUnit & | _TmUnit, |
| const TFSet & | TakeGrowthStat | ||
| ) | [static] |
Definition at line 373 of file gstat.cpp.
References TGStatVec().
{
return new TGStatVec(_TmUnit, TakeGrowthStat);
}

| PGStat TGStatVec::operator[] | ( | const int & | ValN | ) | const [inline] |
| void TGStatVec::Plot | ( | const TGStatVal & | XVal, |
| const TGStatVal & | YVal, | ||
| const TStr & | OutFNm, | ||
| TStr & | Desc, | ||
| const TGpScaleTy & | Scale = gpsAuto, |
||
| const bool & | PowerFit = false |
||
| ) | const |
Definition at line 462 of file gstat.cpp.
References TGnuPlot::AddPlot(), TGnuPlot::AddPwrFit(), TStr::CStr(), TStr::Empty(), TStr::Fmt(), TGStat::GetValStr(), GetValV(), gpwLinesPoints, HasVal(), Last(), TGnuPlot::SavePng(), TGnuPlot::SetScale(), and TGnuPlot::SetXYLabel().
Referenced by PlotAllVsX().
{
if (! Last()->HasVal(XVal) || ! Last()->HasVal(YVal)) {
if (! Last()->HasVal(XVal)) { printf("** Does not have %s statistic\n", TGStat::GetValStr(XVal).CStr()); }
if (! Last()->HasVal(YVal)) { printf("** Does not have %s statistic\n", TGStat::GetValStr(YVal).CStr()); }
return;
}
if (Desc.Empty()) { Desc = OutFNm; }
TFltPrV ValV;
TGStatVec::GetValV(XVal, YVal, ValV);
TGnuPlot GP(TStr::Fmt("%s-%s.%s", TGStat::GetValStr(XVal).CStr(), TGStat::GetValStr(YVal).CStr(), OutFNm.CStr()),
TStr::Fmt("%s. %s vs. %s. G(%d,%d)", Desc.CStr(), TGStat::GetValStr(XVal).CStr(), TGStat::GetValStr(YVal).CStr(),
Last()->GetNodes(), Last()->GetEdges()));
GP.SetScale(Scale);
GP.SetXYLabel(TGStat::GetValStr(XVal), TGStat::GetValStr(YVal));
const int Id = GP.AddPlot(ValV, gpwLinesPoints);
if (PowerFit) { GP.AddPwrFit(Id); }
GP.SavePng();
}


| void TGStatVec::PlotAllVsX | ( | const TGStatVal & | XVal, |
| const TStr & | OutFNm, | ||
| TStr | Desc = TStr(), |
||
| const TGpScaleTy & | Scale = gpsAuto, |
||
| const bool & | PowerFit = false |
||
| ) | const |
Definition at line 481 of file gstat.cpp.
References gsvEffDiamDev, gsvEffWccDiamDev, gsvFullDiamDev, gsvFullWccDiamDev, gsvMx, gsvNone, TFSet::In(), Last(), and Plot().
{
const TFSet SkipStat = TFSet() | gsvFullDiamDev | gsvEffDiamDev | gsvEffWccDiamDev | gsvFullWccDiamDev;
for (int stat = gsvNone; stat < gsvMx; stat++) {
const TGStatVal Stat = TGStatVal(stat);
if (SkipStat.In(Stat)) { continue; }
if (Last()->HasVal(Stat) && Last()->HasVal(XVal) && Stat!=XVal) {
Plot(XVal, Stat, OutFNm, Desc, Scale, PowerFit);
}
}
}

| void TGStatVec::Save | ( | TSOut & | SOut | ) | const |
Definition at line 377 of file gstat.cpp.
References GStatV, TFSet::Save(), TVec< TVal >::Save(), TInt::Save(), StatFSet, and TmUnit.

| void TGStatVec::SaveTxt | ( | const TStr & | FNmPref, |
| const TStr & | Desc | ||
| ) | const |
Definition at line 517 of file gstat.cpp.
References THashSet< TKey, THashFunc >::AddKey(), At(), TStr::CStr(), TStr::Fmt(), THashSet< TKey, THashFunc >::GetKeyV(), TGStat::GetTmStr(), TTmInfo::GetTmUnitStr(), TGStat::GetVal(), TGStat::GetValStr(), gsvMx, gsvNone, Len(), TVec< TVal >::Len(), TVec< TVal >::Sort(), and TmUnit.
{
FILE *F = fopen(TStr::Fmt("growth.%s.tab", FNmPref.CStr()).CStr(), "wt");
fprintf(F, "# %s\n", Desc.CStr());
fprintf(F, "# %s", TTmInfo::GetTmUnitStr(TmUnit).CStr());
TIntSet StatValSet;
for (int i = 0; i < Len(); i++) {
for (int v = gsvNone; v < gsvMx; v++) {
if (At(i)->HasVal(TGStatVal(v))) { StatValSet.AddKey(v); }
}
}
TIntV StatValV; StatValSet.GetKeyV(StatValV); StatValV.Sort();
for (int sv = 0; sv < StatValV.Len(); sv++) {
fprintf(F, "\t%s", TGStat::GetValStr(TGStatVal(StatValV[sv].Val)).CStr()); }
fprintf(F, "Time\n");
for (int i = 0; i < Len(); i++) {
const TGStat& G = *At(i);
for (int sv = 0; sv < StatValV.Len(); sv++) {
fprintf(F, "%g\t", G.GetVal(TGStatVal(StatValV[sv].Val))); }
fprintf(F, "%s\n", G.GetTmStr().CStr());
}
fclose(F);
}

| void TGStatVec::SetTakeStat | ( | const TFSet & | TakeStatSet | ) | [inline] |
| void TGStatVec::SetTmUnit | ( | const TTmUnit & | TimeUnit | ) | [inline] |
| void TGStatVec::Sort | ( | const TGStatVal & | SortBy = gsvNodes, |
| const bool & | Asc = true |
||
| ) |
Definition at line 418 of file gstat.cpp.
References GStatV, and TVec< TVal >::SortCmp().
{
GStatV.SortCmp(TGStat::TCmpByVal(SortBy, Asc));
}

TCRef TGStatVec::CRef [private] |
TGStatV TGStatVec::GStatV [private] |
Definition at line 154 of file gstat.h.
Referenced by Add(), At(), Clr(), Del(), DelAfter(), DelBefore(), DelLast(), DelSmallNodes(), Empty(), GetAvgGStat(), GetGStatV(), Last(), Len(), operator=(), operator[](), Save(), and Sort().
uint TGStatVec::MinNodesEdges = 10 [static] |
TFSet TGStatVec::StatFSet [private] |
Definition at line 153 of file gstat.h.
Referenced by Add(), HasDistr(), HasVal(), operator=(), Save(), SetTakeStat(), and TGStatVec().
TTmUnit TGStatVec::TmUnit [private] |
Definition at line 152 of file gstat.h.
Referenced by GetTmUnit(), operator=(), Save(), SaveTxt(), and SetTmUnit().