本文整理汇总了C++中TExeTm::Tick方法的典型用法代码示例。如果您正苦于以下问题:C++ TExeTm::Tick方法的具体用法?C++ TExeTm::Tick怎么用?C++ TExeTm::Tick使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类TExeTm
的用法示例。
在下文中一共展示了TExeTm::Tick方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: EnumSubGraphs
void TSubGraphsEnum::EnumSubGraphs(const int& MaxEdges) {
TExeTm ExeTm;
Gen2Graphs();
printf(" %2d edge graphs: %d\t[%s]\n", 2, SgV.Len(), ExeTm.GetTmStr()); ExeTm.Tick();
//for (int i = 0; i < SgV.Len(); i++) { SgV[i].Dump(TStr::Fmt(" %d", i+1)); }
//printf("**************************************************************\n");
TSimpleGraph SimpleG;
TIntPrV& EdgeV = SimpleG.GetEdgeV();
// multiple edge sub-graphs
for (int edges = 3; edges <= MaxEdges; edges++) {
EdgeV.Clr();
printf(" %2d edge graphs:", edges);
for (int g1 = 0; g1 < SgV.Len()-1; g1++) {
for (int g2 = g1+1; g2 < SgV.Len(); g2++) {
if (SimpleG.Join(SgV[g1], SgV[g2])) { NextSgV.Add(SimpleG); }
}
}
printf(" candidates: %8d [%s]", NextSgV.Len(), ExeTm.GetTmStr()); ExeTm.Tick();
NextSgV.Sort();
SgV.Gen(NextSgV.Len(), 0);
SgV.Add(NextSgV[0]);
for (int i = 1; i < NextSgV.Len(); i++) {
if (SgV.Last() != NextSgV[i]) {
SgV.Add(NextSgV[i]);
}
}
NextSgV.Clr(false);
printf(" total: %8d [%s]\n", SgV.Len(), ExeTm.GetTmStr()); ExeTm.Tick();
//for (int i = 0; i < SgV.Len(); i++) { SgV[i].Dump(TStr::Fmt(" %d", i+1)); }
//printf("**************************************************************\n");
}
}
示例2: GenPy
int GenPy(PUNGraph &res, ofstream& TFile, const TStr& parameters)
{
Env = TEnv(parameters, TNotify::StdNotify);
TStr mN = Env.GetIfArgPrefixStr("-module:", "random_graphs", "Module name");
TStr fN = Env.GetIfArgPrefixStr("-func:", "fast_gnp_random_graph", "Function name");
PyObject **G = new PyObject*[1];
char *moduleName = mN.CStr();
char *funcName = fN.CStr();
AddFuncInfo();
TStrV args, argTypes;
if (!ParseArgs(funcName, parameters, args, argTypes))
{
printf("Fail to parse arguments for NetworkX generation...\n");
return 0;
};
TExeTm execTime;
if (!CallPyFunction(moduleName, funcName, args, argTypes, G))
{
cout << "CallPyFunction() raised error. Execution terminated.\n";
system("pause");
exit(1);
};
TFile << "Time of generation of graph by NetworkX: " << execTime.GetTmStr() << endl;
execTime.Tick();
PyObject*** nodes = new PyObject**[1];
GetNodes(G, nodes);
int nodesCount = PyList_Size(*(nodes[0]));
//printf("nodesCount = %d, ", nodesCount);
res = PUNGraph::TObj::New();
res->Reserve(nodesCount, nodesCount*nodesCount);
for (size_t i = 0; i < nodesCount; i++)
res->AddNode(i);
Py_DECREF(nodes);
PyObject*** edges = new PyObject**[1];
GetEdges(G, edges);
int edgesCount = PyList_Size(*(edges[0]));
//printf("edgesCount = %d\n", edgesCount);
for (size_t i = 0; i < edgesCount; i++)
{
PyObject* item = PySequence_Fast_GET_ITEM(*(edges[0]), i);
int v1, v2;
PyObject* node = PySequence_Fast_GET_ITEM(item,0);
v1 = PyLong_AsLong(node);
node = PySequence_Fast_GET_ITEM(item,1);
v2 = PyLong_AsLong(node);
res->AddEdge(v1,v2);
}
TFile << "Time of copying of graph from NetworkX representation: " << execTime.GetTmStr() << endl;
Py_DECREF(G);
Py_DECREF(edges);
//Py_Finalize(); // очищение памяти, отданной интерпретатору
return 0;
}
示例3: GenKron
void GenKron(const TStr& Args, TKronMtx& FitMtx, TFltPrV& KronDegAvgIn, TFltPrV& KronDegAvgOut){
Env = TEnv(Args, TNotify::NullNotify);
TExeTm ExecTime;
// number of Kronecker graphs to generate
const TInt NKron = Env.GetIfArgPrefixInt("-n:", 1, "Number of generated Kronecker graphs");
// iterations of Kronecker product
const TInt NIter = Env.GetIfArgPrefixInt("-i:", 10, "Iterations of Kronecker product");
// is graph directed?
TStr IsDir = Env.GetIfArgPrefixStr("-isdir:", "false", "Produce directed graph (true, false)");
TFlt ExpectedNodes = FitMtx.GetNodes(NIter), ExpectedEdges = FitMtx.GetEdges(NIter);
TFile << "Kronecker nodes: " << ExpectedNodes << ", expected Kronecker edges: " << ExpectedEdges << endl;
double Sec = 0.0;
int AvgMaxOutDeg = 0, AvgMaxInDeg = 0, MinMaxOutDeg = 0, MaxMaxOutDeg = 0, MinMaxInDeg = 0, MaxMaxInDeg = 0;
bool Dir = IsDir == "true" ? true : false;
for (int i = 0; i < NKron; i++){
ExecTime.Tick();
PNGraph Kron = TKronMtx::GenFastKronecker(FitMtx, NIter, Dir, 0);
Sec += ExecTime.GetSecs();
printf("Calculating maximum degree...\n");
int MaxOutDeg = GetMaxMinDeg(Kron, IsDir, "false", "true"), MaxInDeg = GetMaxMinDeg(Kron, IsDir, "true", "true");
CompareDeg(i, MaxOutDeg, MinMaxOutDeg, MaxMaxOutDeg, AvgMaxOutDeg);
CompareDeg(i, MaxInDeg, MinMaxInDeg, MaxMaxInDeg, AvgMaxInDeg);
//printf("Nodes count: %d, nodes with non-zero degree %d, edges count %d\n max deg = %d\n", kron->GetNodes(), TSnap::CntNonZNodes(kron), kron->GetEdges(), MaxDeg);
if (i == NKron - 1){
//TFile << "Clustering coefficient: " << TSnap::GetClustCf(kron) << endl;
//TSnap::PlotClustCf(kron,"kronSingle");
//TSnap::PlotHops(kron, "kronSingle");
TFile << "Maximum output degree in kron graph: " << "from " << MinMaxOutDeg << " to " << MaxMaxOutDeg << " (average: " << (double)AvgMaxOutDeg / (double)NKron << ")" << endl;
TFile << "Maximum input degree in kron graph: " << "from " << MinMaxInDeg << " to " << MaxMaxInDeg << " (average: " << (double)AvgMaxInDeg / (double)NKron << ")" << endl;
}
AddDegreesStat(KronDegAvgIn, Kron, true);
AddDegreesStat(KronDegAvgOut, Kron, false);
}
Sec /= NKron;
GetAvgDegreeStat(KronDegAvgIn, NKron);
GetAvgDegreeStat(KronDegAvgOut, NKron);
KronDegAvgIn.Sort();
KronDegAvgOut.Sort();
TFile << "Average time of generation of Kronecker product: " << Sec << endl;
}