Skip to content

Commit 9de00c9

Browse files
committed
Use build vector and add arrays to cleanup
1 parent 5bed88e commit 9de00c9

1 file changed

Lines changed: 13 additions & 1 deletion

File tree

experimental/algorithm/LAGr_PartitionQuality.c

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,9 @@
3535
GrB_free(&k); \
3636
GrB_free(&x); \
3737
GrB_free(&C); \
38+
GrB_free(&desc); \
39+
LAGraph_Free((void **)&cI, NULL); \
40+
LAGraph_Free((void **)&cX, NULL); \
3841
GrB_free(&ONE_INT64); \
3942
}
4043

@@ -61,6 +64,8 @@ int LAGr_PartitionQuality(
6164
GrB_Vector k = NULL;
6265
GrB_Vector x = NULL;
6366
GrB_Matrix C = NULL;
67+
GrB_Index *cI = NULL, *cX = NULL;
68+
GrB_Descriptor desc = NULL;
6469

6570
GrB_Scalar ONE_INT64 = NULL;
6671

@@ -109,13 +114,20 @@ int LAGr_PartitionQuality(
109114

110115
// convert the cluster vector to a boolean matrix C where
111116
// C(i, j) = 1 if and only if vertex j is in cluster i
112-
GrB_Index *cI, *cX;
117+
118+
#if LG_SUITESPARSE_GRAPHBLAS_V10
119+
GRB_TRY (GrB_Descriptor_new (&desc)) ;
120+
GRB_TRY (GrB_Descriptor_set (desc, GxB_USE_INDICES, GxB_ROWINDEX_LIST)) ;
121+
GRB_TRY (GxB_Matrix_build_Scalar_Vector (C, c, c, ONE_INT64, desc));
122+
GRB_TRY (GrB_free (&desc)) ;
123+
#else
113124
LAGRAPH_TRY (LAGraph_Malloc ((void **)&cI, n, sizeof(GrB_Index), msg));
114125
LAGRAPH_TRY (LAGraph_Malloc ((void **)&cX, n, sizeof(GrB_Index), msg));
115126
GRB_TRY (GrB_Vector_extractTuples_INT64 (cI, (int64_t *) cX, &n, c));
116127
GRB_TRY (GxB_Matrix_build_Scalar (C, cX, cI, ONE_INT64, n));
117128
LAGraph_Free((void **)&cI, NULL);
118129
LAGraph_Free((void **)&cX, NULL);
130+
#endif
119131

120132
bool is_undirected = (G->is_symmetric_structure == LAGraph_TRUE);
121133

0 commit comments

Comments
 (0)