]> granicus.if.org Git - graphviz/commitdiff
sparse: remove always true branch in 'SparseMatrix_sum_repeat_entries'
authorMatthew Fernandez <matthew.fernandez@gmail.com>
Mon, 23 May 2022 14:37:07 +0000 (07:37 -0700)
committerMatthew Fernandez <matthew.fernandez@gmail.com>
Wed, 24 Aug 2022 14:06:14 +0000 (07:06 -0700)
`what_to_sum` can only take on two values, `SUM_REPEATED_NONE` and
`SUM_REPEATED_ALL`. If it is `SUM_REPEATED_NONE` there is an early exit at the
beginning of this function.

lib/sparse/SparseMatrix.c

index b2f459dcfefbce600a59c4e9fc1f95b942897334..730c3a7a5a418f1179f636136f167430c7a9c899 100644 (file)
@@ -1384,25 +1384,23 @@ SparseMatrix SparseMatrix_sum_repeat_entries(SparseMatrix A, int what_to_sum){
   case MATRIX_TYPE_COMPLEX:
     {
       double *a = (double*) A->a;
-      if (what_to_sum == SUM_REPEATED_ALL){
-       nz = 0;
-       sta = ia[0];
-       for (i = 0; i < A->m; i++){
-         for (j = sta; j < ia[i+1]; j++){
-           if (mask[ja[j]] < ia[i]){
-             ja[nz] = ja[j];
-             a[2*nz] = a[2*j];
-             a[2*nz+1] = a[2*j+1];
-             mask[ja[j]] = nz++;
-           } else {
-             assert(ja[mask[ja[j]]] == ja[j]);
-             a[2*mask[ja[j]]] += a[2*j];
-             a[2*mask[ja[j]]+1] += a[2*j+1];
-           }
-         }
-         sta = ia[i+1];
-         ia[i+1] = nz;
-       }
+      nz = 0;
+      sta = ia[0];
+      for (i = 0; i < A->m; i++) {
+        for (j = sta; j < ia[i+1]; j++) {
+          if (mask[ja[j]] < ia[i]) {
+            ja[nz] = ja[j];
+            a[2 * nz] = a[2 * j];
+            a[2 * nz + 1] = a[2 * j + 1];
+            mask[ja[j]] = nz++;
+          } else {
+            assert(ja[mask[ja[j]]] == ja[j]);
+            a[2 * mask[ja[j]]] += a[2 * j];
+            a[2 * mask[ja[j]]+1] += a[2 * j + 1];
+          }
+        }
+        sta = ia[i + 1];
+        ia[i + 1] = nz;
       }
     }
     break;