From 1c72acfda984f73ddc96d51596f9e761a963944a Mon Sep 17 00:00:00 2001 From: Jaron Kent-Dobias Date: Mon, 23 Sep 2019 23:40:02 -0400 Subject: ran clang-format --- lib/src/problem.cpp | 84 ++++++++++++++++++++++++++--------------------------- 1 file changed, 41 insertions(+), 43 deletions(-) (limited to 'lib/src/problem.cpp') diff --git a/lib/src/problem.cpp b/lib/src/problem.cpp index 0645244..ab87b0c 100644 --- a/lib/src/problem.cpp +++ b/lib/src/problem.cpp @@ -1,15 +1,12 @@ #include "problem.hpp" -class nanException: public std::exception -{ - virtual const char* what() const throw() - { - return "The linear problem returned NaN."; - } +class nanException : public std::exception { + virtual const char* what() const throw() { return "The linear problem returned NaN."; } } nanex; -problem::problem(const graph& G, unsigned axis, cholmod_sparse *vcmat, cholmod_common *c) : G(G), axis(axis), voltcurmat(vcmat), c(c) { +problem::problem(const graph& G, unsigned axis, cholmod_sparse* vcmat, cholmod_common* c) + : G(G), axis(axis), voltcurmat(vcmat), c(c) { b = CHOL_F(zeros)(G.vertices.size(), 1, CHOLMOD_REAL, c); for (unsigned i = 0; i < G.edges.size(); i++) { graph::coordinate v0 = G.vertices[G.edges[i].v[0]].r; @@ -23,19 +20,20 @@ problem::problem(const graph& G, unsigned axis, cholmod_sparse *vcmat, cholmod_c ind = v0.x < v1.x ? 0 : 1; } - ((double *)b->x)[G.edges[i].v[ind]] += 1.0; - ((double *)b->x)[G.edges[i].v[!ind]] -= 1.0; + ((double*)b->x)[G.edges[i].v[ind]] += 1.0; + ((double*)b->x)[G.edges[i].v[!ind]] -= 1.0; } } unsigned nnz = G.vertices.size() + G.edges.size(); - cholmod_triplet *t = CHOL_F(allocate_triplet)(G.vertices.size(), G.vertices.size(), nnz, 1, CHOLMOD_REAL, c); + cholmod_triplet* t = + CHOL_F(allocate_triplet)(G.vertices.size(), G.vertices.size(), nnz, 1, CHOLMOD_REAL, c); for (unsigned i = 0; i < G.vertices.size(); i++) { - ((CHOL_INT *)t->i)[i] = i; - ((CHOL_INT *)t->j)[i] = i; - ((double *)t->x)[i] = 0.0; + ((CHOL_INT*)t->i)[i] = i; + ((CHOL_INT*)t->j)[i] = i; + ((double*)t->x)[i] = 0.0; } unsigned terms = G.vertices.size(); @@ -46,8 +44,8 @@ problem::problem(const graph& G, unsigned axis, cholmod_sparse *vcmat, cholmod_c unsigned v0 = G.edges[i].v[0]; unsigned v1 = G.edges[i].v[1]; - ((double *)t->x)[v0]++; - ((double *)t->x)[v1]++; + ((double*)t->x)[v0]++; + ((double*)t->x)[v1]++; unsigned s0 = v0 < v1 ? v0 : v1; unsigned s1 = v0 < v1 ? v1 : v0; @@ -55,22 +53,22 @@ problem::problem(const graph& G, unsigned axis, cholmod_sparse *vcmat, cholmod_c auto it = known_edges.find({s0, s1}); if (it == known_edges.end()) { - ((CHOL_INT *)t->i)[terms] = s1; - ((CHOL_INT *)t->j)[terms] = s0; - ((double *)t->x)[terms] = -1.0; + ((CHOL_INT*)t->i)[terms] = s1; + ((CHOL_INT*)t->j)[terms] = s0; + ((double*)t->x)[terms] = -1.0; known_edges[{s0, s1}] = terms; terms++; } else { - ((double *)t->x)[it->second] -= 1.0; + ((double*)t->x)[it->second] -= 1.0; } } - ((double *)t->x)[0]++; + ((double*)t->x)[0]++; t->nnz = terms; - cholmod_sparse *laplacian = CHOL_F(triplet_to_sparse)(t, terms, c); + cholmod_sparse* laplacian = CHOL_F(triplet_to_sparse)(t, terms, c); CHOL_F(free_triplet)(&t, c); factor = CHOL_F(analyze)(laplacian, c); CHOL_F(factorize)(laplacian, factor, c); @@ -79,19 +77,20 @@ problem::problem(const graph& G, unsigned axis, cholmod_sparse *vcmat, cholmod_c sol.currents.resize(G.edges.size()); } -problem::problem(const graph& G, unsigned axis, cholmod_common *c) : problem(G, axis, NULL, c) { - cholmod_triplet *t = CHOL_F(allocate_triplet)(G.edges.size(), G.vertices.size(), 2 * G.edges.size(), 0, CHOLMOD_REAL, c); +problem::problem(const graph& G, unsigned axis, cholmod_common* c) : problem(G, axis, NULL, c) { + cholmod_triplet* t = CHOL_F(allocate_triplet)(G.edges.size(), G.vertices.size(), + 2 * G.edges.size(), 0, CHOLMOD_REAL, c); t->nnz = 2 * G.edges.size(); for (unsigned i = 0; i < G.edges.size(); i++) { - ((CHOL_INT *)t->i)[2 * i] = i; - ((CHOL_INT *)t->j)[2 * i] = G.edges[i].v[0]; - ((double *)t->x)[2 * i] = 1.0; + ((CHOL_INT*)t->i)[2 * i] = i; + ((CHOL_INT*)t->j)[2 * i] = G.edges[i].v[0]; + ((double*)t->x)[2 * i] = 1.0; - ((CHOL_INT *)t->i)[2 * i + 1] = i; - ((CHOL_INT *)t->j)[2 * i + 1] = G.edges[i].v[1]; - ((double *)t->x)[2 * i + 1] = -1.0; + ((CHOL_INT*)t->i)[2 * i + 1] = i; + ((CHOL_INT*)t->j)[2 * i + 1] = G.edges[i].v[1]; + ((double*)t->x)[2 * i + 1] = -1.0; } voltcurmat = CHOL_F(triplet_to_sparse)(t, 2 * G.edges.size(), c); @@ -103,7 +102,7 @@ problem::problem(const problem& other) : G(other.G), axis(other.axis), c(other.c b = CHOL_F(copy_dense)(other.b, c); factor = CHOL_F(copy_factor)(other.factor, c); voltcurmat = CHOL_F(copy_sparse)(other.voltcurmat, c); -} +} problem::~problem() { CHOL_F(free_dense)(&b, c); @@ -112,13 +111,13 @@ problem::~problem() { } void problem::solve(std::vector& fuses) { - cholmod_dense *x = CHOL_F(solve)(CHOLMOD_A, factor, b, c); + cholmod_dense* x = CHOL_F(solve)(CHOLMOD_A, factor, b, c); - if (((double *)x->x)[0] != ((double *)x->x)[0]) { + if (((double*)x->x)[0] != ((double*)x->x)[0]) { throw nanex; } - cholmod_dense *y = CHOL_F(allocate_dense)(G.edges.size(), 1, G.edges.size(), CHOLMOD_REAL, c); + cholmod_dense* y = CHOL_F(allocate_dense)(G.edges.size(), 1, G.edges.size(), CHOLMOD_REAL, c); double alpha[2] = {1, 0}; double beta[2] = {0, 0}; @@ -130,7 +129,7 @@ void problem::solve(std::vector& fuses) { if (fuses[i]) { sol.currents[i] = 0; } else { - sol.currents[i] = ((double *)y->x)[i]; + sol.currents[i] = ((double*)y->x)[i]; graph::coordinate v0 = G.vertices[G.edges[i].v[0]].r; graph::coordinate v1 = G.vertices[G.edges[i].v[1]].r; @@ -166,15 +165,15 @@ void problem::break_edge(unsigned e, bool unbreak) { unsigned n = factor->n; - cholmod_sparse *update_mat = CHOL_F(allocate_sparse)(n, n, 2, true, true, 0, CHOLMOD_REAL, c); + cholmod_sparse* update_mat = CHOL_F(allocate_sparse)(n, n, 2, true, true, 0, CHOLMOD_REAL, c); unsigned s1, s2; s1 = v0 < v1 ? v0 : v1; s2 = v0 < v1 ? v1 : v0; - CHOL_INT *pp = (CHOL_INT *)update_mat->p; - CHOL_INT *ii = (CHOL_INT *)update_mat->i; - double *xx = (double *)update_mat->x; + CHOL_INT* pp = (CHOL_INT*)update_mat->p; + CHOL_INT* ii = (CHOL_INT*)update_mat->i; + double* xx = (double*)update_mat->x; for (unsigned i = 0; i <= s1; i++) { pp[i] = 0; @@ -189,8 +188,8 @@ void problem::break_edge(unsigned e, bool unbreak) { xx[0] = 1; xx[1] = -1; - cholmod_sparse *perm_update_mat = CHOL_F(submatrix)( - update_mat, (CHOL_INT *)factor->Perm, factor->n, NULL, -1, true, true, c); + cholmod_sparse* perm_update_mat = + CHOL_F(submatrix)(update_mat, (CHOL_INT*)factor->Perm, factor->n, NULL, -1, true, true, c); CHOL_F(updown)(unbreak, perm_update_mat, factor, c); @@ -208,8 +207,7 @@ void problem::break_edge(unsigned e, bool unbreak) { ind = r0.x < r1.x ? unbreak : !unbreak; } - ((double *)b->x)[G.edges[e].v[ind]] -= 1.0; - ((double *)b->x)[G.edges[e].v[!ind]] += 1.0; + ((double*)b->x)[G.edges[e].v[ind]] -= 1.0; + ((double*)b->x)[G.edges[e].v[!ind]] += 1.0; } } - -- cgit v1.2.3-70-g09d2