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++){
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);
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);
}
}
- 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);
#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){
*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];
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;
#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;
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;
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;
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);
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;
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;
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);
#include <time.h>
#include <string.h>
#include <math.h>
+#include <stdbool.h>
#include <stdlib.h>
#include <common/types.h>
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;
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);
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];
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);
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;
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++){
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);
#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;
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);
#include <sfdpgen/sparse_solve.h>
#include <time.h>
#include <sfdpgen/uniform_stress.h>
+#include <stdbool.h>
/* uniform stress solves the model:
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;
}
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);
#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;
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);
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);
}
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! */
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)));
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);
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;
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);
}
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);
}
#pragma once
#include <sparse/general.h>
+#include <stdbool.h>
#include <stdio.h>
#ifdef __cplusplus
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);
#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){
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);
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);
#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){
*/
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;
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);
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);