public Graph < Module > reduced ( ) { Graph < Module > graph = build ( ) ; // transitive reduction Graph < Module > newGraph = buildGraph ( graph . edges ( ) ) . reduce ( ) ; if ( DEBUG ) { PrintWriter log = new PrintWriter ( System . err ) ; System . err . println ( "before transitive reduction: " ) ; graph . printGraph ( log ) ; System . err . println ( "after transitive reduction: " ) ; newGraph . printGraph ( log ) ; } return newGraph ; }
Apply transitive reduction on the resulting graph