]> granicus.if.org Git - graphviz/commitdiff
SparseMatrix_is_symmetric: take a C99 bool instead of an int
authorMatthew Fernandez <matthew.fernandez@gmail.com>
Sun, 16 Jan 2022 19:42:06 +0000 (11:42 -0800)
committerMatthew Fernandez <matthew.fernandez@gmail.com>
Thu, 20 Jan 2022 02:15:00 +0000 (18:15 -0800)
13 files changed:
cmd/gvmap/country_graph_coloring.c
lib/mingle/agglomerative_bundling.cpp
lib/neatogen/adjust.c
lib/neatogen/overlap.c
lib/sfdpgen/Multilevel.c
lib/sfdpgen/post_process.c
lib/sfdpgen/spring_electrical.c
lib/sfdpgen/stress_model.c
lib/sfdpgen/uniform_stress.c
lib/sparse/SparseMatrix.c
lib/sparse/SparseMatrix.h
lib/sparse/clustering.c
lib/sparse/mq.c

index cf7ebb9283955d76886bf50b9350a3a78c3fdc41..a01579abf02a30036781b9e2a946644a9e4d91f0 100644 (file)
@@ -64,7 +64,7 @@ void improve_antibandwidth_by_swapping(SparseMatrix A, int *p){
     fprintf(stderr,"saving timing vs antiband data to timing_greedy\n");
     fp = fopen("timing_greedy","w");
   }
