let strongdeps_int ?(transitive=true) graph univ l =
let cudfpool = Depsolver_int.init_pool_univ univ in
Util.Progress.set_total mainbar (List.length l);
Util.Timer.start strongtimer;
List.iter (fun id ->
Util.Progress.progress mainbar;
G.add_vertex graph id;
if somedisj cudfpool id then begin
let closure = Depsolver_int.dependency_closure_cache cudfpool [id] in
let solver = Depsolver_int.init_solver_closure cudfpool closure in
match Depsolver_int.solve solver (Diagnostic_int.Sng id) with
|Diagnostic_int.Failure(_) -> ()
|Diagnostic_int.Success(f) ->
check_strong transitive graph solver id (f ())
end
) l ;
Util.Progress.reset mainbar;
ignore (Util.Timer.stop strongtimer ());
debug "strong dep graph: %d nodes, %d edges\n" (G.nb_vertex graph) (G.nb_edges graph);
graph