# File lib/rgl/transitiv_closure.rb, line 23
23:     def transitive_closure_floyd_warshal
24:       raise NotDirectedError,
25:         "transitive_closure makes sense only for directed graphs." unless directed?
26:       tc = to_adjacency                     # direct links
27: 
28:       # indirect links
29: 
30:       each_vertex do |vi| 
31:         each_vertex do |vj| 
32:           each_vertex do |vk| 
33:             unless tc.has_edge?(vi, vj)
34:               tc.add_edge(vi, vj) if has_edge?(vi, vk) and
35:                                      has_edge?(vk, vj)
36:             end
37:           end
38:         end
39:       end
40:       tc
41:     end