12 void matrix2graph(
int num_of_row,
int num_of_col,
int num_of_nzero,
int *irow,
15 int *count, tmp_nodeid;
17 graph->
xadj = (
int *)calloc(num_of_col + 1,
sizeof(
int));
20 for (i = 0; i < num_of_nzero; i++) {
21 if (irow[i] != jcol[i]) {
22 graph->
xadj[irow[i]]++;
23 graph->
xadj[jcol[i]]++;
26 for (i = 0; i < num_of_col; i++) graph->
xadj[i + 1] += graph->
xadj[i];
27 graph->
adjncy = (
int *)calloc(graph->
xadj[num_of_col],
sizeof(
int));
29 count = (
int *)calloc(num_of_row,
sizeof(
int));
31 for (i = 0; i < num_of_row; i++) count[i] = 0;
32 for (i = 0; i < num_of_nzero; i++) {
33 if (irow[i] != jcol[i]) {
34 tmp_nodeid = irow[i] - 1;
35 graph->
adjncy[graph->
xadj[tmp_nodeid] + count[tmp_nodeid]] = jcol[i] - 1;
37 tmp_nodeid = jcol[i] - 1;
38 graph->
adjncy[graph->
xadj[tmp_nodeid] + count[tmp_nodeid]] = irow[i] - 1;
43 graph->
nvtxs = num_of_col;