let out ?(dump=None) ?(dot=None) ?(detrans=false) pkggraph =
info "Dumping Graph : nodes %d , edges %d"
(G.nb_vertex pkggraph) (G.nb_edges pkggraph) ;
if detrans then begin
O.transitive_reduction pkggraph;
debug "After transitive reduction : nodes %d , edges %d"
(G.nb_vertex pkggraph) (G.nb_edges pkggraph)
end ;
if dump <> None then begin
let f = Option.get dump in
debug "Saving marshal graph in %s\n" f ;
let oc = open_out f in
Marshal.to_channel oc ((detrans,pkggraph) :> (bool * G.t)) [];
close_out oc
end ;
if dot <> None then begin
let f = Option.get dot in
debug "Saving dot graph in %s\n" f ;
let oc = open_out f in
D.output_graph oc pkggraph;
close_out oc
end