@@ -28,17 +28,22 @@ def indexed_to_boolean_decomposition(graph, block_count):
2828def transitive_reduction (assigns , mask ):
2929 result = Matrix (BOOL , assigns .ncols , assigns .ncols , name = "reduced_assigns" )
3030 result << Matrix .mxm (mask , assigns , "land_lor" )
31- count = 1
32- #closure = Matrix(BOOL, assigns.ncols, assigns.ncols, name = "closure")
31+ total = Matrix (BOOL , assigns .ncols , assigns .ncols , name = "closure" )
3332 unused_assigns = Matrix (BOOL , assigns .ncols , assigns .ncols , name = "unused_assigns" )
3433 unused_assigns (~ result .S ) << assigns
3534 closure = unused_assigns
36- while closure .nvals > 0 :
35+ total ("lor" ) << closure
36+ #while closure.nvals > 0:
37+ while True :
3738 print ("Closure nvals = " , closure .nvals )
3839 closure << Matrix .mxm (closure , unused_assigns , "land_lor" )
3940 result ("lor" ) << Matrix .mxm (closure , mask , "land_lor" )
4041 new_closure = Matrix (BOOL , assigns .ncols , assigns .ncols , name = "closure" )
41- new_closure (~ result ) << closure
42+ new_closure (~ result .S ) << closure
43+ nnz = total .nvals
44+ total ("lor" ) << closure
45+ if total .nvals == nnz :
46+ break
4247 return result
4348
4449def to_label_decomposed_graph (graph ):
0 commit comments