-  assert(SparseMatrix_is_symmetric(A, TRUE));
+  assert(SparseMatrix_is_symmetric(A, true));
   while (improved){
     improved = false;
     for (i = 0; i < n; i++){
index 7912a6455b4d8aacd483ea700635bf9e85ce0347..0bea555be47cd38cc83c595f229523fb9a1aa7c9 100644 (file)
@@ -33,7 +33,7 @@ static Agglomerative_Ink_Bundling Agglomerative_Ink_Bundling_init(SparseMatrix A
   Agglomerative_Ink_Bundling grid;
   int n = A->n, i;
 
-  assert(SparseMatrix_is_symmetric(A, TRUE));
+  assert(SparseMatrix_is_symmetric(A, true));
 
   if (!A) return NULL;
   assert(A->m == n);
@@ -286,7 +286,7 @@ static Agglomerative_Ink_Bundling Agglomerative_Ink_Bundling_new(SparseMatrix A0
   Agglomerative_Ink_Bundling grid;
   SparseMatrix A = A0;
 
-  if (!SparseMatrix_is_symmetric(A, FALSE) || A->type != MATRIX_TYPE_REAL){
+  if (!SparseMatrix_is_symmetric(A, false) || A->type != MATRIX_TYPE_REAL){
     A = SparseMatrix_get_real_adjacency_matrix_symmetrized(A);
   }
   grid = Agglomerative_Ink_Bundling_init(A, edges, 0);
index 3f172f1e34930b0969dc1718e04d92c947d4f860..18b822ba8ed587a87de5d38723919eac5218491d 100644 (file)
@@ -755,7 +755,7 @@ fdpAdjust (graph_t* g, adjust_data* am)
        }
     }
 
-    if (!SparseMatrix_is_symmetric(A, FALSE) || A->type != MATRIX_TYPE_REAL) {
+    if (!SparseMatrix_is_symmetric(A, false) || A->type != MATRIX_TYPE_REAL) {
        A = SparseMatrix_get_real_adjacency_matrix_symmetrized(A);
     } else {
        A = SparseMatrix_remove_diagonal(A);
index 7c35ed755fc893884bfa15766ad0070315c662e2..c5f33bc470988e3c2a9637e3d7d9609cf2154aab 100644 (file)
@@ -20,6 +20,7 @@
 #include <math.h>
 #include <common/memory.h>
 #include <common/globals.h>
+#include <stdbool.h>
 #include <time.h>
 
 static void ideal_distance_avoid_overlap(int dim, SparseMatrix A, double *x, double *width, double *ideal_distance, double *tmax, double *tmin){
@@ -35,7 +36,7 @@ static void ideal_distance_avoid_overlap(int dim, SparseMatrix A, double *x, dou
 
   *tmax = 0;
   *tmin = 1.e10;
-  assert(SparseMatrix_is_symmetric(A, FALSE));
+  assert(SparseMatrix_is_symmetric(A, false));
   for (i = 0; i < A->m; i++){
     for (j = ia[i]; j < ia[i+1]; j++){
       jj = ja[j];
@@ -371,7 +372,7 @@ OverlapSmoother OverlapSmoother_new(SparseMatrix A, int m,
   SparseMatrix B;
   double *lambda, *d, *w, diag_d, diag_w, dist;
 
-  assert((!A) || SparseMatrix_is_symmetric(A, FALSE));
+  assert((!A) || SparseMatrix_is_symmetric(A, false));
 
   sm = GNEW(struct OverlapSmoother_struct);
   sm->scheme = SM_SCHEME_NORMAL;
index e54cfdf4ffba4a3fd551f69d9e0e98f1779ca72f..dafa8cfe30044117977f465319dd7fc23353c700 100644 (file)
@@ -15,6 +15,7 @@
 #include <assert.h>
 #include <common/arith.h>
 #include <stddef.h>
+#include <stdbool.h>
 
 Multilevel_control Multilevel_control_new(int scheme, int mode){
   Multilevel_control ctrl;
@@ -258,7 +259,7 @@ static void maximal_independent_edge_set_heavest_edge_pernode(SparseMatrix A, in
   for (i = 0; i < m; i++) (*matching)[i] = i;
   *nmatch = n;
 
-  assert(SparseMatrix_is_symmetric(A, FALSE));
+  assert(SparseMatrix_is_symmetric(A, false));
   assert(A->type == MATRIX_TYPE_REAL);
 
   a = (double*) A->a;
@@ -344,7 +345,7 @@ static void maximal_independent_edge_set_heavest_edge_pernode_leaves_first(Spars
 
   for (i = 0; i < m; i++) matched[i] = i;
 
-  assert(SparseMatrix_is_symmetric(A, FALSE));
+  assert(SparseMatrix_is_symmetric(A, false));
   assert(A->type == MATRIX_TYPE_REAL);
 
   *ncluster = 0;
@@ -521,7 +522,7 @@ static void maximal_independent_edge_set_heavest_edge_pernode_supernodes_first(S
 
   for (i = 0; i < m; i++) matched[i] = i;
 
-  assert(SparseMatrix_is_symmetric(A, FALSE));
+  assert(SparseMatrix_is_symmetric(A, false));
   assert(A->type == MATRIX_TYPE_REAL);
 
   SparseMatrix_decompose_to_supervariables(A, &nsuper, &super, &superp);
@@ -666,7 +667,7 @@ static void maximal_independent_edge_set_heavest_cluster_pernode_leaves_first(Sp
 
   for (i = 0; i < m; i++) matched[i] = i;
 
-  assert(SparseMatrix_is_symmetric(A, FALSE));
+  assert(SparseMatrix_is_symmetric(A, false));
   assert(A->type == MATRIX_TYPE_REAL);
 
   *ncluster = 0;
@@ -756,7 +757,7 @@ static void maximal_independent_edge_set_heavest_edge_pernode_scaled(SparseMatri
   for (i = 0; i < m; i++) (*matching)[i] = i;
   *nmatch = n;
 
-  assert(SparseMatrix_is_symmetric(A, FALSE));
+  assert(SparseMatrix_is_symmetric(A, false));
   assert(A->type == MATRIX_TYPE_REAL);
 
   a = (double*) A->a;
@@ -1183,10 +1184,10 @@ Multilevel Multilevel_new(SparseMatrix A0, SparseMatrix D0, double *node_weights
   Multilevel grid;
   SparseMatrix A = A0, D = D0;
 
-  if (!SparseMatrix_is_symmetric(A, FALSE) || A->type != MATRIX_TYPE_REAL){
+  if (!SparseMatrix_is_symmetric(A, false) || A->type != MATRIX_TYPE_REAL){
     A = SparseMatrix_get_real_adjacency_matrix_symmetrized(A);
   }
-  if (D && (!SparseMatrix_is_symmetric(D, FALSE) || D->type != MATRIX_TYPE_REAL)){
+  if (D && (!SparseMatrix_is_symmetric(D, false) || D->type != MATRIX_TYPE_REAL)){
     D = SparseMatrix_symmetrize_nodiag(D);
   }
   grid = Multilevel_init(A, D, node_weights);
index 557783b865c85d6198baba3312ee5e73562baa5b..be2777fd809552bc6b39bee45343cdd221deb505 100644 (file)
@@ -13,6 +13,7 @@
 #include <time.h>
 #include <string.h>
 #include <math.h>
+#include <stdbool.h>
 #include <stdlib.h>
 
 #include <common/types.h>
@@ -37,7 +38,7 @@ static SparseMatrix ideal_distance_matrix(SparseMatrix A, int dim, double *x){
   int *mask = NULL;
   double len, di, sum, sumd;
 
-  assert(SparseMatrix_is_symmetric(A, FALSE));
+  assert(SparseMatrix_is_symmetric(A, false));
 
   D = SparseMatrix_copy(A);
   ia = D->ia;
@@ -110,7 +111,7 @@ StressMajorizationSmoother StressMajorizationSmoother2_new(SparseMatrix A, int d
   double *avg_dist, diag_d, diag_w, dist, s = 0, stop = 0, sbot = 0;
   SparseMatrix ID;
 
-  assert(SparseMatrix_is_symmetric(A, FALSE));
+  assert(SparseMatrix_is_symmetric(A, false));
 
   ID = ideal_distance_matrix(A, dim, x);
 
@@ -302,7 +303,7 @@ StressMajorizationSmoother SparseStressMajorizationSmoother_new(SparseMatrix A,
   double diag_d, diag_w, *a, dist, s = 0, stop = 0, sbot = 0;
   double xdot = 0;
 
-  assert(SparseMatrix_is_symmetric(A, FALSE) && A->type == MATRIX_TYPE_REAL);
+  assert(SparseMatrix_is_symmetric(A, false) && A->type == MATRIX_TYPE_REAL);
 
   /* if x is all zero, make it random */
   for (i = 0; i < m*dim; i++) xdot += x[i]*x[i];
@@ -761,7 +762,7 @@ TriangleSmoother TriangleSmoother_new(SparseMatrix A, int dim, double lambda0, d
   double *avg_dist, *lambda, *d, *w, diag_d, diag_w, dist;
   double s = 0, stop = 0, sbot = 0;
 
-  assert(SparseMatrix_is_symmetric(A, FALSE));
+  assert(SparseMatrix_is_symmetric(A, false));
 
   avg_dist = N_GNEW(m,double);
 
@@ -876,7 +877,7 @@ SpringSmoother SpringSmoother_new(SparseMatrix A, int dim, spring_electrical_con
   double *avg_dist;
   SparseMatrix ID = NULL;
 
-  assert(SparseMatrix_is_symmetric(A, FALSE));
+  assert(SparseMatrix_is_symmetric(A, false));
 
   ID = ideal_distance_matrix(A, dim, x);
   dd = (double*) ID->a;
index 14d6a56aadcd6a50477c5056e6cda334e1296689..d1c1dda6e59b4c681551726e4ff45e33aa2900a3 100644 (file)
@@ -161,7 +161,7 @@ int oned_optimizer_get(oned_optimizer opt){
 double average_edge_length(SparseMatrix A, int dim, double *coord){
   double dist = 0, d;
   int *ia = A->ia, *ja = A->ja, i, j, k;
-  assert(SparseMatrix_is_symmetric(A, TRUE));
+  assert(SparseMatrix_is_symmetric(A, true));
 
   if (ia[A->m] == 0) return 1;
   for (i = 0; i < A->m; i++){
@@ -1945,7 +1945,7 @@ static void multilevel_spring_electrical_embedding_core(int dim, SparseMatrix A0
   n = A->n;
   if (n <= 0 || dim <= 0) return;
 
-  if (!SparseMatrix_is_symmetric(A, FALSE) || A->type != MATRIX_TYPE_REAL){
+  if (!SparseMatrix_is_symmetric(A, false) || A->type != MATRIX_TYPE_REAL){
     if (ctrl->method == METHOD_SPRING_MAXENT){
       A = SparseMatrix_symmetrize_nodiag(A);
       assert(D0);
index 93fb50ba8e1a989f5c56088df6ed5e8893789d2a..e1cfde98f9141b28f3c376bf067480c79e28f912 100644 (file)
@@ -3,6 +3,7 @@
 #include <sfdpgen/spring_electrical.h>
 #include <sfdpgen/post_process.h>
 #include <sfdpgen/stress_model.h>
+#include <stdbool.h>
 
 static void stress_model_core(int dim, SparseMatrix B, double **x, int edge_len_weighted, int maxit_sm, double tol, int *flag){
   int m;
@@ -11,7 +12,7 @@ static void stress_model_core(int dim, SparseMatrix B, double **x, int edge_len_
   int i;
   SparseMatrix A = B;
 
-  if (!SparseMatrix_is_symmetric(A, FALSE) || A->type != MATRIX_TYPE_REAL){
+  if (!SparseMatrix_is_symmetric(A, false) || A->type != MATRIX_TYPE_REAL){
     if (A->type == MATRIX_TYPE_REAL){
       A = SparseMatrix_symmetrize(A, FALSE);
       A = SparseMatrix_remove_diagonal(A);
index 2bb70c653f9a2d26195c5b061e484db4c19b28ce..f06a091ce2f8c1e2d12ce3397e5f91c35e2ae99b 100644 (file)
@@ -16,6 +16,7 @@
 #include <sfdpgen/sparse_solve.h>
 #include <time.h>
 #include <sfdpgen/uniform_stress.h>
+#include <stdbool.h>
 
 /* uniform stress solves the model:
 
@@ -32,7 +33,7 @@ UniformStressSmoother UniformStressSmoother_new(int dim, SparseMatrix A, double
   double *d, *w, *a = (double*) A->a;
   double diag_d, diag_w, dist, epsilon = 0.01;
 
-  assert(SparseMatrix_is_symmetric(A, FALSE));
+  assert(SparseMatrix_is_symmetric(A, false));
 
   sm = MALLOC(sizeof(struct StressMajorizationSmoother_struct));
   sm->data = NULL;
@@ -156,7 +157,7 @@ void uniform_stress(int dim, SparseMatrix A, double *x, int *flag){
   }
 
   B = get_distance_matrix(A, scaling);
-  assert(SparseMatrix_is_symmetric(B, FALSE));
+  assert(SparseMatrix_is_symmetric(B, false));
 
   sm = UniformStressSmoother_new(dim, B, x, 1000000*lambda0, M, flag);
   UniformStressSmoother_smooth(sm, dim, x, maxit);
index 8315cc78049c078cf1d91b2c5603180204a16d8c..1625f40bede10f4fb164b93251dd5d5b567e4795 100644 (file)
@@ -19,6 +19,7 @@
 #include <sparse/SparseMatrix.h>
 #include <sparse/BinaryHeap.h>
 #include <stddef.h>
+#include <stdbool.h>
 
 static size_t size_of_matrix_type(int type){
   size_t size = 0;
@@ -145,7 +146,7 @@ SparseMatrix SparseMatrix_transpose(SparseMatrix A){
 
 SparseMatrix SparseMatrix_symmetrize(SparseMatrix A, int pattern_symmetric_only){
   SparseMatrix B;
-  if (SparseMatrix_is_symmetric(A, pattern_symmetric_only)) return SparseMatrix_copy(A);
+  if (SparseMatrix_is_symmetric(A, pattern_symmetric_only != 0)) return SparseMatrix_copy(A);
   B = SparseMatrix_transpose(A);
   if (!B) return NULL;
   A = SparseMatrix_add(A, B);
@@ -157,7 +158,7 @@ SparseMatrix SparseMatrix_symmetrize(SparseMatrix A, int pattern_symmetric_only)
 
 SparseMatrix SparseMatrix_symmetrize_nodiag(SparseMatrix A){
   SparseMatrix B;
-  if (SparseMatrix_is_symmetric(A, FALSE)) {
+  if (SparseMatrix_is_symmetric(A, false)) {
     B = SparseMatrix_copy(A);
     return SparseMatrix_remove_diagonal(B);
   }
@@ -170,7 +171,7 @@ SparseMatrix SparseMatrix_symmetrize_nodiag(SparseMatrix A){
   return SparseMatrix_remove_diagonal(A);
 }
 
-int SparseMatrix_is_symmetric(SparseMatrix A, int test_pattern_symmetry_only){
+int SparseMatrix_is_symmetric(SparseMatrix A, bool test_pattern_symmetry_only){
   if (!A) return FALSE;
 
   /* assume no repeated entries! */
@@ -1982,7 +1983,7 @@ void SparseMatrix_weakly_connected_components(SparseMatrix A0, int *ncomp, int *
   int *levelset_ptr = NULL, *levelset = NULL, *mask = NULL, nlevel;
   int m = A->m, i, nn;
 
-  if (!SparseMatrix_is_symmetric(A, TRUE)){
+  if (!SparseMatrix_is_symmetric(A, true)){
     A = SparseMatrix_symmetrize(A, TRUE);
   }
   if (!(*comps_ptr)) *comps_ptr = MALLOC(sizeof(int)*((size_t)(m+1)));
@@ -2053,7 +2054,7 @@ static int Dijkstra_internal(SparseMatrix A, int root, double *dist, int *nlist,
                   Set to FINISHED after extracted as min from heap */
   int found = 0;
 
-  assert(SparseMatrix_is_symmetric(A, TRUE));
+  assert(SparseMatrix_is_symmetric(A, true));
 
   assert(m == A->n);
 
@@ -2299,10 +2300,10 @@ SparseMatrix SparseMatrix_to_square_matrix(SparseMatrix A, int bipartite_options
     if (A->m == A->n) return A;
     break;
   case BIPARTITE_PATTERN_UNSYM:
-    if (A->m == A->n && SparseMatrix_is_symmetric(A, TRUE)) return A;
+    if (A->m == A->n && SparseMatrix_is_symmetric(A, true)) return A;
     break;
   case BIPARTITE_UNSYM:
-    if (A->m == A->n && SparseMatrix_is_symmetric(A, FALSE)) return A;
+    if (A->m == A->n && SparseMatrix_is_symmetric(A, false)) return A;
     break;
   case BIPARTITE_ALWAYS:
     break;
@@ -2524,7 +2525,7 @@ int SparseMatrix_distance_matrix(SparseMatrix D0, int weighted, double **dist0){
   int flag = 0, i, j, k, nlevel;
   double dmax;
 
-  if (!SparseMatrix_is_symmetric(D, FALSE)){
+  if (!SparseMatrix_is_symmetric(D, false)){
     D = SparseMatrix_symmetrize(D, FALSE);
   }
 
@@ -2578,7 +2579,7 @@ SparseMatrix SparseMatrix_distance_matrix_khops(int khops, SparseMatrix D0, int
   int flag = 0, i, j, k, itmp, nlevel;
   double dmax, dtmp;
 
-  if (!SparseMatrix_is_symmetric(D, FALSE)){
+  if (!SparseMatrix_is_symmetric(D, false)){
     D = SparseMatrix_symmetrize(D, FALSE);
   }
 
index 2fbc1c6d4a16ed89960206dd7c1150838ccdd456..e4544c02dd6199c46296498c3ff37f0dfa94e7eb 100644 (file)
@@ -11,6 +11,7 @@
 #pragma once
 
 #include <sparse/general.h>
+#include <stdbool.h>
 #include <stdio.h>
 
 #ifdef __cplusplus
@@ -68,7 +69,7 @@ SparseMatrix SparseMatrix_multiply3(SparseMatrix A, SparseMatrix B, SparseMatrix
 enum {SUM_REPEATED_NONE = 0, SUM_REPEATED_ALL, };
 SparseMatrix SparseMatrix_sum_repeat_entries(SparseMatrix A, int what_to_sum);
 SparseMatrix SparseMatrix_coordinate_form_add_entries(SparseMatrix A, int nentries, int *irn, int *jcn, void *val);
-int SparseMatrix_is_symmetric(SparseMatrix A, int test_pattern_symmetry_only);
+int SparseMatrix_is_symmetric(SparseMatrix A, bool test_pattern_symmetry_only);
 SparseMatrix SparseMatrix_transpose(SparseMatrix A);
 SparseMatrix SparseMatrix_symmetrize(SparseMatrix A, int pattern_symmetric_only);
 SparseMatrix SparseMatrix_symmetrize_nodiag(SparseMatrix A);
index b2323a96717bc5aa310ffacddde562d258fe71aa..d6dcd4ebb86600404032b5f7d176c843a52417f3 100644 (file)
@@ -12,7 +12,7 @@
 #include <sparse/general.h>
 #include <sparse/SparseMatrix.h>
 #include <sparse/clustering.h>
-
+#include <stdbool.h>
 
 
 static Multilevel_Modularity_Clustering Multilevel_Modularity_Clustering_init(SparseMatrix A, int level){
@@ -20,7 +20,7 @@ static Multilevel_Modularity_Clustering Multilevel_Modularity_Clustering_init(Sp
   int n = A->n, i, j;
 
   assert(A->type == MATRIX_TYPE_REAL);
-  assert(SparseMatrix_is_symmetric(A, FALSE));
+  assert(SparseMatrix_is_symmetric(A, false));
 
   if (!A) return NULL;
   assert(A->m == n);
@@ -273,7 +273,7 @@ static Multilevel_Modularity_Clustering Multilevel_Modularity_Clustering_new(Spa
   Multilevel_Modularity_Clustering grid;
   SparseMatrix A = A0;
 
-  if (!SparseMatrix_is_symmetric(A, FALSE) || A->type != MATRIX_TYPE_REAL){
+  if (!SparseMatrix_is_symmetric(A, false) || A->type != MATRIX_TYPE_REAL){
     A = SparseMatrix_get_real_adjacency_matrix_symmetrized(A);
   }
   grid = Multilevel_Modularity_Clustering_init(A, 0);
index 59275f3b1941b993559cecec9524f3b89221cf64..e58ffc3e4296cfb63e4ae4cd98d59134a517d5ff 100644 (file)
@@ -60,6 +60,7 @@
 #include <sparse/SparseMatrix.h>
 #include <sparse/mq.h>
 #include <sparse/LinkedList.h>
+#include <stdbool.h>
 #include <string.h>
 
 static double get_mq(SparseMatrix A, int *assignment, int *ncluster0, double *mq_in0, double *mq_out0, double **dout0){
@@ -72,7 +73,7 @@ static double get_mq(SparseMatrix A, int *assignment, int *ncluster0, double *mq
   */
   int ncluster = 0;
   int n = A->m;
-  int test_pattern_symmetry_only = FALSE;
+  bool test_pattern_symmetry_only = false;
   int *counts, *ia = A->ia, *ja = A->ja, k, i, j, jj;
   double mq_in = 0, mq_out = 0, *a = NULL, Vi, Vj;
   int c;
@@ -154,7 +155,7 @@ static Multilevel_MQ_Clustering Multilevel_MQ_Clustering_init(SparseMatrix A, in
   int *matching;
 
   assert(A->type == MATRIX_TYPE_REAL);
-  assert(SparseMatrix_is_symmetric(A, FALSE));
+  assert(SparseMatrix_is_symmetric(A, false));
 
   if (!A) return NULL;
   assert(A->m == n);
@@ -521,7 +522,7 @@ static Multilevel_MQ_Clustering Multilevel_MQ_Clustering_new(SparseMatrix A0, in
   SparseMatrix A = A0;
 
   if (maxcluster <= 0) maxcluster = A->m;
-  if (!SparseMatrix_is_symmetric(A, FALSE) || A->type != MATRIX_TYPE_REAL){
+  if (!SparseMatrix_is_symmetric(A, false) || A->type != MATRIX_TYPE_REAL){
     A = SparseMatrix_get_real_adjacency_matrix_symmetrized(A);
   }
   grid = Multilevel_MQ_Clustering_init(A, 0);