X-Git-Url: http://git.nguyen.vg/gitweb/?p=tatoo.git;a=blobdiff_plain;f=src%2Ftatoo.ml;h=e0f29ee8dff4b43df89e93eb4d5a095e59135523;hp=9fb70457824f56475cb17f1bfcf37846764aa053;hb=836d6ea0aebf1f947faa74db1d78168afb882930;hpb=fee64144491afab22d71f6e2de72a9f18f35cd55 diff --git a/src/tatoo.ml b/src/tatoo.ml index 9fb7045..e0f29ee 100644 --- a/src/tatoo.ml +++ b/src/tatoo.ml @@ -104,9 +104,10 @@ let main () = Logger.msg `STATS "@[Automaton: @\n%a@]" Ata.print auto) auto_list; end; - let module Naive = Run.Make(Naive_tree) in + let module Naive = Run.Make(Naive_tree)(Naive_node_list) in let result_list = - let root = [ Naive_tree.root doc] in + let root = Naive_node_list.create () in + let () = Naive_node_list.add (Naive_tree.root doc) root in let f, msg = match !Options.parallel, !Options.compose with true, true -> @@ -123,10 +124,13 @@ let main () = let s = Naive.stats () in Run.( Logger.msg `STATS - "@[tree size: %d@\ntraversals: %d@\ntransition fetch cache hit ratio: %f@\ntransition eval cache hit ratio: %f@]" - s.tree_size s.run + "@[tree size: %d@\ntraversals: %d@\ntransition fetch cache hit ratio: %f@\ntransition eval cache hit ratio: %f@\nNumber of visited nodes per pass: %a@]" + s.tree_size s.pass (float s.fetch_trans_cache_hit /. float s.fetch_trans_cache_access) - (float s.eval_trans_cache_hit /. float s.eval_trans_cache_access)); + (float s.eval_trans_cache_hit /. float s.eval_trans_cache_access) + (let i = ref 0 in + Pretty.print_list ~sep:"," (fun fmt n -> Format.fprintf fmt "%i: %i" !i n;incr i)) + s.nodes_per_run); time (fun () -> let count = ref 1 in List.iter (fun results -> @@ -134,10 +138,10 @@ let main () = output_string output (string_of_int !count); output_string output "\" >\n"; if !Options.count then begin - output_string output (string_of_int (List.length results)); + output_string output (string_of_int (Naive_node_list.length results)); output_char output '\n'; end else - List.iter (fun n -> + Naive_node_list.iter (fun n -> Naive_tree.print_xml output doc n; output_char output '\n' ) results;