open Table
-let compteur = ref 0
+let query_tree_size = ref 0
+
let table_qtree = QTreeHash.create 97
match q.desc with
| Start -> start
| Dom -> Bitvector.create ~init:true (Naive_tree.size tree)
- (*let v = Bitvector.create (Naive_tree.size tree) in
- for i=0 to (Bitvector.length v)-1 do
- Bitvector.set v i true
- done;
- v*)
| Tag (t,k) -> element_by_tag tree t k
| Axis (a,q1) -> let v = eval_qtree tree start q1 in
eval_axis tree v a
| Binop (op,q1,q2)-> begin
let v1 = eval_qtree tree start q1 in
let v2 = eval_qtree tree start q2 in
+ Table.node_compteur := !Table.node_compteur + 2*Bitvector.length v1;
match op with
| Union -> Bitvector.union v1 v2
| Inter -> Bitvector.inter v1 v2
end
in
QTreeHash.add table_qtree q res;
- compteur := !compteur + Bitvector.length res; (*????8*)
res
end
in
(* debug tree q resultat;*)
+ incr query_tree_size;
resultat