@@ -765,16 +765,20 @@ int LAGr_SwapEdges
765765 GRB_TRY (GxB_unload_Vector_into_Container (M , con , NULL )) ;
766766 GRB_TRY (GrB_free (& (con -> b ))) ;
767767 con -> b = dup_swaps_v ;
768+ // n_keep = sum (dup_swaps_v), to count the # of 1's that now appear in
769+ // dup_swaps_v, which will become nvals(M) after loading M from the
770+ // container con.
771+ GRB_TRY (GrB_reduce (& n_keep , NULL , GrB_PLUS_MONOID_UINT64 ,
772+ dup_swaps_v , NULL )) ;
768773 con -> nvals = n_keep ;
769774 con -> format = GxB_BITMAP ;
770775 dup_swaps_v = NULL ;
771776 GRB_TRY (GxB_load_Vector_from_Container (M , con , NULL )) ;
772- GRB_TRY (GxB_print (M , 1 )) ; // FIXME: added for debugging
777+ // GRB_TRY (GxB_print (M, 1)) ; // for debugging; must be OK here
773778 GRB_TRY (GrB_free (& con )) ;
774779 GRB_TRY (LAGraph_FastAssign_Semiring (
775780 E_vec , NULL , second_edge , edge_perm , M , ramp_v ,
776781 second_second_edge , NULL , msg )) ;
777-
778782
779783 n_keep /= 2 ;
780784
@@ -811,6 +815,7 @@ GRB_TRY (GxB_print (M, 1)) ; // FIXME: added for debugging
811815 LAGRAPH_TRY (LAGraph_New (
812816 G_new , & A_new , LAGraph_ADJACENCY_UNDIRECTED , msg )) ;
813817 LG_FREE_WORK ;
818+ (* pSwaps ) = num_swaps ;
814819 return (num_swaps >= totSwaps )? GrB_SUCCESS : LAGRAPH_INSUFFICIENT_SWAPS ;
815820 #else
816821 // printf("LAGr_SwapEdges Needs GB v10\n") ;
0 commit comments