 // Attraction on edges
 __device__ void fa2Attraction(unsigned int gid, unsigned int numvertices,
     float* vxLocs, float* vyLocs, int numedges, unsigned int* edgeSources,
-    unsigned int* edgeTargets, float* forceX, float* forceY,
-    unsigned int* deg);
+    unsigned int* edgeTargets, float* forceX, float* forceY, unsigned int* deg);
 
 __device__ void fa2UpdateSwing(unsigned int gid, unsigned int numvertices,
     float* forceX, float* forceY, float* oldForceX, float* oldForceY,


  // Update graph with new vertex positions.
  cudaMemcpy((void*) g->vertexXLocs, vxLocs, g->numvertices * sizeof(float),
    cudaMemcpyDeviceToHost);
  cudaMemcpy((void*) g->vertexYLocs, vyLocs, g->numvertices * sizeof(float),
    cudaMemcpyDeviceToHost);
  cudaMemcpy((void*) g->edgeSources, edgeSources,
    g->numedges * sizeof(unsigned int), cudaMemcpyDeviceToHost);
  cudaMemcpy((void*) g->edgeTargets, edgeTargets,
    g->numedges * sizeof(unsigned int), cudaMemcpyDeviceToHost);
}



  // Copy vertices and edges to device.
  cudaMemcpy((void*) vxLocs, g->vertexXLocs, g->numvertices * sizeof(float),
      cudaMemcpyHostToDevice);
  cudaMemcpy((void*) vyLocs, g->vertexYLocs, g->numvertices * sizeof(float),
      cudaMemcpyHostToDevice);
  cudaMemcpy((void*) edgeSources, g->edgeSources,
      g->numedges * sizeof(unsigned int), cudaMemcpyHostToDevice);
  cudaMemcpy((void*) edgeTargets, g->edgeTargets,
      g->numedges * sizeof(unsigned int), cudaMemcpyHostToDevice);

  unsigned int numblocks = ceil(g->numvertices / (float) BLOCK_SIZE);

