#define STATS1(fname,vect) {\
start_clock(); \
uint q = 0; \
- while(q<(vect).size()) \
+ while(q<treenodeQueries.size()) \
{ \
acc += tree->fname((vect)[q]); \
q++; \
#define STATS1p(fname,vect) {\
start_clock(); \
uint q = 0; \
- while(q<(vect).size()) \
+ while(q<treenodeQueries.size()) \
{ \
acc += tree->fname((vect)[q]).min; \
q++; \
#define STATS2(fname,vect) {\
start_clock(); \
uint q = 0; \
- while(q<(vect).size()) \
+ while(q<treenodeQueries.size()) \
{ \
acc += tree->fname((vect)[q].first,(vect)[q].second); \
q++; \
} \
double t = 1000.0*stop_clock(); \
printStats(t,#fname,(vect).size()); \
- cout.flush();\
}
-TagType target_tag = -1;
+ TagType target_tag = -1;
vector<treeNode> treenodeQueries;
vector<pair<treeNode,TagType> > treenodetagQueries;
vector<DocID> docidQueries;
STATS1(FirstChild,treenodeQueries);
STATS1(NextSibling,treenodeQueries);
STATS1(ParentNode,docidQueries);
- STATS1(PrevNode,docidQueries);
+ STATS1(PrevNode,treenodeQueries);
STATS2(TaggedDesc,treenodetagQueries);
STATS2(TaggedFoll,treenodetagQueries);
}
tag = tree->Tag(node);
if (tag == target_tag)
ret++;
- treeNode t1 = tree->FirstChild(node);
+ treeNode t1 = tree->FirstChild(node);
q.push(tree->FirstChild(node));
- treeNode t2 = tree->NextSibling(node);
+ treeNode t2 = tree->NextSibling(node);
q.push(tree->NextSibling(node));
- if(t1!=NULLT)
- traversalQueries.push_back(t1);
- if(t2!=NULLT)
- traversalQueries.push_back(t2);
+ if(t1!=NULLT)
+ traversalQueries.push_back(t1);
+ if(t2!=NULLT)
+ traversalQueries.push_back(t2);
}
}
return ret;
ret++;
pair<treeNode,treeNode> p1(tree->TaggedDesc(node,target_tag),node);
pair<treeNode,treeNode> p2(tree->TaggedFollBelow(node,target_tag,root),root);
- if(p1.first!=NULLT)
- jumpQueries.push_back(p1);
- if(p2.first!=NULLT)
- jumpQueries.push_back(p2);
+ if(p1.first!=NULLT)
+ jumpQueries.push_back(p1);
+ if(p2.first!=NULLT)
+ jumpQueries.push_back(p2);
q.push(p1);
q.push(p2);
}
count1 = traversal(tree,tree->Root());
count2 = jump_traversal(tree,tree->Root(),tree->Root());
- cout << endl << endl;
cout << "Full traversal found " << count1 << " '" << tagname << "' nodes, "
<< cFullTraversal << " function calls." << endl;
traversal_time(tree);
- cout << endl << endl;
cout << "Jump traversal found " << count2 << " '" << tagname << "' nodes, "
<< cJumpTraversal << " function calls." << endl;
jump_time(tree);