]> granicus.if.org Git - graphviz/commitdiff
remove another pow micro-optimization in spring_electrical.c
authorMatthew Fernandez <matthew.fernandez@gmail.com>
Thu, 17 Jun 2021 00:54:15 +0000 (17:54 -0700)
committerMatthew Fernandez <matthew.fernandez@gmail.com>
Wed, 23 Jun 2021 00:06:12 +0000 (17:06 -0700)
A slightly different variant of the instances dealt with in the prior commit.

lib/sfdpgen/spring_electrical.c

index 5dba8833f78ccf447e37e9147b4cc6caac7b3f0f..16516cfa9d2905d788b21ce8c54afb5bfe72adf5 100644 (file)
@@ -1367,21 +1367,9 @@ static void spring_maxent_embedding(int dim, SparseMatrix A0, SparseMatrix D, sp
        }
        assert(dj > 0);
        /* spring force */
-       if (ctrl->q == 2){
-         w_ij = 1./(dj*dj*dj);
-         for (k = 0; k < dim; k++){
-           f[k] += -w_ij*(x[i*dim+k] - x[jd[j]*dim+k])*(dist - dj)*(dist - dj)/dist;
-         }
-       } else if (ctrl->q == 1){/* square stress force */
-         w_ij = 1./(dj*dj);
-         for (k = 0; k < dim; k++){
-           f[k] += -w_ij*(x[i*dim+k] - x[jd[j]*dim+k])*(dist - dj)/dist;
-         }
-       } else {
-         w_ij = 1./pow(dj, ctrl->q + 1);
-         for (k = 0; k < dim; k++){
-           f[k] += -w_ij*(x[i*dim+k] - x[jd[j]*dim+k])*pow(dist - dj, ctrl->q)/dist;
-         }
+       w_ij = 1./pow(dj, ctrl->q + 1);
+       for (k = 0; k < dim; k++){
+         f[k] += -w_ij*(x[i*dim+k] - x[jd[j]*dim+k])*pow(dist - dj, ctrl->q)/dist;
        }
 
 #ifdef DEBUG